update to 5.1.0 alpha1

f41
David Tardon 9 years ago
parent c798e3b7a5
commit 191a4527b1

3
.gitignore vendored

@ -69,3 +69,6 @@
/libreoffice-5.0.3.1.tar.xz /libreoffice-5.0.3.1.tar.xz
/libreoffice-help-5.0.3.1.tar.xz /libreoffice-help-5.0.3.1.tar.xz
/libreoffice-translations-5.0.3.1.tar.xz /libreoffice-translations-5.0.3.1.tar.xz
/libreoffice-5.1.0.0.alpha1.tar.xz
/libreoffice-help-5.1.0.0.alpha1.tar.xz
/libreoffice-translations-5.1.0.0.alpha1.tar.xz

@ -1,29 +0,0 @@
From ac33ef3a4abe73c65600e1f199d25e1a1f0080db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 8 Oct 2015 12:38:06 +0100
Subject: [PATCH] Related: tdf#72880 presumably using startcenter as generic LO
target will work
for the gnome case
Change-Id: Icb5ad2d50d672b35783720c100a408fa3e5cb63e
---
sysui/desktop/menus/startcenter.desktop | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysui/desktop/menus/startcenter.desktop b/sysui/desktop/menus/startcenter.desktop
index ed333b6..f0d2b63 100644
--- a/sysui/desktop/menus/startcenter.desktop
+++ b/sysui/desktop/menus/startcenter.desktop
@@ -23,7 +23,7 @@ Icon=startcenter
Type=Application
Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Other;
Exec=${UNIXBASISROOTNAME} %%FILE%%
-MimeType=application/vnd.openofficeorg.extension;
+MimeType=application/vnd.openofficeorg.extension;x-scheme-handler/vnd.libreoffice.cmis;
Name=%PRODUCTNAME
GenericName=Office
Comment=The office productivity suite compatible to the open and standardized ODF document format. Supported by The Document Foundation.
--
2.4.3

@ -1,49 +0,0 @@
From 1ff5ecda9ccfcf3e65e90c404db93fcbbefb889e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 7 Sep 2015 16:37:22 +0100
Subject: [PATCH] Related: tdf#93676 msword wraps slightly differently than us
Change-Id: I91ba41cb052c38aa3b047cf079090b01bbe93b39
---
sw/source/filter/ww8/wrtw8esh.cxx | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index 763fb44..fd6dfbc 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -803,6 +803,19 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
SwTwips nLeft = aRect.Left() + nThick;
SwTwips nRight = aRect.Right() - nThick;
+ SwTwips nTop = aRect.Top() + nThick;
+ SwTwips nBottom = aRect.Bottom() - nThick;
+
+ // tdf#93675, 0 below line/paragraph and/or top line/paragraph with
+ // wrap top+bottom or other wraps is affecting the line directly
+ // above the anchor line, which seems odd, but a tiny adjustment
+ // here to bring the top down convinces msoffice to wrap like us
+ if (nTop < 8 && !rFrameFormat.IsInline() &&
+ rVOr.GetVertOrient() == text::VertOrientation::NONE &&
+ rVOr.GetRelationOrient() == text::RelOrientation::FRAME)
+ {
+ nTop = 8;
+ }
//Nasty swap for bidi if necessary
rWrt.MiserableRTLFrameFormatHack(nLeft, nRight, rFrameFormat);
@@ -811,9 +824,9 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
//(most of) the border is outside the graphic is word, so
//change dimensions to fit
SwWW8Writer::WriteLong(*rWrt.pTableStrm, nLeft);
- SwWW8Writer::WriteLong(*rWrt.pTableStrm,aRect.Top() + nThick);
+ SwWW8Writer::WriteLong(*rWrt.pTableStrm, nTop);
SwWW8Writer::WriteLong(*rWrt.pTableStrm, nRight);
- SwWW8Writer::WriteLong(*rWrt.pTableStrm,aRect.Bottom() - nThick);
+ SwWW8Writer::WriteLong(*rWrt.pTableStrm, nBottom);
//fHdr/bx/by/wr/wrk/fRcaSimple/fBelowText/fAnchorLock
sal_uInt16 nFlags=0;
--
2.1.0

@ -1,786 +0,0 @@
From c33062fc07ac20b1ac28bd000fd3c57016d72e34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 1 Sep 2015 11:59:32 +0100
Subject: [PATCH] Resolves: rhbz#1256843 no obvious means to close template
dialog
under gnome-shell which doesn't put an "X" to close things in
the wm decorations if the GDK DIALOG hint it set
prior to tdf#72587 this was a modeless dialog and in that case
it doesn't have a parent, in which case the hint is NORMAL
and it used to get close decorations.
easist thing to do is to remain modal so the crashes and
confusion of tdf#72587 remain fixed but add a close to it to
behave like all the other dialogs do
Change-Id: I64450be0ad1bc7b06196e1342679e15b60fc60d9
---
sfx2/uiconfig/ui/templatedlg.ui | 653 +++++++++++++++++++++-------------------
1 file changed, 346 insertions(+), 307 deletions(-)
diff --git a/sfx2/uiconfig/ui/templatedlg.ui b/sfx2/uiconfig/ui/templatedlg.ui
index de8270c..6ed0172 100644
--- a/sfx2/uiconfig/ui/templatedlg.ui
+++ b/sfx2/uiconfig/ui/templatedlg.ui
@@ -1,111 +1,327 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
- <requires lib="gtk+" version="3.0"/>
+ <requires lib="gtk+" version="3.6"/>
<requires lib="LibreOffice" version="1.0"/>
- <object class="GtkWindow" id="TemplateDialog">
+ <object class="GtkDialog" id="TemplateDialog">
<property name="width_request">800</property>
- <property name="height_request">560</property>
+ <property name="height_request">600</property>
<property name="can_focus">False</property>
- <property name="modal">True</property>
<property name="border_width">6</property>
<property name="title" translatable="yes">Template Manager</property>
- <child>
- <object class="GtkBox" id="box1">
- <property name="visible">True</property>
+ <property name="modal">True</property>
+ <property name="type_hint">normal</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
- <property name="border_width">6</property>
<property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child>
- <object class="GtkNotebook" id="tab_control">
+ <object class="GtkBox" id="box1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkBox" id="box2">
+ <object class="GtkNotebook" id="tab_control">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkToolbar" id="action_view">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
+ <property name="spacing">6</property>
<child>
- <object class="GtkToolButton" id="repository">
+ <object class="GtkToolbar" id="action_view">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="action_name">repository</property>
- <property name="label" translatable="yes">Repository</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview026.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="import">
- <property name="can_focus">False</property>
- <property name="action_name">import</property>
- <property name="label" translatable="yes">Import</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview010.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="delete">
- <property name="can_focus">False</property>
- <property name="action_name">delete</property>
- <property name="label" translatable="yes">Delete</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview025.png</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkToolButton" id="repository">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">repository</property>
+ <property name="label" translatable="yes">Repository</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview026.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="import">
+ <property name="can_focus">False</property>
+ <property name="action_name">import</property>
+ <property name="label" translatable="yes">Import</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview010.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="delete">
+ <property name="can_focus">False</property>
+ <property name="action_name">delete</property>
+ <property name="label" translatable="yes">Delete</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview025.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="save">
+ <property name="can_focus">False</property>
+ <property name="action_name">save</property>
+ <property name="label" translatable="yes">Save</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview028.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="new_folder">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">new_folder</property>
+ <property name="label" translatable="yes">New Folder</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview029.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkToolButton" id="save">
+ <object class="GtkToolbar" id="action_templates">
<property name="can_focus">False</property>
- <property name="action_name">save</property>
- <property name="label" translatable="yes">Save</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview028.png</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkToolButton" id="template_save">
+ <property name="can_focus">False</property>
+ <property name="action_name">template_save</property>
+ <property name="label" translatable="yes">Save</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview028.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="open">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">open</property>
+ <property name="label" translatable="yes">Open</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview030.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="edit">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">edit</property>
+ <property name="label" translatable="yes">Edit</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates019.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="properties">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">properties</property>
+ <property name="label" translatable="yes">Properties</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates016.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="default">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">default</property>
+ <property name="label" translatable="yes">Set as Default</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates015.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="move">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">move</property>
+ <property name="label" translatable="yes">Move to Folder</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates017.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="export">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">export</property>
+ <property name="label" translatable="yes">Export</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates020.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="template_delete">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">template_delete</property>
+ <property name="label" translatable="yes">Delete</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actiontemplates018.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkToolButton" id="new_folder">
+ <object class="GtkToolbar" id="action_action">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="action_name">new_folder</property>
- <property name="label" translatable="yes">New Folder</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview029.png</property>
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkToolButton" id="search">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">search</property>
+ <property name="label" translatable="yes">Search</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionaction012.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="action_menu">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">action_menu</property>
+ <property name="label" translatable="yes">Action Menu</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionaction013.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="template_link">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="action_name">template_link</property>
+ <property name="label" translatable="yes">Get more templates for %PRODUCTNAME</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">sfx2/imglst/actionview010.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
@@ -116,120 +332,10 @@
</packing>
</child>
<child>
- <object class="GtkToolbar" id="action_templates">
- <property name="can_focus">False</property>
+ <object class="GtkEntry" id="search_edit">
+ <property name="can_focus">True</property>
<property name="hexpand">True</property>
- <child>
- <object class="GtkToolButton" id="template_save">
- <property name="can_focus">False</property>
- <property name="action_name">template_save</property>
- <property name="label" translatable="yes">Save</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview028.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="open">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">open</property>
- <property name="label" translatable="yes">Open</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview030.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="edit">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">edit</property>
- <property name="label" translatable="yes">Edit</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates019.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="properties">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">properties</property>
- <property name="label" translatable="yes">Properties</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates016.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="default">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">default</property>
- <property name="label" translatable="yes">Set as Default</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates015.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="move">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">move</property>
- <property name="label" translatable="yes">Move to Folder</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates017.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="export">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">export</property>
- <property name="label" translatable="yes">Export</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates020.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="template_delete">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">template_delete</property>
- <property name="label" translatable="yes">Delete</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actiontemplates018.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
+ <property name="invisible_char">●</property>
</object>
<packing>
<property name="expand">False</property>
@@ -238,53 +344,11 @@
</packing>
</child>
<child>
- <object class="GtkToolbar" id="action_action">
+ <object class="sfxlo-TemplateLocalView" id="template_view">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">end</property>
<property name="hexpand">True</property>
- <child>
- <object class="GtkToolButton" id="search">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">search</property>
- <property name="label" translatable="yes">Search</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionaction012.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="action_menu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">action_menu</property>
- <property name="label" translatable="yes">Action Menu</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionaction013.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkToolButton" id="template_link">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">template_link</property>
- <property name="label" translatable="yes">Get more templates for %PRODUCTNAME</property>
- <property name="use_underline">True</property>
- <property name="icon_name">sfx2/imglst/actionview010.png</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="homogeneous">True</property>
- </packing>
- </child>
+ <property name="vexpand">True</property>
</object>
<packing>
<property name="expand">False</property>
@@ -292,123 +356,98 @@
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="sfxlo-TemplateSearchView" id="search_view">
+ <property name="can_focus">True</property>
+ <property name="no_show_all">True</property>
+ <property name="margin">0</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="sfxlo-TemplateRemoteView" id="remote_view">
+ <property name="can_focus">True</property>
+ <property name="no_show_all">True</property>
+ <property name="margin">0</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="filter_docs">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Documents</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="search_edit">
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="invisible_char">●</property>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="filter_sheets">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Spreadsheets</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
<property name="position">1</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="sfxlo-TemplateLocalView" id="template_view">
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="filter_presentations">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Presentations</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
<property name="position">2</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="sfxlo-TemplateSearchView" id="search_view">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
- <property name="margin">0</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
+ <placeholder/>
</child>
- <child>
- <object class="sfxlo-TemplateRemoteView" id="remote_view">
- <property name="can_focus">True</property>
- <property name="no_show_all">True</property>
- <property name="margin">0</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <child type="tab">
+ <object class="GtkLabel" id="filter_draws">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Drawings</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
</packing>
</child>
</object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="filter_docs">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Documents</property>
- </object>
<packing>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="filter_sheets">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Spreadsheets</property>
- </object>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="filter_presentations">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Presentations</property>
- </object>
- <packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="filter_draws">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Drawings</property>
- </object>
- <packing>
- <property name="position">3</property>
- <property name="tab_fill">False</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
--
2.4.0

@ -1,222 +0,0 @@
From fb65ac2e3028c4fc160a47448bc44d73d282c9f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Mon, 8 Jun 2015 12:21:01 +0100
Subject: [PATCH] Resolves: tdf#49407 enable CaseMap property in impress/draw
I don't see why this was explicitly disabled, works fine
out of the box for me, import/export already hooked up
in odf
Change-Id: I5e6bdbc6a4f3cbcd97330c7d9fb33589489afee2
---
cui/source/inc/chardlg.hxx | 10 ----------
sd/sdi/drtxtob.sdi | 6 ++++++
sd/source/core/typemap.cxx | 1 +
sd/source/ui/dlg/dlgchar.cxx | 1 -
sd/source/ui/dlg/prltempl.cxx | 1 -
sd/source/ui/dlg/tabtempl.cxx | 1 -
sd/source/ui/func/fuchar.cxx | 1 +
sd/source/ui/func/futext.cxx | 7 ++++---
sd/source/ui/view/drtxtob.cxx | 3 ++-
sd/source/ui/view/drviews2.cxx | 11 +++++++++++
sd/source/ui/view/drviewsf.cxx | 1 +
sw/source/ui/chrdlg/chardlg.cxx | 8 +-------
12 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index 4eb009a..a023a45 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -32,16 +32,6 @@
class SvxFontListItem;
class FontList;
-
-
-#define DISABLE_CASEMAP ((sal_uInt16)0x0001)
-#define DISABLE_WORDLINE ((sal_uInt16)0x0002)
-#define DISABLE_BLINK ((sal_uInt16)0x0004)
-#define DISABLE_UNDERLINE_COLOR ((sal_uInt16)0x0008)
-
-#define DISABLE_LANGUAGE ((sal_uInt16)0x0010)
-#define DISABLE_HIDE_LANGUAGE ((sal_uInt16)0x0020)
-
// class SvxCharBasePage -------------------------------------------------
class SvxCharBasePage : public SfxTabPage
diff --git a/sd/sdi/drtxtob.sdi b/sd/sdi/drtxtob.sdi
index 3e975d4..ed564e4 100644
--- a/sd/sdi/drtxtob.sdi
+++ b/sd/sdi/drtxtob.sdi
@@ -92,6 +92,12 @@ shell TextObjectBar
StateMethod = GetAttrState;
]
+ SID_ATTR_CHAR_CASEMAP // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
SID_ATTR_PARA_ADJUST_LEFT // ole : ?, status : ?
[
ExecMethod = Execute;
diff --git a/sd/source/core/typemap.cxx b/sd/source/core/typemap.cxx
index a5548a3..65f7cf0 100644
--- a/sd/source/core/typemap.cxx
+++ b/sd/source/core/typemap.cxx
@@ -21,6 +21,7 @@
#include <editeng/outliner.hxx>
#include <editeng/eeitem.hxx>
+#include <editeng/cmapitem.hxx>
#include <editeng/langitem.hxx>
#include <editeng/fhgtitem.hxx>
#include <editeng/colritem.hxx>
diff --git a/sd/source/ui/dlg/dlgchar.cxx b/sd/source/ui/dlg/dlgchar.cxx
index a23cd80..5e44899 100644
--- a/sd/source/ui/dlg/dlgchar.cxx
+++ b/sd/source/ui/dlg/dlgchar.cxx
@@ -60,7 +60,6 @@ void SdCharDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
}
else if (nId == mnCharEffects)
{
- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
rPage.PageCreated(aSet);
}
}
diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx
index 74c010e..c503c93 100644
--- a/sd/source/ui/dlg/prltempl.cxx
+++ b/sd/source/ui/dlg/prltempl.cxx
@@ -281,7 +281,6 @@ void SdPresLayoutTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
else if (nId == mnEffects)
{
- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
rPage.PageCreated(aSet);
}
}
diff --git a/sd/source/ui/dlg/tabtempl.cxx b/sd/source/ui/dlg/tabtempl.cxx
index 61514ee..1189922 100644
--- a/sd/source/ui/dlg/tabtempl.cxx
+++ b/sd/source/ui/dlg/tabtempl.cxx
@@ -152,7 +152,6 @@ void SdTabTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
}
else if (nId == m_nFontEffectId)
{
- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
rPage.PageCreated(aSet);
}
else if (nId == m_nTextId)
diff --git a/sd/source/ui/func/fuchar.cxx b/sd/source/ui/func/fuchar.cxx
index 174391a..b8166c2 100644
--- a/sd/source/ui/func/fuchar.cxx
+++ b/sd/source/ui/func/fuchar.cxx
@@ -106,6 +106,7 @@ void FuChar::DoExecute( SfxRequest& rReq )
SID_ATTR_CHAR_FONTHEIGHT,
SID_ATTR_CHAR_COLOR,
SID_ATTR_CHAR_KERNING,
+ SID_ATTR_CHAR_CASEMAP,
SID_SET_SUPER_SCRIPT,
SID_SET_SUB_SCRIPT,
0 };
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index ac6fb71..33e5339 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -85,12 +85,13 @@ static sal_uInt16 SidArray[] = {
SID_ATTR_CHAR_FONT, // 10007
SID_ATTR_CHAR_POSTURE, // 10008
SID_ATTR_CHAR_WEIGHT, // 10009
- SID_ATTR_CHAR_SHADOWED, //10010
- SID_ATTR_CHAR_STRIKEOUT, //10013
+ SID_ATTR_CHAR_SHADOWED, // 10010
+ SID_ATTR_CHAR_STRIKEOUT, // 10013
SID_ATTR_CHAR_UNDERLINE, // 10014
SID_ATTR_CHAR_FONTHEIGHT, // 10015
SID_ATTR_CHAR_COLOR, // 10017
- SID_ATTR_CHAR_KERNING, //10018
+ SID_ATTR_CHAR_KERNING, // 10018
+ SID_ATTR_CHAR_CASEMAP, // 10019
SID_ATTR_PARA_ADJUST_LEFT, // 10028
SID_ATTR_PARA_ADJUST_RIGHT, // 10029
SID_ATTR_PARA_ADJUST_CENTER, // 10030
diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx
index 25913dd..45c868f 100644
--- a/sd/source/ui/view/drtxtob.cxx
+++ b/sd/source/ui/view/drtxtob.cxx
@@ -171,8 +171,9 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet )
case SID_ATTR_CHAR_FONTHEIGHT:
case SID_ATTR_CHAR_WEIGHT:
case SID_ATTR_CHAR_POSTURE:
- case SID_ATTR_CHAR_SHADOWED:
+ case SID_ATTR_CHAR_SHADOWED:
case SID_ATTR_CHAR_STRIKEOUT:
+ case SID_ATTR_CHAR_CASEMAP:
{
sal_uInt16 stretchX = 100;
sal_uInt16 stretchY = 100;
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index d4ed8fa..ffbb503 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -87,6 +87,7 @@
#include <vcl/svapp.hxx>
#include <vcl/waitobj.hxx>
+#include <editeng/cmapitem.hxx>
#include <editeng/escapementitem.hxx>
#include <editeng/kernitem.hxx>
#include <editeng/wghtitem.hxx>
@@ -3032,6 +3033,16 @@ void DrawViewShell::ExecChar( SfxRequest &rReq )
}
}
break;
+ case SID_ATTR_CHAR_CASEMAP:
+ if( rReq.GetArgs() )
+ {
+ SFX_REQUEST_ARG( rReq, pItem, SvxCaseMapItem, SID_ATTR_CHAR_CASEMAP , false );
+ if (pItem)
+ {
+ aNewAttr.Put(*pItem);
+ }
+ }
+ break;
case SID_SET_SUB_SCRIPT:
{
SvxEscapementItem aItem( EE_CHAR_ESCAPEMENT );
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index 56d7a88..a5183c1 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -409,6 +409,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
case SID_ATTR_CHAR_WEIGHT:
case SID_ATTR_CHAR_COLOR:
case SID_ATTR_CHAR_KERNING:
+ case SID_ATTR_CHAR_CASEMAP:
case SID_SET_SUB_SCRIPT:
case SID_SET_SUPER_SCRIPT:
{
diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx
index b20dfdc2..2483fda 100644
--- a/sw/source/ui/chrdlg/chardlg.cxx
+++ b/sw/source/ui/chrdlg/chardlg.cxx
@@ -112,13 +112,7 @@ void SwCharDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
}
else if (nId == m_nCharExtId)
{
- if(m_nDialogMode == DLG_CHAR_DRAW || m_nDialogMode == DLG_CHAR_ANN)
- aSet.Put (SfxUInt16Item(SID_DISABLE_CTL,DISABLE_CASEMAP));
-
- else
- {
- aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_PREVIEW_CHARACTER|SVX_ENABLE_FLASH));
- }
+ aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_PREVIEW_CHARACTER|SVX_ENABLE_FLASH));
rPage.PageCreated(aSet);
}
else if (nId == m_nCharPosId)
--
2.4.0

@ -1,599 +0,0 @@
From f47aa0dbb17a998bdeb01036b9fd9ba0b74b8704 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Sat, 6 Jun 2015 14:24:46 +0100
Subject: [PATCH] Resolves: tdf#89905 don't copy palettes from shared to user
make this a multi-path element with a shared read-only location
and a user read/write location and don't copy the presets, instead
just keep them in the shared location
Now an admin can copy extra palettes into the shared location
and they magically appear in the user deployments
Change-Id: I7585789c0c59941094f6128368df94b834d3c2a2
(cherry picked from commit 29202a16d9f1934684c7d0978112849f2a21fe2f)
Related: tdf#89905 these PalettePath uses appear to really be UserConfigPath
which is the same path at the moment
Change-Id: Ifdefa478003a2b5cc5c065b1942194dda1275f5e
(cherry picked from commit 2c3bf6bfc244517a0134e320acaa1f720703d8f2)
---
cui/source/tabpages/tabarea.cxx | 9 ++-
cui/source/tabpages/tabline.cxx | 10 +++-
cui/source/tabpages/tpbitmap.cxx | 22 ++++++-
cui/source/tabpages/tpcolor.cxx | 22 ++++++-
cui/source/tabpages/tpgradnt.cxx | 22 ++++++-
cui/source/tabpages/tphatch.cxx | 22 ++++++-
cui/source/tabpages/tplnedef.cxx | 22 ++++++-
cui/source/tabpages/tplneend.cxx | 23 +++++++-
extras/Package_palettes.mk | 2 +-
offapi/com/sun/star/util/XPathSettings.idl | 3 +-
.../registry/data/org/openoffice/Office/Paths.xcu | 3 +
.../schema/org/openoffice/Office/Common.xcs | 7 ++-
sd/source/ui/dlg/PhotoAlbumDialog.cxx | 2 +-
svx/source/sidebar/nbdtmg.cxx | 4 +-
svx/source/tbxctrls/PaletteManager.cxx | 67 +++++++++++++++-------
svx/source/xoutdev/xtable.cxx | 54 ++++++++++++-----
16 files changed, 237 insertions(+), 57 deletions(-)
diff --git a/cui/source/tabpages/tabarea.cxx b/cui/source/tabpages/tabarea.cxx
index 7ecc836..1bdaa17 100644
--- a/cui/source/tabpages/tabarea.cxx
+++ b/cui/source/tabpages/tabarea.cxx
@@ -142,7 +142,14 @@ void SvxAreaTabDialog::SavePalettes()
// save the tables when they have been changed
- const OUString aPath( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aPath;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aPath = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
if( mnHatchingListState & ChangeType::MODIFIED )
{
diff --git a/cui/source/tabpages/tabline.cxx b/cui/source/tabpages/tabline.cxx
index aa99b2c..6049c8c 100644
--- a/cui/source/tabpages/tabline.cxx
+++ b/cui/source/tabpages/tabline.cxx
@@ -130,8 +130,14 @@ void SvxLineTabDialog::SavePalettes()
}
// Save the tables when they have been changed
-
- const OUString aPath( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aPath;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aPath = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
if( nDashListState & ChangeType::MODIFIED )
{
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 0d11116..71c23e6 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -795,7 +795,16 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickLoadHdl_Impl)
::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 );
OUString aStrFilterType( "*.sob" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if ( aDlg.Execute() == ERRCODE_NONE )
@@ -875,7 +884,16 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( "*.sob" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
if( !pBitmapList->GetName().isEmpty() )
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index 94231c5..50b74de 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -142,7 +142,16 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickLoadHdl_Impl)
OUString aStrFilterType( XPropertyList::GetDefaultExtFilter( meType ) );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if ( aDlg.Execute() == ERRCODE_NONE )
@@ -202,7 +211,16 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( XPropertyList::GetDefaultExtFilter( meType ) );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
XPropertyListRef pList = GetList();
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index e737410..380f36a 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -655,7 +655,16 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickLoadHdl_Impl)
::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 );
OUString aStrFilterType( "*.sog" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if( aDlg.Execute() == ERRCODE_NONE )
@@ -739,7 +748,16 @@ IMPL_LINK_NOARG(SvxGradientTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( "*.sog" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
if( !pGradientList->GetName().isEmpty() )
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index bad1e71..0060b36 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -692,7 +692,16 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickLoadHdl_Impl)
::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 );
OUString aStrFilterType( "*.soh" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if( aDlg.Execute() == ERRCODE_NONE )
@@ -765,7 +774,16 @@ IMPL_LINK_NOARG(SvxHatchTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( "*.soh" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
if( !pHatchingList->GetName().isEmpty() )
diff --git a/cui/source/tabpages/tplnedef.cxx b/cui/source/tabpages/tplnedef.cxx
index 6694a54..38a7c7f 100644
--- a/cui/source/tabpages/tplnedef.cxx
+++ b/cui/source/tabpages/tplnedef.cxx
@@ -761,7 +761,16 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickLoadHdl_Impl)
::sfx2::FileDialogHelper aDlg( com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 );
OUString aStrFilterType( "*.sod" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if( aDlg.Execute() == ERRCODE_NONE )
@@ -821,7 +830,16 @@ IMPL_LINK_NOARG(SvxLineDefTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( "*.sod" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
if( !pDashList->GetName().isEmpty() )
diff --git a/cui/source/tabpages/tplneend.cxx b/cui/source/tabpages/tplneend.cxx
index aff55b9..478ab46 100644
--- a/cui/source/tabpages/tplneend.cxx
+++ b/cui/source/tabpages/tplneend.cxx
@@ -573,7 +573,17 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickLoadHdl_Impl)
::sfx2::FileDialogHelper aDlg(com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 );
OUString aStrFilterType( "*.soe" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::NO_DECODE ) );
if( aDlg.Execute() == ERRCODE_NONE )
@@ -633,7 +643,16 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickSaveHdl_Impl)
OUString aStrFilterType( "*.soe" );
aDlg.AddFilter( aStrFilterType, aStrFilterType );
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ OUString aPalettePath(SvtPathOptions().GetPalettePath());
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = aPalettePath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aFile(aLastDir);
DBG_ASSERT( aFile.GetProtocol() != INetProtocol::NotValid, "invalid URL" );
if( !pLineEndList->GetName().isEmpty() )
diff --git a/extras/Package_palettes.mk b/extras/Package_palettes.mk
index bc317e2..5cf4c61 100644
--- a/extras/Package_palettes.mk
+++ b/extras/Package_palettes.mk
@@ -9,7 +9,7 @@
$(eval $(call gb_Package_Package,extras_palettes,$(SRCDIR)/extras/source/palettes))
-$(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_PRESETS_FOLDER)/config,\
+$(eval $(call gb_Package_add_files,extras_palettes,$(LIBO_SHARE_FOLDER)/palette,\
arrowhd.soe \
classic.sog \
cmyk.soc \
diff --git a/offapi/com/sun/star/util/XPathSettings.idl b/offapi/com/sun/star/util/XPathSettings.idl
index 5f202a3..d54c122 100644
--- a/offapi/com/sun/star/util/XPathSettings.idl
+++ b/offapi/com/sun/star/util/XPathSettings.idl
@@ -89,7 +89,8 @@ published interface XPathSettings
[attribute] string Module;
/** This is the path to the palette files *.SOB to *.SOF containing
- user-defined colors and patterns. */
+ user-defined colors and patterns. The value can be more than
+ one path separated by a semicolon.*/
[attribute] string Palette;
/** Plugins are saved in these directories. The value can be more than
diff --git a/officecfg/registry/data/org/openoffice/Office/Paths.xcu b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
index 6d739e6..965a629 100644
--- a/officecfg/registry/data/org/openoffice/Office/Paths.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Paths.xcu
@@ -124,6 +124,9 @@
</node>
</node>
<node oor:name="Palette" oor:op="fuse" oor:mandatory="true">
+ <node oor:name="InternalPaths">
+ <node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/palette" oor:op="fuse"/>
+ </node>
<prop oor:name="WritePath">
<value>$(userurl)/config</value>
</prop>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 0bc0dc8..8922889 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -1642,12 +1642,15 @@
</info>
<value>$(progpath)</value>
</prop>
- <prop oor:name="Palette" oor:type="xs:string" oor:nillable="false">
+ <prop oor:name="Palette" oor:type="oor:string-list" oor:nillable="false">
<info>
<desc>Specifies the path to the palette files *.SOB to *.SOF
containing user-defined colors and patterns.</desc>
</info>
- <value>$(userurl)/config</value>
+ <value>
+ <it>$(insturl)/@LIBO_SHARE_FOLDER@/palette</it>
+ <it>$(userurl)/config</it>
+ </value>
</prop>
<prop oor:name="Plugin" oor:type="oor:string-list" oor:nillable="false">
<info>
diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
index d5dcd09..b29ea21 100644
--- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx
+++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
@@ -480,7 +480,7 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, FileHdl)
// Read configuration
OUString sUrl(officecfg::Office::Impress::Pictures::Path::get());
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() );
if (!sUrl.isEmpty())
aDlg.SetDisplayDirectory(sUrl);
else
diff --git a/svx/source/sidebar/nbdtmg.cxx b/svx/source/sidebar/nbdtmg.cxx
index 7c7e2c4..9570c2b 100644
--- a/svx/source/sidebar/nbdtmg.cxx
+++ b/svx/source/sidebar/nbdtmg.cxx
@@ -157,7 +157,7 @@ void NBOTypeMgrBase::ImplLoad(const OUString& filename)
bIsLoading = true;
SfxMapUnit eOldCoreUnit=eCoreUnit;
eCoreUnit = SFX_MAPUNIT_100TH_MM;
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() );
aFile.Append( filename);
std::unique_ptr<SvStream> xIStm(::utl::UcbStreamHelper::CreateStream( aFile.GetMainURL( INetURLObject::NO_DECODE ), StreamMode::READ ));
if( xIStm ) {
@@ -196,7 +196,7 @@ void NBOTypeMgrBase::ImplStore(const OUString& filename)
if (bIsLoading) return;
SfxMapUnit eOldCoreUnit=eCoreUnit;
eCoreUnit = SFX_MAPUNIT_100TH_MM;
- INetURLObject aFile( SvtPathOptions().GetPalettePath() );
+ INetURLObject aFile( SvtPathOptions().GetUserConfigPath() );
aFile.Append( filename);
std::unique_ptr<SvStream> xOStm(::utl::UcbStreamHelper::CreateStream( aFile.GetMainURL( INetURLObject::NO_DECODE ), StreamMode::WRITE ));
if( xOStm ) {
diff --git a/svx/source/tbxctrls/PaletteManager.cxx b/svx/source/tbxctrls/PaletteManager.cxx
index 109f934..3334afc 100644
--- a/svx/source/tbxctrls/PaletteManager.cxx
+++ b/svx/source/tbxctrls/PaletteManager.cxx
@@ -27,6 +27,8 @@
#include <svtools/colrdlg.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
+#include <stack>
+#include <set>
PaletteManager::PaletteManager() :
mnMaxRecentColors(Application::GetSettings().GetStyleSettings().GetColorValueSetColumnCount()),
@@ -47,31 +49,52 @@ PaletteManager::~PaletteManager()
void PaletteManager::LoadPalettes()
{
maPalettes.clear();
- OUString aPalPath = SvtPathOptions().GetPalettePath();
-
- osl::Directory aDir(aPalPath);
- osl::DirectoryItem aDirItem;
- osl::FileStatus aFileStat( osl_FileStatus_Mask_FileName |
- osl_FileStatus_Mask_FileURL |
- osl_FileStatus_Mask_Type );
- if( aDir.open() == osl::FileBase::E_None )
+ OUString aPalPaths = SvtPathOptions().GetPalettePath();
+
+ std::stack<OUString> aDirs;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aDirs.push(aPalPaths.getToken(0, ';', nIndex));
+ }
+ while (nIndex >= 0);
+
+ std::set<OUString> aNames;
+ //try all entries palette path list user first, then
+ //system, ignoring duplicate file names
+ while (!aDirs.empty())
{
- while( aDir.getNextItem(aDirItem) == osl::FileBase::E_None )
+ OUString aPalPath = aDirs.top();
+ aDirs.pop();
+
+ osl::Directory aDir(aPalPath);
+ osl::DirectoryItem aDirItem;
+ osl::FileStatus aFileStat( osl_FileStatus_Mask_FileName |
+ osl_FileStatus_Mask_FileURL |
+ osl_FileStatus_Mask_Type );
+ if( aDir.open() == osl::FileBase::E_None )
{
- aDirItem.getFileStatus(aFileStat);
- if(aFileStat.isRegular() || aFileStat.isLink())
+ while( aDir.getNextItem(aDirItem) == osl::FileBase::E_None )
{
- OUString aFName = aFileStat.getFileName();
- Palette* pPalette = 0;
- if( aFName.endsWithIgnoreAsciiCase(".gpl") )
- pPalette = new PaletteGPL( aFileStat.getFileURL(), aFName );
- else if( aFName.endsWithIgnoreAsciiCase(".soc") )
- pPalette = new PaletteSOC( aFileStat.getFileURL(), aFName );
- else if ( aFName.endsWithIgnoreAsciiCase(".ase") )
- pPalette = new PaletteASE( aFileStat.getFileURL(), aFName );
-
- if( pPalette && pPalette->IsValid() )
- maPalettes.push_back( pPalette );
+ aDirItem.getFileStatus(aFileStat);
+ if(aFileStat.isRegular() || aFileStat.isLink())
+ {
+ OUString aFName = aFileStat.getFileName();
+ if (aNames.find(aFName) == aNames.end())
+ {
+ Palette* pPalette = 0;
+ if( aFName.endsWithIgnoreAsciiCase(".gpl") )
+ pPalette = new PaletteGPL( aFileStat.getFileURL(), aFName );
+ else if( aFName.endsWithIgnoreAsciiCase(".soc") )
+ pPalette = new PaletteSOC( aFileStat.getFileURL(), aFName );
+ else if ( aFName.endsWithIgnoreAsciiCase(".ase") )
+ pPalette = new PaletteASE( aFileStat.getFileURL(), aFName );
+
+ if( pPalette && pPalette->IsValid() )
+ maPalettes.push_back( pPalette );
+ aNames.insert(aFName);
+ }
+ }
}
}
}
diff --git a/svx/source/xoutdev/xtable.cxx b/svx/source/xoutdev/xtable.cxx
index 5e35be9..b3f1416d 100644
--- a/svx/source/xoutdev/xtable.cxx
+++ b/svx/source/xoutdev/xtable.cxx
@@ -25,6 +25,7 @@
#include <svx/xpool.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpool.hxx>
+#include <stack>
using namespace com::sun::star;
@@ -224,23 +225,41 @@ bool XPropertyList::Load()
if( mbListDirty )
{
mbListDirty = false;
+ std::stack<OUString> aDirs;
- INetURLObject aURL( maPath );
-
- if( INetProtocol::NotValid == aURL.GetProtocol() )
+ sal_Int32 nIndex = 0;
+ do
{
- DBG_ASSERT( maPath.isEmpty(), "invalid URL" );
- return false;
+ aDirs.push(maPath.getToken(0, ';', nIndex));
}
+ while (nIndex >= 0);
+
+ //try all entries palette path list working back to front until one
+ //succeeds
+ while (!aDirs.empty())
+ {
+ OUString aPath(aDirs.top());
+ aDirs.pop();
+
+ INetURLObject aURL(aPath);
+
+ if( INetProtocol::NotValid == aURL.GetProtocol() )
+ {
+ DBG_ASSERT( aPath.isEmpty(), "invalid URL" );
+ return false;
+ }
- aURL.Append( maName );
+ aURL.Append( maName );
- if( aURL.getExtension().isEmpty() )
- aURL.setExtension( GetDefaultExt() );
+ if( aURL.getExtension().isEmpty() )
+ aURL.setExtension( GetDefaultExt() );
- return SvxXMLXTableImport::load( aURL.GetMainURL( INetURLObject::NO_DECODE ), maReferer,
- uno::Reference < embed::XStorage >(),
- createInstance(), NULL );
+ bool bRet = SvxXMLXTableImport::load(aURL.GetMainURL(INetURLObject::NO_DECODE),
+ maReferer, uno::Reference < embed::XStorage >(),
+ createInstance(), NULL );
+ if (bRet)
+ return bRet;
+ }
}
return false;
}
@@ -256,11 +275,20 @@ bool XPropertyList::LoadFrom( const uno::Reference < embed::XStorage > &xStorage
bool XPropertyList::Save()
{
- INetURLObject aURL( maPath );
+ //save to the last path in the palette path list
+ OUString aLastDir;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ aLastDir = maPath.getToken(0, ';', nIndex);
+ }
+ while (nIndex >= 0);
+
+ INetURLObject aURL(aLastDir);
if( INetProtocol::NotValid == aURL.GetProtocol() )
{
- DBG_ASSERT( maPath.isEmpty(), "invalid URL" );
+ DBG_ASSERT( aLastDir.isEmpty(), "invalid URL" );
return false;
}
--
2.4.0

@ -1,178 +0,0 @@
From f7ed8b99b628625851fb28ec1a3dead710c8871c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 23 Jun 2015 16:54:52 +0100
Subject: [PATCH] allow slide design to affect multiple standard pages
modify this minimally and select all standard pages
selected in the slidesorted, unselect them afterwards
and loop over the selected ones.
This looks like it could do with a rework to disentangle
the master/standard pages stuff, but leave it as is in
this commit
Change-Id: Ifd01fe21c91e5e6b07b2d8bba0d85facadc25998
---
sd/source/ui/func/fuprlout.cxx | 94 +++++++++++++++++++++++++++++-------------
1 file changed, 66 insertions(+), 28 deletions(-)
diff --git a/sd/source/ui/func/fuprlout.cxx b/sd/source/ui/func/fuprlout.cxx
index 6ce661f..f087ad9 100644
--- a/sd/source/ui/func/fuprlout.cxx
+++ b/sd/source/ui/func/fuprlout.cxx
@@ -42,6 +42,7 @@
#include "strmname.h"
#include "app.hrc"
#include "DrawDocShell.hxx"
+#include "SlideSorterViewShell.hxx"
#include "unprlout.hxx"
#include "unchss.hxx"
#include "unmovss.hxx"
@@ -89,24 +90,6 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
bool bError = false;
- // determine the active page
- sal_uInt16 nSelectedPage = SDRPAGE_NOTFOUND;
- for (sal_uInt16 nPage = 0; nPage < mpDoc->GetSdPageCount(PK_STANDARD); nPage++)
- {
- if (mpDoc->GetSdPage(nPage, PK_STANDARD)->IsSelected())
- {
- nSelectedPage = nPage;
- break;
- }
- }
-
- DBG_ASSERT(nSelectedPage != SDRPAGE_NOTFOUND, "no selected page");
- SdPage* pSelectedPage = mpDoc->GetSdPage(nSelectedPage, PK_STANDARD);
- OUString aOldLayoutName(pSelectedPage->GetLayoutName());
- sal_Int32 nPos = aOldLayoutName.indexOf(SD_LT_SEPARATOR);
- if (nPos != -1)
- aOldLayoutName = aOldLayoutName.copy(0, nPos);
-
/* if we are on a master page, the changes apply for all pages and notes-
pages who are using the relevant layout */
bool bOnMaster = false;
@@ -117,6 +100,51 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
if (eEditMode == EM_MASTERPAGE)
bOnMaster = true;
}
+
+ std::vector<SdPage*> aUnselect;
+ if (!bOnMaster)
+ {
+ //We later rely on IsSelected, so transfer the selection here
+ //into the document
+ slidesorter::SlideSorterViewShell* pSlideSorterViewShell
+ = slidesorter::SlideSorterViewShell::GetSlideSorter(mpViewShell->GetViewShellBase());
+ if (pSlideSorterViewShell)
+ {
+ boost::shared_ptr<slidesorter::SlideSorterViewShell::PageSelection> xSelection(
+ pSlideSorterViewShell->GetPageSelection());
+ if (xSelection)
+ {
+ for (auto it = xSelection->begin(); it != xSelection->end(); ++it)
+ {
+ SdPage *pPage = *it;
+ if (pPage->IsSelected() || pPage->GetPageKind() != PK_STANDARD)
+ continue;
+ mpDoc->SetSelected(pPage, true);
+ aUnselect.push_back(pPage);
+ }
+ }
+ }
+ }
+
+ std::vector<SdPage*> aSelectedPages;
+ std::vector<sal_uInt16> aSelectedPageNums;
+ // determine the active pages
+ for (sal_uInt16 nPage = 0; nPage < mpDoc->GetSdPageCount(PK_STANDARD); nPage++)
+ {
+ SdPage* pPage = mpDoc->GetSdPage(nPage, PK_STANDARD);
+ if (pPage->IsSelected())
+ {
+ aSelectedPages.push_back(pPage);
+ aSelectedPageNums.push_back(nPage);
+ }
+ }
+
+ assert(!aSelectedPages.empty() && "no selected page");
+ OUString aOldLayoutName(aSelectedPages.back()->GetLayoutName());
+ sal_Int32 nPos = aOldLayoutName.indexOf(SD_LT_SEPARATOR);
+ if (nPos != -1)
+ aOldLayoutName = aOldLayoutName.copy(0, nPos);
+
bool bMasterPage = bOnMaster;
bool bCheckMasters = false;
@@ -196,14 +224,15 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
OUString aLayoutName;
if( pTempDoc )
aLayoutName = aFile.getToken(1, DOCUMENT_TOKEN);
-
- mpDoc->SetMasterPage(nSelectedPage, aLayoutName, pTempDoc, bMasterPage, bCheckMasters);
+ for (auto nSelectedPage : aSelectedPageNums)
+ mpDoc->SetMasterPage(nSelectedPage, aLayoutName, pTempDoc, bMasterPage, bCheckMasters);
mpDoc->CloseBookmarkDoc();
}
else
{
// use master page with the layout name aFile from current Doc
- mpDoc->SetMasterPage(nSelectedPage, aFile, mpDoc, bMasterPage, bCheckMasters);
+ for (auto nSelectedPage : aSelectedPageNums)
+ mpDoc->SetMasterPage(nSelectedPage, aFile, mpDoc, bMasterPage, bCheckMasters);
}
// remove blocking
@@ -211,7 +240,7 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
static_cast<DrawView*>(mpView)->BlockPageOrderChangedHint(false);
// if the master page was visible, show it again
- if (!bError && nSelectedPage != SDRPAGE_NOTFOUND)
+ if (!bError)
{
if (bOnMaster)
{
@@ -219,13 +248,16 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
{
::sd::View* pView =
static_cast<DrawViewShell*>(mpViewShell)->GetView();
- sal_uInt16 nPgNum = pSelectedPage->TRG_GetMasterPage().GetPageNum();
+ for (auto pSelectedPage : aSelectedPages)
+ {
+ sal_uInt16 nPgNum = pSelectedPage->TRG_GetMasterPage().GetPageNum();
- if (static_cast<DrawViewShell*>(mpViewShell)->GetPageKind() == PK_NOTES)
- nPgNum++;
+ if (static_cast<DrawViewShell*>(mpViewShell)->GetPageKind() == PK_NOTES)
+ nPgNum++;
- pView->HideSdrPage();
- pView->ShowSdrPage(pView->GetModel()->GetMasterPage(nPgNum));
+ pView->HideSdrPage();
+ pView->ShowSdrPage(pView->GetModel()->GetMasterPage(nPgNum));
+ }
}
// force update of TabBar
@@ -233,10 +265,16 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
}
else
{
- pSelectedPage->SetAutoLayout(pSelectedPage->GetAutoLayout());
+ for (auto pSelectedPage : aSelectedPages)
+ pSelectedPage->SetAutoLayout(pSelectedPage->GetAutoLayout());
}
}
+ //Undo transfer to document selection
+ for (auto pPage : aUnselect)
+ mpDoc->SetSelected(pPage, false);
+
+
// fake a mode change to repaint the page tab bar
if( mpViewShell && mpViewShell->ISA( DrawViewShell ) )
{
--
2.4.0

@ -1,817 +0,0 @@
From 91739f2ca569b30383fe2f1cef8816fa8bf0554a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 10 Sep 2015 11:07:55 +0100
Subject: [PATCH] default to as-character caption contents
this FindFlyFrm variant returns the Selected FlyFrm
the other one actively searches for the FlyFrm that
matches the XEmbeddedObject argument
Change-Id: I2f9271c01337b4a32d7b644f82d16d85c2dc5b51
(cherry picked from commit d9729bc06d676a36120f3da252d1a4fa39d103d8)
GetCurrFlyFrm just forwards to GetSelectedFlyFrm
Change-Id: Ia0b83a3aad71a72ae2135c5d7f6ddb6d9644b10b
(cherry picked from commit 8df51f799bb830db52c7be2d04b575b0443b76ec)
bundle duplicate pattern into a GetCurrFlyFrm method
Change-Id: Ib12b825ef9cc6e2b57e9320d435e3863d319cf0f
(cherry picked from commit 7473aacc73f8572e20f6f2a3a1d10001c5cc477d)
GetSelectedFlyFrm+GetCurrFlyFrm -> GetSelectedOrCurrFlyFrm
Change-Id: I4348c4cf54dcd5504c52cf8ab550572257eef50b
(cherry picked from commit a5aab0cce45309afae81b3ec0be8ace1ca0ca17d)
GetCurFrameFormat->GetSelectedFrameFormat
Change-Id: I2f1eb4567b6e073991d95dbcecdc79b24010f2c1
(cherry picked from commit 4e6194fe8357efc5afa8d094e209ea94335b5923)
split out useful code as standalone makeItemSetFromFormatAnchor
Change-Id: I385549b4841dfc715aa984bcc257d78c9f1c3ed4
(cherry picked from commit d961c9273104f552a8207e63c33e33f1e265565d)
Related: tdf#93676 default to as-char inside captions
This will (hopefull) improve round-tripping to doc[x] for new documents because
word can only have as-char elements inside frames so we get a like-for-like
conversion if the defaults are used.
Change-Id: I3913b9b624dd5ba57ed07140bced8e3dca289cf5
(cherry picked from commit 93ab0ff24cb71c36c9e7958046e96d7472b5af90)
---
sw/inc/fesh.hxx | 14 +++-
sw/source/core/access/accframebase.cxx | 2 +-
sw/source/core/access/accmap.cxx | 2 +-
sw/source/core/access/accselectionhelper.cxx | 10 +--
sw/source/core/frmedt/fecopy.cxx | 8 +-
sw/source/core/frmedt/fefly1.cxx | 118 ++++++++++++---------------
sw/source/core/frmedt/feflyole.cxx | 2 +-
sw/source/core/frmedt/feshview.cxx | 6 +-
sw/source/core/frmedt/fews.cxx | 60 +++++++++++---
sw/source/core/inc/UndoInsert.hxx | 1 +
sw/source/core/undo/unins.cxx | 16 +++-
sw/source/uibase/app/docst.cxx | 8 +-
sw/source/uibase/ribbar/drawbase.cxx | 2 +-
sw/source/uibase/shells/basesh.cxx | 18 ++--
sw/source/uibase/shells/frmsh.cxx | 8 +-
sw/source/uibase/shells/grfsh.cxx | 2 +-
sw/source/uibase/wrtsh/wrtsh1.cxx | 2 +-
17 files changed, 159 insertions(+), 120 deletions(-)
diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx
index b3bbfcd..efc9b3d 100644
--- a/sw/inc/fesh.hxx
+++ b/sw/inc/fesh.hxx
@@ -187,7 +187,6 @@ private:
std::unique_ptr<SdrDropMarkerOverlay> m_pChainFrom;
bool m_bCheckForOLEInCaption;
- SAL_DLLPRIVATE SwFlyFrm *FindFlyFrm() const;
SAL_DLLPRIVATE SwFlyFrm *FindFlyFrm( const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& ) const;
/// Terminate actions for all shells and call ChangeLink.
@@ -362,6 +361,7 @@ public:
bool IsFrmSelected() const;
bool GetFlyFrmAttr( SfxItemSet &rSet ) const;
bool SetFlyFrmAttr( SfxItemSet &rSet );
+ SfxItemSet makeItemSetFromFormatAnchor(SfxItemPool& rPool, const SwFormatAnchor &rAnchor) const;
bool ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet = 0 );
const SwFrameFormat *NewFlyFrm( const SfxItemSet &rSet, bool bAnchValid = false,
SwFrameFormat *pParent = 0 );
@@ -373,9 +373,17 @@ public:
- add output parameter <bVertL2R> */
bool IsFrmVertical(const bool bEnvironment, bool& bRightToLeft, bool& bVertL2R) const;
- SwFrameFormat* GetCurFrameFormat() const; ///< If frame then frame style, else 0.
+ SwFrameFormat* GetSelectedFrameFormat() const; ///< If frame then frame style, else 0.
void SetFrameFormat( SwFrameFormat *pFormat, bool bKeepOrient = false, Point* pDocPos = 0 ); ///< If frame then set frame style.
- const SwFlyFrm *GetCurrFlyFrm() const { return FindFlyFrm(); }
+
+ // Get selected fly
+ SwFlyFrm* GetSelectedFlyFrm() const;
+
+ // Get current fly in which the cursor is positioned
+ SwFlyFrm* GetCurrFlyFrm(const bool bCalcFrm = true) const;
+
+ // Get selected fly, but if none Get current fly in which the cursor is positioned
+ SwFlyFrm* GetSelectedOrCurrFlyFrm(const bool bCalcFrm = true) const;
/// Find/delete fly containing the cursor.
SwFrameFormat* WizzardGetFly();
diff --git a/sw/source/core/access/accframebase.cxx b/sw/source/core/access/accframebase.cxx
index bfffd2d..bfe07b4 100644
--- a/sw/source/core/access/accframebase.cxx
+++ b/sw/source/core/access/accframebase.cxx
@@ -53,7 +53,7 @@ bool SwAccessibleFrameBase::IsSelected()
if( pVSh->ISA( SwFEShell ) )
{
const SwFEShell *pFESh = static_cast< const SwFEShell * >( pVSh );
- const SwFrm *pFlyFrm = pFESh->GetCurrFlyFrm();
+ const SwFrm *pFlyFrm = pFESh->GetSelectedFlyFrm();
if( pFlyFrm == GetFrm() )
bRet = true;
}
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 7e47ad3..18d9ce5 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -2598,7 +2598,7 @@ void SwAccessibleMap::InvalidateCursorPosition( const SwFrm *pFrm )
else if( pVSh->ISA( SwFEShell ) )
{
const SwFEShell *pFESh = static_cast< const SwFEShell * >( pVSh );
- const SwFrm *pFlyFrm = pFESh->GetCurrFlyFrm();
+ const SwFrm *pFlyFrm = pFESh->GetSelectedFlyFrm();
if( pFlyFrm )
{
OSL_ENSURE( !pFrm || pFrm->FindFlyFrm() == pFlyFrm,
diff --git a/sw/source/core/access/accselectionhelper.cxx b/sw/source/core/access/accselectionhelper.cxx
index cec0612..5269503 100644
--- a/sw/source/core/access/accselectionhelper.cxx
+++ b/sw/source/core/access/accselectionhelper.cxx
@@ -156,12 +156,12 @@ bool SwAccessibleSelectionHelper::isAccessibleChildSelected(
// ... and compare to the currently selected frame
bool bRet = false;
- SwFEShell* pFEShell = GetFEShell();
+ const SwFEShell* pFEShell = GetFEShell();
if( pFEShell )
{
if ( aChild.GetSwFrm() != 0 )
{
- bRet = (pFEShell->GetCurrFlyFrm() == aChild.GetSwFrm());
+ bRet = (pFEShell->GetSelectedFlyFrm() == aChild.GetSwFrm());
}
else if ( aChild.GetDrawObject() )
{
@@ -218,10 +218,10 @@ sal_Int32 SwAccessibleSelectionHelper::getSelectedAccessibleChildCount( )
sal_Int32 nCount = 0;
// Only one frame can be selected at a time, and we only frames
// for selectable children.
- SwFEShell* pFEShell = GetFEShell();
+ const SwFEShell* pFEShell = GetFEShell();
if( pFEShell != 0 )
{
- const SwFlyFrm* pFlyFrm = pFEShell->GetCurrFlyFrm();
+ const SwFlyFrm* pFlyFrm = pFEShell->GetSelectedFlyFrm();
if( pFlyFrm )
{
nCount = 1;
@@ -290,7 +290,7 @@ Reference<XAccessible> SwAccessibleSelectionHelper::getSelectedAccessibleChild(
throwIndexOutOfBoundsException();
SwAccessibleChild aChild;
- const SwFlyFrm *pFlyFrm = pFEShell->GetCurrFlyFrm();
+ const SwFlyFrm *pFlyFrm = pFEShell->GetSelectedFlyFrm();
if( pFlyFrm )
{
if( 0 == nSelectedChildIndex )
diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx
index 987625d..ab55d84 100644
--- a/sw/source/core/frmedt/fecopy.cxx
+++ b/sw/source/core/frmedt/fecopy.cxx
@@ -126,7 +126,7 @@ bool SwFEShell::Copy( SwDoc* pClpDoc, const OUString* pNewClpText )
if( IsFrmSelected() )
{
// get the FlyFormat
- SwFlyFrm* pFly = FindFlyFrm();
+ SwFlyFrm* pFly = GetSelectedFlyFrm();
SwFrameFormat* pFlyFormat = pFly->GetFormat();
SwFormatAnchor aAnchor( pFlyFormat->GetAnchor() );
@@ -467,7 +467,7 @@ bool SwFEShell::Copy( SwFEShell* pDestShell, const Point& rSttPt,
if( IsFrmSelected() )
{
- SwFlyFrm* pFly = FindFlyFrm();
+ SwFlyFrm* pFly = GetSelectedFlyFrm();
SwFrameFormat* pFlyFormat = pFly->GetFormat();
SwFormatAnchor aAnchor( pFlyFormat->GetAnchor() );
bRet = true;
@@ -1264,10 +1264,10 @@ bool SwFEShell::GetDrawObjGraphic( SotClipboardFormatId nFormat, Graphic& rGrf )
}
else
{
- // fix(23806): not the origial size, but the current one.
+ // Not the original size, but the current one.
// Otherwise it could happen that for vector graphics
// many MB's of memory are allocated.
- const Size aSz( FindFlyFrm()->Prt().SSize() );
+ const Size aSz( GetSelectedFlyFrm()->Prt().SSize() );
ScopedVclPtrInstance< VirtualDevice > pVirtDev(*GetWin());
MapMode aTmp( MAP_TWIP );
diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index 2937f04..e35b98e 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -236,7 +236,7 @@ void SwFEShell::SelectFlyFrm( SwFlyFrm& rFrm, bool bNew )
OSL_ENSURE( rFrm.IsFlyFrm(), "SelectFlyFrm will einen Fly" );
// nothing to be done if the Fly already was selected
- if ( FindFlyFrm() == &rFrm )
+ if (GetSelectedFlyFrm() == &rFrm)
return;
// assure the anchor is drawn
@@ -254,8 +254,8 @@ void SwFEShell::SelectFlyFrm( SwFlyFrm& rFrm, bool bNew )
}
}
-// returns a Fly if one is selected
-SwFlyFrm *SwFEShell::FindFlyFrm() const
+// Get selected fly
+SwFlyFrm* SwFEShell::GetSelectedFlyFrm() const
{
if ( Imp()->HasDrawView() )
{
@@ -270,6 +270,22 @@ SwFlyFrm *SwFEShell::FindFlyFrm() const
return 0;
}
+// Get current fly in which the cursor is positioned
+SwFlyFrm* SwFEShell::GetCurrFlyFrm(const bool bCalcFrm) const
+{
+ SwContentFrm *pContent = GetCurrFrm(bCalcFrm);
+ return pContent ? pContent->FindFlyFrm() : 0;
+}
+
+// Get selected fly, but if none Get current fly in which the cursor is positioned
+SwFlyFrm* SwFEShell::GetSelectedOrCurrFlyFrm(const bool bCalcFrm) const
+{
+ SwFlyFrm *pFly = GetSelectedFlyFrm();
+ if (pFly)
+ return pFly;
+ return GetCurrFlyFrm(bCalcFrm);
+}
+
// Returns non-null pointer, if the current Fly could be anchored to another one (so it is inside)
const SwFrameFormat* SwFEShell::IsFlyInFly()
{
@@ -281,11 +297,8 @@ const SwFrameFormat* SwFEShell::IsFlyInFly()
const SdrMarkList &rMrkList = Imp()->GetDrawView()->GetMarkedObjectList();
if ( !rMrkList.GetMarkCount() )
{
- SwContentFrm *pContent = GetCurrFrm( false );
- if( !pContent )
- return NULL;
- SwFlyFrm *pFly = pContent->FindFlyFrm();
- if ( !pFly )
+ SwFlyFrm *pFly = GetCurrFlyFrm(false);
+ if (!pFly)
return NULL;
return pFly->GetFormat();
}
@@ -332,11 +345,8 @@ void SwFEShell::SetFlyPos( const Point& rAbsPos )
SET_CURR_SHELL( this );
// Determine reference point in document coordinates
- SwContentFrm *pContent = GetCurrFrm( false );
- if( !pContent )
- return;
- SwFlyFrm *pFly = pContent->FindFlyFrm();
- if ( !pFly )
+ SwFlyFrm *pFly = GetCurrFlyFrm(false);
+ if (!pFly)
return;
//SwSaveHdl aSaveX( Imp() );
@@ -968,21 +978,11 @@ void SwFEShell::SetPageObjsNewPage( std::vector<SwFrameFormat*>& rFillArr, int n
// wrong place or which are ambiguous (multiple selections) will be removed.
bool SwFEShell::GetFlyFrmAttr( SfxItemSet &rSet ) const
{
- SwFlyFrm *pFly = FindFlyFrm();
- if ( !pFly )
+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm();
+ if (!pFly)
{
- SwFrm* pCurrFrm( GetCurrFrm() );
- if ( !pCurrFrm )
- {
- OSL_FAIL( "<SwFEShell::GetFlyFrmAttr(..)> - missing current frame. This is a serious defect, please inform OD." );
- return false;
- }
- pFly = GetCurrFrm()->FindFlyFrm();
- if ( !pFly )
- {
- OSL_ENSURE( false, "GetFlyFrmAttr, no Fly selected." );
- return false;
- }
+ OSL_ENSURE( false, "GetFlyFrmAttr, no Fly selected." );
+ return false;
}
SET_CURR_SHELL( (SwViewShell*)this );
@@ -1026,13 +1026,8 @@ bool SwFEShell::SetFlyFrmAttr( SfxItemSet& rSet )
if( rSet.Count() )
{
- SwFlyFrm *pFly = FindFlyFrm();
- if( !pFly )
- {
- OSL_ENSURE( GetCurrFrm(), "Crsr in parking zone" );
- pFly = GetCurrFrm()->FindFlyFrm();
- OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." );
- }
+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm();
+ OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." );
if( pFly )
{
StartAllAction();
@@ -1058,6 +1053,16 @@ bool SwFEShell::SetFlyFrmAttr( SfxItemSet& rSet )
return bRet;
}
+SfxItemSet SwFEShell::makeItemSetFromFormatAnchor(SfxItemPool& rPool, const SwFormatAnchor &rAnchor) const
+{
+ // The set also includes VERT/HORI_ORIENT, because the align
+ // shall be changed in FEShell::SetFlyFrmAttr/SetFlyFrmAnchor,
+ // possibly as a result of the anchor change.
+ SfxItemSet aSet(rPool, RES_VERT_ORIENT, RES_ANCHOR);
+ aSet.Put(rAnchor);
+ return aSet;
+}
+
bool SwFEShell::SetDrawingAttr( SfxItemSet& rSet )
{
bool bRet = false;
@@ -1106,14 +1111,8 @@ bool SwFEShell::ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet )
{
SET_CURR_SHELL( this );
- SwFlyFrm *pFly = FindFlyFrm();
- if( !pFly )
- {
- OSL_ENSURE( GetCurrFrm(), "Crsr in parking zone" );
- pFly = GetCurrFrm()->FindFlyFrm();
- OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." );
- }
-
+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm();
+ OSL_ENSURE( pFly, "SetFlyFrmAttr, no Fly selected." );
if( pFly )
{
StartAllAction();
@@ -1143,10 +1142,10 @@ bool SwFEShell::ResetFlyFrmAttr( sal_uInt16 nWhich, const SfxItemSet* pSet )
}
// Returns frame-format if frame, otherwise 0
-SwFrameFormat* SwFEShell::GetCurFrameFormat() const
+SwFrameFormat* SwFEShell::GetSelectedFrameFormat() const
{
SwFrameFormat* pRet = 0;
- SwLayoutFrm *pFly = FindFlyFrm();
+ SwLayoutFrm *pFly = GetSelectedFlyFrm();
if( pFly && ( pRet = static_cast<SwFrameFormat*>(pFly->GetFormat()->DerivedFrom()) ) ==
GetDoc()->GetDfltFrameFormat() )
pRet = 0;
@@ -1164,7 +1163,7 @@ void SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Poi
pFly = static_cast<const SwFlyFrameFormat*>(pFormat)->GetFrm();
}
else
- pFly = FindFlyFrm();
+ pFly = GetSelectedFlyFrm();
OSL_ENSURE( pFly, "SetFrameFormat: no frame" );
if( pFly )
{
@@ -1200,35 +1199,24 @@ void SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Poi
const SwFrameFormat* SwFEShell::GetFlyFrameFormat() const
{
- const SwFlyFrm* pFly = FindFlyFrm();
- if ( !pFly )
- {
- SwFrm* pCurrFrm = GetCurrFrm();
- pFly = pCurrFrm ? pCurrFrm->FindFlyFrm() : 0;
- }
- if( pFly )
+ const SwFlyFrm* pFly = GetSelectedOrCurrFlyFrm();
+ if (pFly)
return pFly->GetFormat();
return 0;
}
SwFrameFormat* SwFEShell::GetFlyFrameFormat()
{
- SwFlyFrm* pFly = FindFlyFrm();
- if ( !pFly )
- {
- SwFrm* pCurrFrm = GetCurrFrm();
- pFly = pCurrFrm ? pCurrFrm->FindFlyFrm() : 0;
- }
- if( pFly )
+ SwFlyFrm* pFly = GetSelectedOrCurrFlyFrm();
+ if (pFly)
return pFly->GetFormat();
return 0;
}
SwRect SwFEShell::GetFlyRect() const
{
- SwContentFrm *pContent = GetCurrFrm( false );
- SwFlyFrm *pFly = pContent ? pContent->FindFlyFrm() : 0;
- if ( !pFly )
+ SwFlyFrm *pFly = GetCurrFlyFrm(false);
+ if (!pFly)
{
SwRect aRect;
return aRect;
@@ -1416,7 +1404,7 @@ SwFrameFormat* SwFEShell::WizzardGetFly()
void SwFEShell::SetFlyName( const OUString& rName )
{
- SwLayoutFrm *pFly = FindFlyFrm();
+ SwLayoutFrm *pFly = GetSelectedFlyFrm();
if( pFly )
GetDoc()->SetFlyName( *static_cast<SwFlyFrameFormat*>(pFly->GetFormat()), rName );
else {
@@ -1426,7 +1414,7 @@ void SwFEShell::SetFlyName( const OUString& rName )
OUString SwFEShell::GetFlyName() const
{
- SwLayoutFrm *pFly = FindFlyFrm();
+ SwLayoutFrm *pFly = GetSelectedFlyFrm();
if( pFly )
return pFly->GetFormat()->GetName();
@@ -1437,7 +1425,7 @@ OUString SwFEShell::GetFlyName() const
const uno::Reference < embed::XEmbeddedObject > SwFEShell::GetOleRef() const
{
uno::Reference < embed::XEmbeddedObject > xObj;
- SwFlyFrm * pFly = FindFlyFrm();
+ SwFlyFrm * pFly = GetSelectedFlyFrm();
if (pFly && pFly->Lower() && pFly->Lower()->IsNoTextFrm())
{
SwOLENode *pNd = static_cast<SwNoTextFrm*>(pFly->Lower())->GetNode()->GetOLENode();
diff --git a/sw/source/core/frmedt/feflyole.cxx b/sw/source/core/frmedt/feflyole.cxx
index cd9804a..4d17b2a 100644
--- a/sw/source/core/frmedt/feflyole.cxx
+++ b/sw/source/core/frmedt/feflyole.cxx
@@ -43,7 +43,7 @@ using namespace com::sun::star;
SwFlyFrm *SwFEShell::FindFlyFrm( const uno::Reference < embed::XEmbeddedObject >& xObj ) const
{
- SwFlyFrm *pFly = FindFlyFrm();
+ SwFlyFrm *pFly = GetSelectedFlyFrm();
if ( pFly && pFly->Lower() && pFly->Lower()->IsNoTextFrm() )
{
SwOLENode *pNd = static_cast<SwNoTextFrm*>(pFly->Lower())->GetNode()->GetOLENode();
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index fe38a22..54d79fb 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -1772,7 +1772,7 @@ bool SwFEShell::ImpEndCreate()
SwFlyFrm* pFlyFrm;
if( NewFlyFrm( aSet, true ) &&
::GetHtmlMode( GetDoc()->GetDocShell() ) &&
- 0 != ( pFlyFrm = FindFlyFrm() ))
+ 0 != ( pFlyFrm = GetSelectedFlyFrm() ))
{
SfxItemSet aHtmlSet( GetDoc()->GetAttrPool(), RES_VERT_ORIENT, RES_HORI_ORIENT );
// horizontal orientation:
@@ -2083,7 +2083,7 @@ Point SwFEShell::GetAnchorObjDiff() const
if ( IsFrmSelected() )
{
- SwFlyFrm *pFly = FindFlyFrm();
+ SwFlyFrm *pFly = GetSelectedFlyFrm();
aRet -= pFly->GetAnchorFrm()->Frm().Pos();
}
else
@@ -2631,7 +2631,7 @@ void SwFEShell::SetChainMarker()
bDelTo = true;
if ( IsFrmSelected() )
{
- SwFlyFrm *pFly = FindFlyFrm();
+ SwFlyFrm *pFly = GetSelectedFlyFrm();
if ( pFly->GetPrevLink() )
{
diff --git a/sw/source/core/frmedt/fews.cxx b/sw/source/core/frmedt/fews.cxx
index db791c8..a850f62 100644
--- a/sw/source/core/frmedt/fews.cxx
+++ b/sw/source/core/frmedt/fews.cxx
@@ -48,6 +48,7 @@
#include <ndtxt.hxx>
#include <dflyobj.hxx>
#include <dcontact.hxx>
+#include <UndoInsert.hxx>
using namespace com::sun::star;
@@ -395,14 +396,18 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con
if( LTYPE_DRAW==eType || pCnt )
{
StartAllAction();
+ SwRewriter aRewriter(SwUndoInsertLabel::CreateRewriter(rText));
+ StartUndo(UNDO_INSERTLABEL, &aRewriter);
sal_uLong nIdx = 0;
+ bool bInnerCntIsFly = false;
SwFlyFrameFormat* pFlyFormat = 0;
switch( eType )
{
case LTYPE_OBJECT:
case LTYPE_FLY:
- if( pCnt->IsInFly() )
+ bInnerCntIsFly = pCnt->IsInFly();
+ if (bInnerCntIsFly)
{
// pass down index to the startnode for flys
nIdx = pCnt->FindFlyFrm()->
@@ -423,7 +428,6 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con
{
SwDrawView *pDView = Imp()->GetDrawView();
const SdrMarkList& rMrkList = pDView->GetMarkedObjectList();
- StartUndo();
// copy marked drawing objects to
// local list to perform the corresponding action for each object
@@ -452,7 +456,6 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con
aDrawObjs.pop_back();
}
- EndUndo();
}
break;
default:
@@ -460,14 +463,49 @@ void SwFEShell::InsertLabel( const SwLabelType eType, const OUString &rText, con
}
if( nIdx )
- pFlyFormat = GetDoc()->InsertLabel( eType, rText, rSeparator, rNumberSeparator, bBefore, nId,
- nIdx, rCharacterStyle, bCpyBrd );
+ {
+ pFlyFormat = GetDoc()->InsertLabel(eType, rText, rSeparator,
+ rNumberSeparator, bBefore, nId,
+ nIdx, rCharacterStyle, bCpyBrd);
+
+ //if we succeeded in putting a caption on the content, and the
+ //content was a frame/graphic, then set the contained element
+ //to as-char anchoring because that's all msword is able to
+ //do when inside a frame, and in writer for freshly captioned
+ //elements it's largely irrelevent what the anchor of the contained
+ //type is but making it as-char by default results in very
+ //good roundtripping
+ if (pFlyFormat && bInnerCntIsFly)
+ {
+ SwNodeIndex aAnchIdx(*pFlyFormat->GetContent().GetContentIdx(), 1);
+ SwTextNode *pTxtNode = aAnchIdx.GetNode().GetTextNode();
+
+ SwFormatAnchor aAnc(FLY_AS_CHAR);
+ sal_Int32 nInsertPos = bBefore ? pTxtNode->Len() : 0;
+ SwPosition aPos(*pTxtNode, nInsertPos);
+
+ aAnc.SetAnchor(&aPos);
+
+ SfxItemSet aSet(makeItemSetFromFormatAnchor(GetDoc()->GetAttrPool(), aAnc));
- SwFlyFrm* pFrm;
- const Point aPt( GetCrsrDocPos() );
- if( pFlyFormat && 0 != ( pFrm = pFlyFormat->GetFrm( &aPt )))
- SelectFlyFrm( *pFrm, true );
+ SwFlyFrm *pFly = GetSelectedOrCurrFlyFrm();
+ SwFlyFrameFormat* pInnerFlyFormat = pFly->GetFormat();
+ GetDoc()->SetFlyFrmAttr(*pInnerFlyFormat, aSet);
+ //put a hard-break after the graphic to keep it separated
+ //from the caption text if the outer frame is resized
+ SwIndex aIdx(pTxtNode, bBefore ? nInsertPos : 1);
+ pTxtNode->InsertText(OUString("\n"), aIdx);
+ }
+ }
+
+ if (pFlyFormat)
+ {
+ const Point aPt(GetCrsrDocPos());
+ if (SwFlyFrm* pFrm = pFlyFormat->GetFrm(&aPt))
+ SelectFlyFrm(*pFrm, true);
+ }
+ EndUndo();
EndAllActionAndCall();
}
}
@@ -649,7 +687,7 @@ void SwFEShell::CalcBoundRect( SwRect& _orRect,
}
else
{
- pFly = FindFlyFrm();
+ pFly = GetSelectedFlyFrm();
pFrm = pFly ? pFly->GetAnchorFrm() : GetCurrFrm();
}
@@ -1167,7 +1205,7 @@ void SwFEShell::CalcBoundRect( SwRect& _orRect,
Size SwFEShell::GetGraphicDefaultSize() const
{
Size aRet;
- SwFlyFrm *pFly = FindFlyFrm();
+ SwFlyFrm *pFly = GetSelectedFlyFrm();
if ( pFly )
{
// #i32951# - due to issue #i28701# no format of a
diff --git a/sw/source/core/inc/UndoInsert.hxx b/sw/source/core/inc/UndoInsert.hxx
index 8ef9263..f99783a 100644
--- a/sw/source/core/inc/UndoInsert.hxx
+++ b/sw/source/core/inc/UndoInsert.hxx
@@ -203,6 +203,7 @@ public:
@return the rewriter of this undo object
*/
virtual SwRewriter GetRewriter() const SAL_OVERRIDE;
+ static SwRewriter CreateRewriter(const OUString &rStr);
void SetNodePos( sal_uLong nNd )
{ if( LTYPE_OBJECT != eType ) NODE.nNode = nNd; }
diff --git a/sw/source/core/undo/unins.cxx b/sw/source/core/undo/unins.cxx
index 58bdcf4..64541bd 100644
--- a/sw/source/core/undo/unins.cxx
+++ b/sw/source/core/undo/unins.cxx
@@ -1014,14 +1014,22 @@ void SwUndoInsertLabel::RepeatImpl(::sw::RepeatContext & rContext)
// #111827#
SwRewriter SwUndoInsertLabel::GetRewriter() const
{
+ return CreateRewriter(sText);
+}
+
+SwRewriter SwUndoInsertLabel::CreateRewriter(const OUString &rStr)
+{
SwRewriter aRewriter;
OUString aTmpStr;
- aTmpStr += SW_RES(STR_START_QUOTE);
- aTmpStr += ShortenString(sText, nUndoStringLength,
- OUString(SW_RES(STR_LDOTS)));
- aTmpStr += SW_RES(STR_END_QUOTE);
+ if (!rStr.isEmpty())
+ {
+ aTmpStr += SW_RES(STR_START_QUOTE);
+ aTmpStr += ShortenString(rStr, nUndoStringLength,
+ OUString(SW_RES(STR_LDOTS)));
+ aTmpStr += SW_RES(STR_END_QUOTE);
+ }
aRewriter.AddRule(UndoArg1, aTmpStr);
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index 77e79af..381fe8b 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -129,7 +129,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh)
// so that this family is being showed
if(pShell->IsFrmSelected())
{
- SwFrameFormat* pFormat = pShell->GetCurFrameFormat();
+ SwFrameFormat* pFormat = pShell->GetSelectedFrameFormat();
if( pFormat )
aName = pFormat->GetName();
}
@@ -195,7 +195,7 @@ void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh)
rSet.DisableItem( nWhich );
else
{
- SwFrameFormat* pFormat = pShell->GetCurFrameFormat();
+ SwFrameFormat* pFormat = pShell->GetSelectedFrameFormat();
if(pFormat && pShell->IsFrmSelected())
{
aName = pFormat->GetName();
@@ -429,7 +429,7 @@ void SwDocShell::ExecStyleSheet( SfxRequest& rReq )
break;
case SFX_STYLE_FAMILY_FRAME:
{
- SwFrameFormat* pFrm = m_pWrtShell->GetCurFrameFormat();
+ SwFrameFormat* pFrm = m_pWrtShell->GetSelectedFrameFormat();
if( pFrm )
aParam = pFrm->GetName();
}
@@ -1177,7 +1177,7 @@ sal_uInt16 SwDocShell::MakeByExample( const OUString &rName, sal_uInt16 nFamily,
SfxItemSet aSet(GetPool(), aFrameFormatSetRange );
pCurrWrtShell->GetFlyFrmAttr( aSet );
- SwFrameFormat* pFFormat = pCurrWrtShell->GetCurFrameFormat();
+ SwFrameFormat* pFFormat = pCurrWrtShell->GetSelectedFrameFormat();
pFrm->SetDerivedFrom( pFFormat );
pFrm->SetFormatAttr( aSet );
diff --git a/sw/source/uibase/ribbar/drawbase.cxx b/sw/source/uibase/ribbar/drawbase.cxx
index 0cbea13..55b6d44 100644
--- a/sw/source/uibase/ribbar/drawbase.cxx
+++ b/sw/source/uibase/ribbar/drawbase.cxx
@@ -287,7 +287,7 @@ bool SwDrawBase::MouseButtonUp(const MouseEvent& rMEvt)
aCol.Init(m_pWin->GetFrmColCount(), aCol.GetGutterWidth(), aCol.GetWishWidth());
aSet.Put(aCol);
// Template AutoUpdate
- SwFrameFormat* pFormat = m_pSh->GetCurFrameFormat();
+ SwFrameFormat* pFormat = m_pSh->GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
m_pSh->AutoUpdateFrame(pFormat, aSet);
else
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index 0a9c64f..360d7c3 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -1008,16 +1008,12 @@ void SwBaseShell::Execute(SfxRequest &rReq)
? FLY_AS_CHAR
: FLY_AT_CHAR;
rSh.StartUndo();
- if( rSh.IsObjSelected() )
- rSh.ChgAnchor( eSet );
- else if( rSh.IsFrmSelected() )
- {
- // The set also includes VERT/HORI_ORIENT, because the align
- // shall be changed in FEShell::SetFlyFrmAttr/SetFlyFrmAnchor,
- // possibly as a result of the anchor change.
- SfxItemSet aSet( GetPool(), RES_VERT_ORIENT, RES_ANCHOR );
- SwFormatAnchor aAnc( eSet, rSh.GetPhyPageNum() );
- aSet.Put( aAnc );
+ if (rSh.IsObjSelected())
+ rSh.ChgAnchor(eSet);
+ else if (rSh.IsFrmSelected())
+ {
+ SwFormatAnchor aAnc(eSet, rSh.GetPhyPageNum());
+ SfxItemSet aSet(rSh.makeItemSetFromFormatAnchor(GetPool(), aAnc));
rSh.SetFlyFrmAttr(aSet);
}
// if new anchor is 'as char' and it is a Math object and the usual
@@ -2284,7 +2280,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
if((nsSelectionType::SEL_FRM & nSelType) || (nsSelectionType::SEL_GRF & nSelType))
{
// Template autoupdate
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
{
diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx
index 4868fdf..3a4e956 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -176,7 +176,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
aCol.Init(nCols, nGutterWidth, aCol.GetWishWidth());
aSet.Put(aCol);
// Template AutoUpdate
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
{
rSh.AutoUpdateFrame(pFormat, aSet);
@@ -498,7 +498,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
rSh.SetObjTitle(static_cast<const SfxStringItem*>(pItem)->GetValue());
}
// Template AutoUpdate
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
{
rSh.AutoUpdateFrame(pFormat, *pOutSet);
@@ -644,7 +644,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
}
if ( bUpdateMgr )
{
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if ( bCopyToFormat && pFormat && pFormat->IsAutoUpdateFormat() )
{
rSh.AutoUpdateFrame(pFormat, aMgr.GetAttrSet());
@@ -1111,7 +1111,7 @@ void SwFrameShell::ExecFrameStyle(SfxRequest& rReq)
}
aFrameSet.Put( aBoxItem );
// Template AutoUpdate
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
{
rSh.AutoUpdateFrame(pFormat, aFrameSet);
diff --git a/sw/source/uibase/shells/grfsh.cxx b/sw/source/uibase/shells/grfsh.cxx
index 39e18fd..60e95f3 100644
--- a/sw/source/uibase/shells/grfsh.cxx
+++ b/sw/source/uibase/shells/grfsh.cxx
@@ -381,7 +381,7 @@ void SwGrfShell::Execute(SfxRequest &rReq)
}
// Templates AutoUpdate
- SwFrameFormat* pFormat = rSh.GetCurFrameFormat();
+ SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
{
pFormat->SetFormatAttr(*pSet);
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx
index 37f0553..ead7e47 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -1709,7 +1709,7 @@ OUString SwWrtShell::GetSelDescr() const
break;
case nsSelectionType::SEL_FRM:
{
- const SwFrameFormat * pFrameFormat = GetCurFrameFormat();
+ const SwFrameFormat * pFrameFormat = GetSelectedFrameFormat();
if (pFrameFormat)
aResult = pFrameFormat->GetDescription();
--
2.4.0

@ -1,27 +0,0 @@
From e13b0657a3a05139f751124145aa10758c59d1dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 1 Jul 2015 08:34:58 +0100
Subject: [PATCH] f22 openjdk for ppc64le has both these dirs, but jawt is only
on one
Change-Id: Ie770ecceb8c8f5a6fa882a9f5d5a26806b029589
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index aecbe8f..8964c96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7058,7 +7058,7 @@ then
my_java_arch=ppc64
;;
powerpc64le)
- AS_IF([test -d "$JAVA_HOME/jre/lib/ppc64le"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
+ AS_IF([test -e "$JAVA_HOME/jre/lib/ppc64le/libjawt.so"], [my_java_arch=ppc64le], [my_java_arch=ppc64])
JAVA_ARCH=$my_java_arch
;;
x86_64)
--
2.4.0

@ -1,663 +0,0 @@
From e9680d99c4403bd07ab4d50939a5d7791bceb98c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 13 Oct 2015 13:16:31 +0100
Subject: [PATCH] implement dialog control over enhanced shape control points
use case is a desire to enable viewing and setting rounded rectangle radiuses
to an exact known value
Change-Id: I7e6a4db0699076950adf5869a61825159766c46a
(cherry picked from commit b859d84e471fdb70b61607d2d919a7907d074bd0)
---
cui/source/inc/transfrm.hxx | 6 +
cui/source/tabpages/transfrm.cxx | 137 ++++++++++++++-
cui/uiconfig/ui/slantcornertabpage.ui | 310 ++++++++++++++++++++++++++++++----
include/svx/EnhancedCustomShape2d.hxx | 1 +
4 files changed, 416 insertions(+), 38 deletions(-)
diff --git a/cui/source/inc/transfrm.hxx b/cui/source/inc/transfrm.hxx
index 2945d28..2fe2524 100644
--- a/cui/source/inc/transfrm.hxx
+++ b/cui/source/inc/transfrm.hxx
@@ -239,6 +239,12 @@ private:
VclPtr<VclFrame> m_pFlAngle;
VclPtr<MetricField> m_pMtrAngle;
+ VclPtr<VclFrame> m_aControlGroups[2];
+ VclPtr<VclContainer> m_aControlGroupX[2];
+ VclPtr<MetricField> m_aControlX[2];
+ VclPtr<VclContainer> m_aControlGroupY[2];
+ VclPtr<MetricField> m_aControlY[2];
+
const SfxItemSet& rOutAttrs;
const SdrView* pView;
diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx
index 950a4b2..43375c2 100644
--- a/cui/source/tabpages/transfrm.cxx
+++ b/cui/source/tabpages/transfrm.cxx
@@ -18,6 +18,8 @@
*/
#include <sfx2/app.hxx>
+#include <svx/EnhancedCustomShape2d.hxx>
+#include <svx/svdundo.hxx>
#include <svx/svdview.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpagv.hxx>
@@ -430,6 +432,15 @@ SvxSlantTabPage::SvxSlantTabPage(vcl::Window* pParent, const SfxItemSet& rInAttr
get(m_pFlAngle, "FL_SLANT");
get(m_pMtrAngle, "MTR_FLD_ANGLE");
+ for (int i = 0; i < 2; ++i)
+ {
+ get(m_aControlGroups[i], "controlgroups" + OString::number(i+1));
+ get(m_aControlGroupX[i], "controlgroupx" + OString::number(i+1));
+ get(m_aControlX[i], "controlx" + OString::number(i+1));
+ get(m_aControlGroupY[i], "controlgroupy" + OString::number(i+1));
+ get(m_aControlY[i], "controly" + OString::number(i+1));
+ }
+
// this page needs ExchangeSupport
SetExchangeSupport();
@@ -450,6 +461,14 @@ void SvxSlantTabPage::dispose()
m_pMtrRadius.clear();
m_pFlAngle.clear();
m_pMtrAngle.clear();
+ for (int i = 0; i < 2; ++i)
+ {
+ m_aControlGroups[i].clear();
+ m_aControlGroupX[i].clear();
+ m_aControlX[i].clear();
+ m_aControlGroupY[i].clear();
+ m_aControlY[i].clear();
+ }
SvxTabPage::dispose();
}
@@ -506,10 +525,56 @@ bool SvxSlantTabPage::FillItemSet(SfxItemSet* rAttrs)
rAttrs->Put( SfxBoolItem( SID_ATTR_TRANSFORM_SHEAR_VERTICAL, false ) );
}
- return bModified;
-}
+ bool bControlPointsChanged = false;
+ for (int i = 0; i < 2; ++i)
+ {
+ bControlPointsChanged |= (m_aControlX[i]->IsValueChangedFromSaved() ||
+ m_aControlY[i]->IsValueChangedFromSaved());
+ }
+
+ if (!bControlPointsChanged)
+ return bModified;
+
+ SdrObject* pObj = pView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj();
+ SdrModel* pModel = pObj->GetModel();
+ SdrUndoAction* pUndo = pModel->IsUndoEnabled() ?
+ pModel->GetSdrUndoFactory().CreateUndoAttrObject(*pObj) :
+ nullptr;
+ if (pUndo)
+ pModel->BegUndo(pUndo->GetComment());
+
+ EnhancedCustomShape2d aShape(pObj);
+ Rectangle aLogicRect = aShape.GetLogicRect();
+
+ for (int i = 0; i < 2; ++i)
+ {
+ if (m_aControlX[i]->IsValueChangedFromSaved() || m_aControlY[i]->IsValueChangedFromSaved())
+ {
+ Point aNewPosition(GetCoreValue(*m_aControlX[i], ePoolUnit),
+ GetCoreValue(*m_aControlY[i], ePoolUnit));
+ aNewPosition.Move(aLogicRect.Left(), aLogicRect.Top());
+
+ css::awt::Point aPosition;
+ aPosition.X = aNewPosition.X();
+ aPosition.Y = aNewPosition.Y();
+
+ aShape.SetHandleControllerPosition(i, aPosition);
+ }
+ }
+
+ pObj->SetChanged();
+ pObj->BroadcastObjectChange();
+ bModified = true;
+
+ if (pUndo)
+ {
+ pModel->AddUndo(pUndo);
+ pModel->EndUndo();
+ }
+ return bModified;
+}
void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
{
@@ -561,17 +626,76 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
}
m_pMtrAngle->SaveValue();
-}
-
+ const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+ SdrObjKind eKind = (SdrObjKind) pObj->GetObjIdentifier();
+ if (eKind == OBJ_CUSTOMSHAPE)
+ {
+ EnhancedCustomShape2d aShape(pObj);
+ Point aInitialPosition;
+ for (int i = 0; i < 2; ++i)
+ {
+ if (!aShape.GetHandlePosition(i, aInitialPosition))
+ break;
+ m_aControlGroups[i]->Enable();
+ css::awt::Point aPosition;
+
+ aPosition.X = SAL_MAX_INT32;
+ aPosition.Y = SAL_MAX_INT32;
+ aShape.SetHandleControllerPosition(i, aPosition);
+ Point aMaxPosition;
+ aShape.GetHandlePosition(i, aMaxPosition);
+
+ aPosition.X = SAL_MIN_INT32;
+ aPosition.Y = SAL_MIN_INT32;
+ aShape.SetHandleControllerPosition(i, aPosition);
+ Point aMinPosition;
+ aShape.GetHandlePosition(i, aMinPosition);
+
+ Rectangle aLogicRect = aShape.GetLogicRect();
+ aMaxPosition.Move(-aLogicRect.Left(), -aLogicRect.Top());
+ aMinPosition.Move(-aLogicRect.Left(), -aLogicRect.Top());
+
+ aPosition.X = aInitialPosition.X();
+ aPosition.Y = aInitialPosition.Y();
+ aInitialPosition.Move(-aLogicRect.Left(), -aLogicRect.Top());
+ aShape.SetHandleControllerPosition(i, aPosition);
+
+ SetMetricValue(*m_aControlX[i], aInitialPosition.X(), ePoolUnit);
+ SetMetricValue(*m_aControlY[i], aInitialPosition.Y(), ePoolUnit);
+
+ if (aMaxPosition.X() == aMinPosition.X())
+ m_aControlGroupX[i]->Disable();
+ else
+ {
+ m_aControlX[i]->SetMin(aMinPosition.X(), FUNIT_MM);
+ m_aControlX[i]->SetMax(aMaxPosition.X(), FUNIT_MM);
+ }
+ if (aMaxPosition.Y() == aMinPosition.Y())
+ m_aControlGroupY[i]->Disable();
+ else
+ {
+ m_aControlY[i]->SetMin(aMinPosition.Y(), FUNIT_MM);
+ m_aControlY[i]->SetMax(aMaxPosition.Y(), FUNIT_MM);
+ }
+ }
+ }
+ }
+ for (int i = 0; i < 2; ++i)
+ {
+ m_aControlX[i]->SaveValue();
+ m_aControlY[i]->SaveValue();
+ }
+}
VclPtr<SfxTabPage> SvxSlantTabPage::Create( vcl::Window* pWindow, const SfxItemSet* rOutAttrs )
{
return VclPtr<SvxSlantTabPage>::Create( pWindow, *rOutAttrs );
}
-
-
void SvxSlantTabPage::ActivatePage( const SfxItemSet& rSet )
{
SfxRectangleItem const * pRectItem = NULL;
@@ -620,7 +744,6 @@ SvxPositionSizeTabPage::SvxPositionSizeTabPage(vcl::Window* pParent, const SfxIt
, mfOldWidth(0.0)
, mfOldHeight(0.0)
{
-
get(m_pFlPosition, "FL_POSITION");
get(m_pMtrPosX, "MTR_FLD_POS_X");
get(m_pMtrPosY, "MTR_FLD_POS_Y");
diff --git a/cui/uiconfig/ui/slantcornertabpage.ui b/cui/uiconfig/ui/slantcornertabpage.ui
index 37b7b0e..b3ce646 100644
--- a/cui/uiconfig/ui/slantcornertabpage.ui
+++ b/cui/uiconfig/ui/slantcornertabpage.ui
@@ -13,12 +13,132 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
- <object class="GtkBox" id="SlantAndCornerRadius">
+ <object class="GtkGrid" id="SlantAndCornerRadius">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">6</property>
- <property name="orientation">vertical</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">24</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkFrame" id="controlgroups1">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkBox" id="controlgroupx1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_X:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">controlx1:0.00cm</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="controlx1:0.00cm">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="controlgroupy1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Y:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">controly1:0.00cm</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="controly1:0.00cm">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Control Point 1</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
<child>
<object class="GtkFrame" id="FL_RADIUS">
<property name="visible">True</property>
@@ -32,37 +152,36 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkBox" id="box2">
+ <object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="column_spacing">12</property>
<child>
<object class="GtkLabel" id="FT_RADIUS">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">_Radius:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">MTR_FLD_RADIUS:0.00cm</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_RADIUS:0.00cm">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
<property name="adjustment">adjustmentRADIUS</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
@@ -73,8 +192,8 @@
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Corner Radius</property>
+ <property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -82,9 +201,8 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -100,37 +218,36 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="column_spacing">12</property>
<child>
<object class="GtkLabel" id="FT_ANGLE">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">_Angle:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">MTR_FLD_ANGLE:0.00degrees</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="MTR_FLD_ANGLE:0.00degrees">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
<property name="adjustment">adjustmentSLANT</property>
<property name="digits">2</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
</packing>
</child>
</object>
@@ -141,8 +258,128 @@
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes">Slant</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="controlgroups2">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkGrid" id="grid4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkBox" id="controlgroupx2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_X:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">controlx2:0.00cm</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="controlx2:0.00cm">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="controlgroupy2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Y:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">controly2:0.00cm</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="controly2:0.00cm">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="text" translatable="yes">0.00</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Control Point 2</property>
+ <property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -150,16 +387,19 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
</packing>
</child>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
<widgets>
+ <widget name="label5"/>
+ <widget name="label6"/>
<widget name="FT_RADIUS"/>
<widget name="FT_ANGLE"/>
+ <widget name="label4"/>
+ <widget name="label7"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
@@ -168,4 +408,12 @@
<widget name="MTR_FLD_ANGLE:0.00degrees"/>
</widgets>
</object>
+ <object class="GtkSizeGroup" id="sizegroup5">
+ <widgets>
+ <widget name="controlx1:0.00cm"/>
+ <widget name="controly1:0.00cm"/>
+ <widget name="controlx2:0.00cm"/>
+ <widget name="controly2:0.00cm"/>
+ </widgets>
+ </object>
</interface>
diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx
index b9ed6f2..b1cc1b7 100644
--- a/include/svx/EnhancedCustomShape2d.hxx
+++ b/include/svx/EnhancedCustomShape2d.hxx
@@ -191,6 +191,7 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet
SdrObject* CreateObject( bool bLineGeometryNeededOnly );
void ApplyGluePoints( SdrObject* pObj );
Rectangle GetTextRect() const;
+ Rectangle GetLogicRect() const { return aLogicRect; }
sal_uInt32 GetHdlCount() const;
bool GetHandlePosition( const sal_uInt32 nIndex, Point& rReturnPosition ) const;
--
2.4.3

@ -1,370 +0,0 @@
From bdd33fda337d37431e6bffb99fb90416884981c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 25 Jun 2015 10:33:06 +0100
Subject: [PATCH] implement equalize width and height for impress/draw
Equalize width/height adjusts width/height of selected objects to the
width/height of the last selected object.
Change-Id: I7c222a6591112cb674322d310ebd87f04a9198bd
---
include/svx/svdedtv.hxx | 5 +++
include/svx/svdstr.hrc | 4 +-
include/svx/svxids.hrc | 2 +
.../org/openoffice/Office/UI/GenericCommands.xcu | 10 +++++
sd/sdi/_drvwsh.sdi | 10 +++++
sd/source/ui/view/drviews2.cxx | 13 ++++++
sd/source/ui/view/drviewsj.cxx | 16 ++++++--
sd/uiconfig/sdraw/menubar/menubar.xml | 3 ++
svx/inc/globlmn_tmpl.hrc | 20 +++++++++
svx/sdi/svx.sdi | 47 ++++++++++++++++++++++
svx/source/svdraw/svdedtv2.cxx | 38 +++++++++++++++++
svx/source/svdraw/svdstr.src | 8 ++++
12 files changed, 171 insertions(+), 5 deletions(-)
diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx
index cdc2308..b109e0c 100644
--- a/include/svx/svdedtv.hxx
+++ b/include/svx/svdedtv.hxx
@@ -272,6 +272,11 @@ public:
// for distribution dialog function
void DistributeMarkedObjects();
+ // for setting either the width or height of all selected
+ // objects to the width/height of the last selected object
+ // of the selection
+ void EqualizeMarkedObjects(bool bWidth);
+
// Decompose marked polypolygon objects into polygons.
// Grouped objects are searched and decomposed, if all member objects are PathObjs.
// bMakeLines=TRUE: all polygones are decomposed into single lines resp. bezier segments
diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc
index 90ef697..36e8719 100644
--- a/include/svx/svdstr.hrc
+++ b/include/svx/svdstr.hrc
@@ -241,7 +241,9 @@
#define STR_EditMergeSubstractPoly (STR_EditBegin + 55)
#define STR_EditMergeIntersectPoly (STR_EditBegin + 56)
#define STR_DistributeMarkedObjects (STR_EditBegin + 57)
-#define STR_EditEnd (STR_DistributeMarkedObjects)
+#define STR_EqualizeWidthMarkedObjects (STR_EditBegin + 58)
+#define STR_EqualizeHeightMarkedObjects (STR_EditBegin + 59)
+#define STR_EditEnd (STR_EqualizeHeightMarkedObjects)
#define STR_ExchangeBegin (STR_EditEnd+1)
#define STR_ExchangePaste (STR_ExchangeBegin +0)
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 5b8efbc..67ee3da 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -113,6 +113,8 @@
#define SID_POLY_INTERSECT (SID_SFX_START + 681)
#define SID_POLY_FORMEN (SID_SFX_START + 682)
#define SID_DISTRIBUTE_DLG (SID_SFX_START + 683)
+#define SID_EQUALIZEWIDTH (SID_SFX_START + 684)
+#define SID_EQUALIZEHEIGHT (SID_SFX_START + 685)
// Basic IDE-Id's
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 1c679bd..d221d56 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -3472,6 +3472,16 @@
<value xml:lang="en-US">~Subtract</value>
</prop>
</node>
+ <node oor:name=".uno:EqualizeWidth" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Equalize ~Width</value>
+ </prop>
+ </node>
+ <node oor:name=".uno:EqualizeHeight" oor:op="replace">
+ <prop oor:name="Label" oor:type="xs:string">
+ <value xml:lang="en-US">Equalize ~Height</value>
+ </prop>
+ </node>
<node oor:name=".uno:SuperScript" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Superscript</value>
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 0b5469bf..6b2f17c 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -507,6 +507,16 @@ interface DrawView
ExecMethod = FuTemporary ;
StateMethod = GetMenuState ;
]
+ SID_EQUALIZEWIDTH // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_EQUALIZEHEIGHT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
SID_CONNECT // ole : no, status : ?
[
ExecMethod = FuTemporary ;
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index ffbb503..90c3d59 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -2272,6 +2272,19 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
}
break;
+ case SID_EQUALIZEWIDTH:
+ case SID_EQUALIZEHEIGHT:
+ {
+ // End text edit to avoid conflicts
+ if(mpDrawView->IsTextEdit())
+ mpDrawView->SdrEndTextEdit();
+
+ mpDrawView->EqualizeMarkedObjects(nSId == SID_EQUALIZEWIDTH);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
case SID_DISMANTLE: // BASIC
{
if ( mpDrawView->IsDismantlePossible(false) )
diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx
index 857601f..10a3f5a 100644
--- a/sd/source/ui/view/drviewsj.cxx
+++ b/sd/source/ui/view/drviewsj.cxx
@@ -284,13 +284,15 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
rSet.Put(SfxBoolItem(SID_OUTLINE_TEXT_AUTOFIT, bSet));
}
- rSet.DisableItem( SID_GROUP );
- rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_GROUP);
+ rSet.DisableItem(SID_COMBINE);
rSet.DisableItem(SID_DISTRIBUTE_DLG);
rSet.DisableItem(SID_POLY_MERGE);
rSet.DisableItem(SID_POLY_SUBSTRACT);
rSet.DisableItem(SID_POLY_INTERSECT);
- rSet.DisableItem( SID_CONNECT );
+ rSet.DisableItem(SID_EQUALIZEWIDTH);
+ rSet.DisableItem(SID_EQUALIZEHEIGHT);
+ rSet.DisableItem(SID_CONNECT);
}
// multi-selection
else if( nMarkCount > 1 )
@@ -377,6 +379,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
rSet.DisableItem(SID_POLY_MERGE);
rSet.DisableItem(SID_POLY_SUBSTRACT);
rSet.DisableItem(SID_POLY_INTERSECT);
+ rSet.DisableItem(SID_EQUALIZEWIDTH);
+ rSet.DisableItem(SID_EQUALIZEHEIGHT);
}
if (b3dObj ||
@@ -438,10 +442,12 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
}
if ( !mpDrawView->IsCombinePossible(false) )
{
- rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_COMBINE);
rSet.DisableItem(SID_POLY_MERGE);
rSet.DisableItem(SID_POLY_SUBSTRACT);
rSet.DisableItem(SID_POLY_INTERSECT);
+ rSet.DisableItem(SID_EQUALIZEWIDTH);
+ rSet.DisableItem(SID_EQUALIZEHEIGHT);
}
if ( !mpDrawView->IsCombinePossible(true) )
{
@@ -501,6 +507,8 @@ void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
rSet.DisableItem(SID_POLY_MERGE);
rSet.DisableItem(SID_POLY_SUBSTRACT);
rSet.DisableItem(SID_POLY_INTERSECT);
+ rSet.DisableItem(SID_EQUALIZEWIDTH);
+ rSet.DisableItem(SID_EQUALIZEHEIGHT);
rSet.DisableItem( SID_CONNECT );
rSet.DisableItem( SID_ANIMATION_EFFECTS );
rSet.DisableItem( SID_MODIFY_FIELD );
diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml
index f12287b..bc8cfee 100644
--- a/sd/uiconfig/sdraw/menubar/menubar.xml
+++ b/sd/uiconfig/sdraw/menubar/menubar.xml
@@ -346,6 +346,9 @@
<menu:menuitem menu:id=".uno:Merge"/>
<menu:menuitem menu:id=".uno:Substract"/>
<menu:menuitem menu:id=".uno:Intersect"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:EqualizeWidth"/>
+ <menu:menuitem menu:id=".uno:EqualizeHeight"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
diff --git a/svx/inc/globlmn_tmpl.hrc b/svx/inc/globlmn_tmpl.hrc
index 9d511c8..8d82489 100644
--- a/svx/inc/globlmn_tmpl.hrc
+++ b/svx/inc/globlmn_tmpl.hrc
@@ -306,6 +306,20 @@
Command = ".uno:Intersect" ; \
Text [ en-US ] = "I~ntersect" ; \
};
+#define ITEM_EQUALIZEWIDTH \
+ MenuItem\
+ {\
+ Identifier = SID_EQUALIZEWIDTH ; \
+ Command = ".uno:EqualizeWidth" ; \
+ Text [ en-US ] = "Equalize ~Width" ; \
+ };
+#define ITEM_EQUALIZEHEIGHT \
+ MenuItem\
+ {\
+ Identifier = SID_EQUALIZEHEIGHT ; \
+ Command = ".uno:EqualizeHeight" ; \
+ Text [ en-US ] = "Equalize ~Height" ; \
+ };
#define MNSUB_FORMEN \
MenuItem \
@@ -320,6 +334,12 @@
ITEM_POLY_MERGE \
ITEM_POLY_SUBSTRACT \
ITEM_POLY_INTERSECT \
+ MenuItem \
+ { \
+ Separator = TRUE; \
+ }; \
+ ITEM_EQUALIZEWIDTH \
+ ITEM_EQUALIZEHEIGHT \
};\
};\
};
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 941f3e8..b301c58 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -11100,6 +11100,53 @@ SfxVoidItem Substract SID_POLY_SUBSTRACT
GroupId = GID_MODIFY;
]
+SfxVoidItem EqualizeWidth SID_EQUALIZEWIDTH
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+SfxVoidItem EqualizeHeight SID_EQUALIZEHEIGHT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
SfxBoolItem SuperScript SID_SET_SUPER_SCRIPT
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
index 0a60082..ad7dd3f 100644
--- a/svx/source/svdraw/svdedtv2.cxx
+++ b/svx/source/svdraw/svdedtv2.cxx
@@ -1173,6 +1173,44 @@ void SdrEditView::MergeMarkedObjects(SdrMergeMode eMode)
}
}
+void SdrEditView::EqualizeMarkedObjects(bool bWidth)
+{
+ const SdrMarkList& rMarkList = GetMarkedObjectList();
+ size_t nMarked = rMarkList.GetMarkCount();
+
+ if (nMarked < 2)
+ return;
+
+ SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj();
+ Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize());
+
+ const bool bUndo = IsUndoEnabled();
+
+ if (bUndo)
+ BegUndo();
+
+ for (size_t a = 0; a < nMarked-1; ++a)
+ {
+ SdrMark* pM = rMarkList.GetMark(a);
+ SdrObject* pObj = pM->GetMarkedSdrObj();
+ Rectangle aLogicRect(pObj->GetLogicRect());
+ Size aLogicRectSize(aLogicRect.GetSize());
+ if (bWidth)
+ aLogicRectSize.Width() = aLastRectSize.Width();
+ else
+ aLogicRectSize.Height() = aLastRectSize.Height();
+ aLogicRect.SetSize(aLogicRectSize);
+ pObj->SetLogicRect(aLogicRect);
+ }
+
+ SetUndoComment(
+ ImpGetResStr(bWidth ? STR_EqualizeWidthMarkedObjects : STR_EqualizeHeightMarkedObjects),
+ rMarkList.GetMarkDescription());
+
+ if (bUndo)
+ EndUndo();
+}
+
void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly)
{
// #105899# Start of Combine-Undo put to front, else ConvertMarkedToPolyObj would
diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src
index 364749a..6dc4420 100644
--- a/svx/source/svdraw/svdstr.src
+++ b/svx/source/svdraw/svdstr.src
@@ -823,6 +823,14 @@ String STR_DistributeMarkedObjects
{
Text [ en-US ] = "Distribute selected objects";
};
+String STR_EqualizeWidthMarkedObjects
+{
+ Text [ en-US ] = "Equalize Width %1";
+};
+String STR_EqualizeHeightMarkedObjects
+{
+ Text [ en-US ] = "Equalize Height %1";
+};
String STR_EditCombine_OnePoly
{
Text [ en-US ] = "Combine %1" ;
--
2.4.0

@ -1,359 +0,0 @@
From 402f64fc8464366015259d44e238a77cb7d9d776 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 30 Sep 2015 13:30:36 +0100
Subject: [PATCH] implement save slide background for impress
to go along with the existing "set background",
same sort of thing as the competitor's effort
(cherry picked from commit ed25a000ab67324075e68d9a7f3ca657b4e6a573)
Change-Id: I2a1106771ead2cd926f3d631850447499340697c
---
sd/inc/app.hrc | 3 +-
sd/inc/sdcommands.h | 1 +
sd/sdi/_drvwsh.sdi | 5 +++
sd/sdi/sdraw.sdi | 24 +++++++++++
sd/source/ui/app/menuids_tmpl.src | 11 ++++-
sd/source/ui/func/fupage.cxx | 85 +++++++++++++++++++++++---------------
sd/source/ui/inc/DrawViewShell.hxx | 4 ++
sd/source/ui/view/drviews2.cxx | 1 +
sd/source/ui/view/drviews7.cxx | 25 ++++++++++-
9 files changed, 122 insertions(+), 37 deletions(-)
diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
index 4f3d82e..956c7d4 100644
--- a/sd/inc/app.hrc
+++ b/sd/inc/app.hrc
@@ -421,7 +421,8 @@
#define SID_SLIDE_SORTER_MULTI_PANE_GUI (SID_SD_START+421)
#define SID_SELECT_BACKGROUND (SID_SD_START+422)
-
+#define SID_SAVE_BACKGROUND (SID_SD_START+423)
+ // FREE
// Slots for the tool pane popup
#define SID_TP_APPLY_TO_ALL_SLIDES (SID_SD_START+425)
#define SID_TP_APPLY_TO_SELECTED_SLIDES (SID_SD_START+426)
diff --git a/sd/inc/sdcommands.h b/sd/inc/sdcommands.h
index 2f4bf56..1d3502f 100644
--- a/sd/inc/sdcommands.h
+++ b/sd/inc/sdcommands.h
@@ -90,6 +90,7 @@
#define CMD_SID_DELETE_MASTER_PAGE ".uno:DeleteMasterPage"
#define CMD_SID_RENAME_MASTER_PAGE ".uno:RenameMasterPage"
#define CMD_SID_SELECT_BACKGROUND ".uno:SelectBackground"
+#define CMD_SID_SAVE_BACKGROUND ".uno:SaveBackground"
#define CMD_SID_DISPLAY_MASTER_BACKGROUND ".uno:DisplayMasterBackground"
#define CMD_SID_DISPLAY_MASTER_OBJECTS ".uno:DisplayMasterObjects"
#define CMD_SID_TABLE_DISTRIBUTE_COLUMNS ".uno:DistributeColumns"
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 263a8ed..28ee22c 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -2662,6 +2662,11 @@ interface DrawView
ExecMethod = FuTemporary ;
StateMethod = GetMenuState ;
]
+ SID_SAVE_BACKGROUND
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
SID_DISPLAY_MASTER_BACKGROUND
[
ExecMethod = FuTemporary ;
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
index 7297c1f..d2d5d28 100644
--- a/sd/sdi/sdraw.sdi
+++ b/sd/sdi/sdraw.sdi
@@ -6439,6 +6439,30 @@ SfxVoidItem SelectBackground SID_SELECT_BACKGROUND
GroupId = GID_OPTIONS;
]
+SfxVoidItem SaveBackground SID_SAVE_BACKGROUND
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
SfxBoolItem DisplayMasterBackground SID_DISPLAY_MASTER_BACKGROUND
[
/* flags: */
diff --git a/sd/source/ui/app/menuids_tmpl.src b/sd/source/ui/app/menuids_tmpl.src
index bf30830..6917de2 100644
--- a/sd/source/ui/app/menuids_tmpl.src
+++ b/sd/source/ui/app/menuids_tmpl.src
@@ -138,6 +138,13 @@
HelpId = CMD_SID_SELECT_BACKGROUND ; \
Text [ en-US ] = "Set Background Image..." ; \
};
+#define MN_SAVE_BACKGROUND \
+ MenuItem\
+ {\
+ Identifier = SID_SAVE_BACKGROUND ; \
+ HelpId = CMD_SID_SAVE_BACKGROUND ; \
+ Text [ en-US ] = "Save Background Image..." ; \
+ };
#define MN_DISPLAY_MASTER_BACKGROUND \
MenuItem\
{\
@@ -169,6 +176,7 @@
MN_SELECT_BACKGROUND\
MN_PAGE_DESIGN\
MN_RENAME_PAGE\
+ MN_SAVE_BACKGROUND\
};\
};\
Text [ en-US ] = "Pag~e" ; \
@@ -200,7 +208,8 @@
MN_DISPLAY_MASTER_OBJECTS\
};\
};\
- };
+ }; \
+ MN_SAVE_BACKGROUND
// Layer
#define MN_RENAME_LAYER \
diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx
index 83146e4..d3a053f 100644
--- a/sd/source/ui/func/fupage.cxx
+++ b/sd/source/ui/func/fupage.cxx
@@ -36,6 +36,7 @@
#include <svx/svdundo.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/frmdiritem.hxx>
+#include <svx/graphichelper.hxx>
#include <svx/xbtmpit.hxx>
#include <svx/xsetit.hxx>
#include <editeng/ulspitem.hxx>
@@ -164,6 +165,41 @@ void FuPage::Deactivate()
{
}
+void MergePageBackgroundFilling(SdPage *pPage, SdStyleSheet *pStyleSheet, bool bMasterPage, SfxItemSet& rMergedAttr)
+{
+ if (bMasterPage)
+ {
+ if (pStyleSheet)
+ mergeItemSetsImpl(rMergedAttr, pStyleSheet->GetItemSet());
+ }
+ else
+ {
+ // Only this page, get attributes for background fill
+ const SfxItemSet& rBackgroundAttributes = pPage->getSdrPageProperties().GetItemSet();
+
+ if(drawing::FillStyle_NONE != static_cast<const XFillStyleItem&>(rBackgroundAttributes.Get(XATTR_FILLSTYLE)).GetValue())
+ {
+ // page attributes are used, take them
+ rMergedAttr.Put(rBackgroundAttributes);
+ }
+ else
+ {
+ if(pStyleSheet
+ && drawing::FillStyle_NONE != static_cast<const XFillStyleItem&>(pStyleSheet->GetItemSet().Get(XATTR_FILLSTYLE)).GetValue())
+ {
+ // if the page has no fill style, use the settings from the
+ // background stylesheet (if used)
+ mergeItemSetsImpl(rMergedAttr, pStyleSheet->GetItemSet());
+ }
+ else
+ {
+ // no fill style from page, start with no fill style
+ rMergedAttr.Put(XFillStyleItem(drawing::FillStyle_NONE));
+ }
+ }
+ }
+}
+
const SfxItemSet* FuPage::ExecuteDialog( vcl::Window* pParent )
{
if (!mpDrawViewShell)
@@ -247,44 +283,27 @@ const SfxItemSet* FuPage::ExecuteDialog( vcl::Window* pParent )
// merge page background filling to the dialogs input set
if( mbDisplayBackgroundTabPage )
{
- if( mbMasterPage )
- {
- if(pStyleSheet)
- mergeItemSetsImpl( aMergedAttr, pStyleSheet->GetItemSet() );
- }
- else
- {
- // Only this page, get attributes for background fill
- const SfxItemSet& rBackgroundAttributes = mpPage->getSdrPageProperties().GetItemSet();
-
- if(drawing::FillStyle_NONE != static_cast<const XFillStyleItem&>(rBackgroundAttributes.Get(XATTR_FILLSTYLE)).GetValue())
- {
- // page attributes are used, take them
- aMergedAttr.Put(rBackgroundAttributes);
- }
- else
- {
- if(pStyleSheet
- && drawing::FillStyle_NONE != static_cast<const XFillStyleItem&>(pStyleSheet->GetItemSet().Get(XATTR_FILLSTYLE)).GetValue())
- {
- // if the page has no fill style, use the settings from the
- // background stylesheet (if used)
- mergeItemSetsImpl(aMergedAttr, pStyleSheet->GetItemSet());
- }
- else
- {
- // no fill style from page, start with no fill style
- aMergedAttr.Put(XFillStyleItem(drawing::FillStyle_NONE));
- }
- }
- }
+ MergePageBackgroundFilling(mpPage, pStyleSheet, mbMasterPage, aMergedAttr);
}
boost::scoped_ptr< SfxItemSet > pTempSet;
- if( GetSlotID() == SID_SELECT_BACKGROUND )
+ const sal_uInt16 nId = GetSlotID();
+ if (nId == SID_SAVE_BACKGROUND)
+ {
+ const XFillStyleItem& rStyleItem =
+ static_cast<const XFillStyleItem&>(aMergedAttr.Get(XATTR_FILLSTYLE));
+ if (drawing::FillStyle_BITMAP == (drawing::FillStyle)rStyleItem.GetValue())
+ {
+ const XFillBitmapItem& rBitmap =
+ static_cast<const XFillBitmapItem&>(aMergedAttr.Get(XATTR_FILLBITMAP));
+ const GraphicObject& rGraphicObj = rBitmap.GetGraphicObject();
+ GraphicHelper::ExportGraphic(rGraphicObj.GetGraphic(), "");
+ }
+ }
+ else if (nId == SID_SELECT_BACKGROUND)
{
- SvxOpenGraphicDialog aDlg(SdResId(STR_SET_BACKGROUND_PICTURE));
+ SvxOpenGraphicDialog aDlg(SdResId(STR_SET_BACKGROUND_PICTURE));
if( aDlg.Execute() == GRFILTER_OK )
{
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
index 405e7af..5ec628c 100644
--- a/sd/source/ui/inc/DrawViewShell.hxx
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -33,6 +33,7 @@
class Outliner;
class SdPage;
+class SdStyleSheet;
class SdrExternalToolEdit;
class DrawDocShell;
class TabBar;
@@ -509,6 +510,9 @@ private:
std::vector<std::unique_ptr<SdrExternalToolEdit>> m_ExternalEdits;
};
+ /// Merge the background properties together and deposit the result in rMergeAttr
+ void MergePageBackgroundFilling(SdPage *pPage, SdStyleSheet *pStyleSheet, bool bMasterPage, SfxItemSet& rMergedAttr);
+
} // end of namespace sd
#endif
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index e9c5f00..5c26c55 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -1190,6 +1190,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
break;
case SID_SELECT_BACKGROUND:
+ case SID_SAVE_BACKGROUND:
case SID_PAGESETUP: // BASIC ??
{
SetCurrentFunction( FuPage::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index 8b6d968..fba8bc1 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -83,6 +83,7 @@
#include "fuediglu.hxx"
#include "fubullet.hxx"
#include "fuformatpaintbrush.hxx"
+#include "stlsheet.hxx"
#include <config_features.h>
@@ -714,6 +715,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
{
rSet.DisableItem(SID_PRESENTATION_LAYOUT);
rSet.DisableItem(SID_SELECT_BACKGROUND);
+ rSet.DisableItem(SID_SAVE_BACKGROUND);
}
if (mePageKind == PK_NOTES)
@@ -730,6 +732,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
rSet.DisableItem(SID_MODIFYPAGE);
rSet.DisableItem(SID_SELECT_BACKGROUND);
+ rSet.DisableItem(SID_SAVE_BACKGROUND);
rSet.DisableItem(SID_INSERTLAYER);
rSet.DisableItem(SID_LAYERMODE);
rSet.DisableItem(SID_INSERTFILE);
@@ -750,6 +753,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
rSet.DisableItem(SID_INSERTFILE);
rSet.DisableItem(SID_PAGEMODE);
rSet.DisableItem(SID_SELECT_BACKGROUND);
+ rSet.DisableItem(SID_SAVE_BACKGROUND);
}
else
{
@@ -1646,8 +1650,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
|| rSet.GetItemState(SID_DISPLAY_MASTER_OBJECTS) == SfxItemState::DEFAULT)
{
SdPage* pPage = GetActualPage();
- if (pPage != NULL
- && GetDoc() != NULL)
+ if (pPage != NULL && GetDoc() != NULL)
{
SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin();
@@ -1668,6 +1671,24 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
}
#endif
+ if (rSet.GetItemState(SID_SAVE_BACKGROUND) == SfxItemState::DEFAULT)
+ {
+ bool bDisableSaveBackground = true;
+ SdPage* pPage = GetActualPage();
+ if (pPage != NULL && GetDoc() != NULL)
+ {
+ SfxItemSet aMergedAttr(GetDoc()->GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST, 0);
+ SdStyleSheet* pStyleSheet = pPage->getPresentationStyle(HID_PSEUDOSHEET_BACKGROUND);
+ MergePageBackgroundFilling(pPage, pStyleSheet, meEditMode == EM_MASTERPAGE, aMergedAttr);
+ if (drawing::FillStyle_BITMAP == static_cast<const XFillStyleItem&>(aMergedAttr.Get(XATTR_FILLSTYLE)).GetValue())
+ {
+ bDisableSaveBackground = false;
+ }
+ }
+ if (bDisableSaveBackground)
+ rSet.DisableItem(SID_SAVE_BACKGROUND);
+ }
+
GetModeSwitchingMenuState (rSet);
}
--
2.4.3

@ -1,26 +0,0 @@
From 4c8197bc270ec65c147af3388e35403aa77fd02f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 28 Aug 2015 13:08:44 +0100
Subject: [PATCH] implement undo for equalize-marked-objects
Change-Id: I245e08674b52c2a5648e9d7762101b8057fd30e9
---
svx/source/svdraw/svdedtv2.cxx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
index 75c884c..719355d 100644
--- a/svx/source/svdraw/svdedtv2.cxx
+++ b/svx/source/svdraw/svdedtv2.cxx
@@ -1200,6 +1200,8 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth)
else
aLogicRectSize.Height() = aLastRectSize.Height();
aLogicRect.SetSize(aLogicRectSize);
+ if (bUndo)
+ AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pObj));
pObj->SetLogicRect(aLogicRect);
}
--
2.4.0

@ -1,79 +0,0 @@
From 35a3fb2ca34b30a1bdaf64f0091fcd42af6bfd2c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 1 Sep 2015 16:32:15 +0100
Subject: [PATCH] implement undo of delete impress cell contents
Change-Id: I7aa99f3a6668e66b8d02e20b7ea1cf0862e5d760
(cherry picked from commit d38e4b2ee73ad38881465f9f97eb8d8397ee98ff)
---
include/svx/svdstr.hrc | 1 +
svx/source/svdraw/svdstr.src | 5 +++++
svx/source/table/tablecontroller.cxx | 15 +++++++++++++--
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/include/svx/svdstr.hrc b/include/svx/svdstr.hrc
index 90ef697..f45b55f 100644
--- a/include/svx/svdstr.hrc
+++ b/include/svx/svdstr.hrc
@@ -711,5 +711,6 @@
#define STR_TABLE_STYLE (SIP_Begin + 274)
#define STR_TABLE_STYLE_SETTINGS (SIP_Begin + 275)
#define SIP_SA_CROP_MARKERS (SIP_Begin + 276)
+#define STR_TABLE_DELETE_CELL_CONTENTS (SIP_Begin + 277)
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/svdstr.src b/svx/source/svdraw/svdstr.src
index 364749a..c7977c1 100644
--- a/svx/source/svdraw/svdstr.src
+++ b/svx/source/svdraw/svdstr.src
@@ -2770,6 +2770,11 @@ String STR_TABLE_DISTRIBUTE_COLUMNS
Text [ en-US ] = "Distribute columns" ;
};
+String STR_TABLE_DELETE_CELL_CONTENTS
+{
+ Text [ en-US ] = "Delete cell contents" ;
+};
+
String STR_TABLE_STYLE
{
Text [ en-US ] = "Table style" ;
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index 64b40da..6a8bd3f 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -1331,6 +1331,10 @@ bool SvxTableController::DeleteMarked()
{
if( mxTable.is() )
{
+ const bool bUndo = mpModel && mpModel->IsUndoEnabled();
+ if (bUndo)
+ mpModel->BegUndo(ImpGetResStr(STR_TABLE_DELETE_CELL_CONTENTS));
+
CellPos aStart, aEnd;
getSelectedCells( aStart, aEnd );
for( sal_Int32 nRow = aStart.mnRow; nRow <= aEnd.mnRow; nRow++ )
@@ -1338,11 +1342,18 @@ bool SvxTableController::DeleteMarked()
for( sal_Int32 nCol = aStart.mnCol; nCol <= aEnd.mnCol; nCol++ )
{
CellRef xCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nRow ).get() ) );
- if( xCell.is() )
- xCell->SetOutlinerParaObject( 0 );
+ if (xCell.is() && xCell->hasText())
+ {
+ if (bUndo)
+ xCell->AddUndo();
+ xCell->SetOutlinerParaObject(0);
+ }
}
}
+ if (bUndo)
+ mpModel->EndUndo();
+
UpdateTableShape();
return true;
}
--
2.4.0

@ -1,4 +1,4 @@
From 820efe20886e41fdea8353f54e8a54bba7fccd84 Mon Sep 17 00:00:00 2001 From 3b80333b8d98e74bef22e5484b9db2b79310303f Mon Sep 17 00:00:00 2001
From: rpmbuild <rpmbuild@fedoraproject.org> From: rpmbuild <rpmbuild@fedoraproject.org>
Date: Thu, 20 Feb 2014 19:44:49 +0100 Date: Thu, 20 Feb 2014 19:44:49 +0100
Subject: [PATCH] never run autogen.sh Subject: [PATCH] never run autogen.sh
@ -8,11 +8,11 @@ Subject: [PATCH] never run autogen.sh
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in diff --git a/Makefile.in b/Makefile.in
index 206f5ed..14620da 100644 index 41479bd..a5d7368 100644
--- a/Makefile.in --- a/Makefile.in
+++ b/Makefile.in +++ b/Makefile.in
@@ -14,7 +14,7 @@ MAKECMDGOALS?=all @@ -19,7 +19,7 @@ build_goal:=$(if $(filter build check,$(MAKECMDGOALS)),all)\
SHELL := @SHELL_BASH@
SRCDIR := @SRC_ROOT@ SRCDIR := @SRC_ROOT@
BUILDDIR := @BUILDDIR@ BUILDDIR := @BUILDDIR@
-GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T) -GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T)
@ -21,5 +21,5 @@ index 206f5ed..14620da 100644
# Run autogen.sh if needed and force make to restart itself. # Run autogen.sh if needed and force make to restart itself.
# ... but there are several cases where we do not want to run # ... but there are several cases where we do not want to run
-- --
1.8.5.3 2.1.0

@ -1,97 +0,0 @@
From b12cd99fd46e81e710479e2530e80c75404f3443 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Fri, 19 Jun 2015 13:52:49 +0200
Subject: [PATCH] rhbz#1233420 handle inexistent cond. format
Change-Id: I3fbbd0f3b42a3be1c2a9c54eb8f35dd18f550b16
---
sc/source/core/data/table4.cxx | 45 ++++++++++++++++++++++++++++--------------
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
index a1bc8ee5..bc8e40e 100644
--- a/sc/source/core/data/table4.cxx
+++ b/sc/source/core/data/table4.cxx
@@ -618,9 +618,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
itr != itrEnd; ++itr)
{
ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
- ScRangeList aRange = pCondFormat->GetRange();
- aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab));
- pCondFormat->SetRange(aRange);
+ if (pCondFormat)
+ {
+ ScRangeList aRange = pCondFormat->GetRange();
+ aRange.Join(ScRange(nCol, nY1, nTab, nCol, nY2, nTab));
+ pCondFormat->SetRange(aRange);
+ }
}
}
@@ -648,9 +651,12 @@ void ScTable::FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
itr != itrEnd; ++itr)
{
ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
- ScRangeList aRange = pCondFormat->GetRange();
- aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab));
- pCondFormat->SetRange(aRange);
+ if (pCondFormat)
+ {
+ ScRangeList aRange = pCondFormat->GetRange();
+ aRange.Join(ScRange(nCol, nRow, nTab, nCol, nRow, nTab));
+ pCondFormat->SetRange(aRange);
+ }
}
}
@@ -1568,9 +1574,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
itr != itrEnd; ++itr)
{
ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
- ScRangeList aRange = pCondFormat->GetRange();
- aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab));
- pCondFormat->SetRange(aRange);
+ if (pCondFormat)
+ {
+ ScRangeList aRange = pCondFormat->GetRange();
+ aRange.Join(ScRange(nCol, nIMin, nTab, nCol, nIMax, nTab));
+ pCondFormat->SetRange(aRange);
+ }
}
}
else
@@ -1585,9 +1594,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
itr != itrEnd; ++itr)
{
ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
- ScRangeList aRange = pCondFormat->GetRange();
- aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab));
- pCondFormat->SetRange(aRange);
+ if (pCondFormat)
+ {
+ ScRangeList aRange = pCondFormat->GetRange();
+ aRange.Join(ScRange(nCol, nAtRow, nTab, nCol, nAtRow, nTab));
+ pCondFormat->SetRange(aRange);
+ }
}
}
}
@@ -1603,9 +1615,12 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
itr != itrEnd; ++itr)
{
ScConditionalFormat* pCondFormat = mpCondFormatList->GetFormat(*itr);
- ScRangeList aRange = pCondFormat->GetRange();
- aRange.Join(ScRange(nAtCol, static_cast<SCROW>(nRow), nTab, nAtCol, static_cast<SCROW>(nRow), nTab));
- pCondFormat->SetRange(aRange);
+ if (pCondFormat)
+ {
+ ScRangeList aRange = pCondFormat->GetRange();
+ aRange.Join(ScRange(nAtCol, static_cast<SCROW>(nRow), nTab, nAtCol, static_cast<SCROW>(nRow), nTab));
+ pCondFormat->SetRange(aRange);
+ }
}
}
}
--
2.4.2

@ -1,124 +0,0 @@
From aff2d164a982917c57be5e8a18c6c1366b836c09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 28 Aug 2015 15:13:41 +0100
Subject: [PATCH] time stamp object selections and use newest as ref for
equalization
Change-Id: I1bf22ddbaf263b240288f70d03d6949611f86b69
---
include/svx/svdmark.hxx | 8 ++++++++
svx/source/svdraw/svdedtv2.cxx | 18 ++++++++++++++++--
svx/source/svdraw/svdmark.cxx | 12 +++++++++---
3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx
index cba0a75..aee9dd7 100644
--- a/include/svx/svdmark.hxx
+++ b/include/svx/svdmark.hxx
@@ -42,7 +42,10 @@ typedef std::set<sal_uInt16> SdrUShortCont;
// Everything a View needs to know about a selected object
class SVX_DLLPUBLIC SdrMark : public sdr::ObjectUser
{
+private:
+ void setTime();
protected:
+ sal_Int64 mnTimeStamp;
SdrObject* mpSelectedSdrObject; // the selected object
SdrPageView* mpPageView;
SdrUShortCont* mpPoints; // Selected Points
@@ -145,6 +148,11 @@ public:
return mpGluePoints;
}
+
+ sal_Int64 getTimeStamp() const
+ {
+ return mnTimeStamp;
+ }
};
class SVX_DLLPUBLIC SdrMarkList
diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
index 719355d..090efa7 100644
--- a/svx/source/svdraw/svdedtv2.cxx
+++ b/svx/source/svdraw/svdedtv2.cxx
@@ -1181,7 +1181,19 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth)
if (nMarked < 2)
return;
- SdrObject* pLastSelectedObj = rMarkList.GetMark(nMarked-1)->GetMarkedSdrObj();
+ size_t nLastSelected = 0;
+ sal_Int64 nLastSelectedTime = rMarkList.GetMark(0)->getTimeStamp();
+ for (size_t a = 1; a < nMarked; ++a)
+ {
+ sal_Int64 nCandidateTime = rMarkList.GetMark(a)->getTimeStamp();
+ if (nCandidateTime > nLastSelectedTime)
+ {
+ nLastSelectedTime = nCandidateTime;
+ nLastSelected = a;
+ }
+ }
+
+ SdrObject* pLastSelectedObj = rMarkList.GetMark(nLastSelected)->GetMarkedSdrObj();
Size aLastRectSize(pLastSelectedObj->GetLogicRect().GetSize());
const bool bUndo = IsUndoEnabled();
@@ -1189,8 +1201,10 @@ void SdrEditView::EqualizeMarkedObjects(bool bWidth)
if (bUndo)
BegUndo();
- for (size_t a = 0; a < nMarked-1; ++a)
+ for (size_t a = 0; a < nMarked; ++a)
{
+ if (a == nLastSelected)
+ continue;
SdrMark* pM = rMarkList.GetMark(a);
SdrObject* pObj = pM->GetMarkedSdrObj();
Rectangle aLogicRect(pObj->GetLogicRect());
diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx
index 7ddde61..8b7f3e09c 100644
--- a/svx/source/svdraw/svdmark.cxx
+++ b/svx/source/svdraw/svdmark.cxx
@@ -38,8 +38,12 @@
#include <svl/SfxBroadcaster.hxx>
#include <svx/svdoedge.hxx>
-
-
+void SdrMark::setTime()
+{
+ TimeValue aNow;
+ osl_getSystemTime(&aNow);
+ mnTimeStamp = sal_Int64(aNow.Seconds) * 1000000000L + aNow.Nanosec;
+}
SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView)
: mpSelectedSdrObject(pNewObj),
@@ -55,10 +59,12 @@ SdrMark::SdrMark(SdrObject* pNewObj, SdrPageView* pNewPageView)
{
mpSelectedSdrObject->AddObjectUser( *this );
}
+ setTime();
}
SdrMark::SdrMark(const SdrMark& rMark)
: ObjectUser(),
+ mnTimeStamp(0),
mpSelectedSdrObject(0L),
mpPageView(0L),
mpPoints(0L),
@@ -117,10 +123,10 @@ void SdrMark::SetMarkedSdrObj(SdrObject* pNewObj)
}
}
-
SdrMark& SdrMark::operator=(const SdrMark& rMark)
{
SetMarkedSdrObj(rMark.mpSelectedSdrObject);
+ mnTimeStamp = rMark.mnTimeStamp;
mpPageView = rMark.mpPageView;
mbCon1 = rMark.mbCon1;
mbCon2 = rMark.mbCon2;
--
2.4.0

@ -0,0 +1,51 @@
From ab6d77264008cb94ff387b4011961f82fcd5754c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 20 Oct 2015 10:10:16 +0100
Subject: [PATCH] use far simpler size group
Change-Id: I54d658951fb90892d006b265e3d35d91991e73d8
---
cui/uiconfig/ui/slantcornertabpage.ui | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/cui/uiconfig/ui/slantcornertabpage.ui b/cui/uiconfig/ui/slantcornertabpage.ui
index 2751144..b3ce646 100644
--- a/cui/uiconfig/ui/slantcornertabpage.ui
+++ b/cui/uiconfig/ui/slantcornertabpage.ui
@@ -394,8 +394,12 @@
</object>
<object class="GtkSizeGroup" id="sizegroup1">
<widgets>
+ <widget name="label5"/>
+ <widget name="label6"/>
<widget name="FT_RADIUS"/>
<widget name="FT_ANGLE"/>
+ <widget name="label4"/>
+ <widget name="label7"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
@@ -404,20 +408,6 @@
<widget name="MTR_FLD_ANGLE:0.00degrees"/>
</widgets>
</object>
- <object class="GtkSizeGroup" id="sizegroup3">
- <widgets>
- <widget name="label5"/>
- <widget name="label6"/>
- <widget name="FT_RADIUS"/>
- </widgets>
- </object>
- <object class="GtkSizeGroup" id="sizegroup4">
- <widgets>
- <widget name="FT_ANGLE"/>
- <widget name="label4"/>
- <widget name="label7"/>
- </widgets>
- </object>
<object class="GtkSizeGroup" id="sizegroup5">
<widgets>
<widget name="controlx1:0.00cm"/>
--
2.5.0

@ -1,61 +0,0 @@
From d9aed0bc2e741fa02a6ffdf90193aae7ce471e52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 8 Sep 2015 09:45:12 +0100
Subject: [PATCH] Related: tdf#93676 msword wraps slightly differently than us
Change-Id: I688d4d193709d9c9829065c87f0d656a94fd9f16
---
sw/source/filter/ww8/docxsdrexport.cxx | 16 +++++++++++++++-
sw/source/filter/ww8/wrtw8esh.cxx | 2 +-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index 02b134a..71a357e 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -516,6 +516,21 @@ void DocxSdrExport::startDMLAnchorInline(const SwFrameFormat* pFrameFormat, cons
}
m_pImpl->m_pSerializer->endElementNS(XML_wp, XML_positionH);
m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_positionV, XML_relativeFrom, relativeFromV, FSEND);
+
+ sal_Int64 nTwipstoEMU = TwipsToEMU(aPos.Y);
+
+ // tdf#93675, 0 below line/paragraph and/or top line/paragraph with
+ // wrap top+bottom or other wraps is affecting the line directly
+ // above the anchor line, which seems odd, but a tiny adjustment
+ // here to bring the top down convinces msoffice to wrap like us
+ if (nTwipstoEMU == 0 &&
+ (strcmp(relativeFromV, "line") == 0 || strcmp(relativeFromV, "paragraph") == 0) &&
+ (!alignV || strcmp(alignV, "top") == 0))
+ {
+ alignV = NULL;
+ nTwipstoEMU = 635;
+ }
+
if (alignV != NULL)
{
m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_align, FSEND);
@@ -525,7 +540,6 @@ void DocxSdrExport::startDMLAnchorInline(const SwFrameFormat* pFrameFormat, cons
else
{
m_pImpl->m_pSerializer->startElementNS(XML_wp, XML_posOffset, FSEND);
- sal_Int64 nTwipstoEMU = TwipsToEMU(aPos.Y);
if (nTwipstoEMU > MAX_INTEGER_VALUE)
{
nTwipstoEMU = MAX_INTEGER_VALUE;
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index fd6dfbc..2b7cebe 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -810,7 +810,7 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
// wrap top+bottom or other wraps is affecting the line directly
// above the anchor line, which seems odd, but a tiny adjustment
// here to bring the top down convinces msoffice to wrap like us
- if (nTop < 8 && !rFrameFormat.IsInline() &&
+ if (nTop == 0 && !rFrameFormat.IsInline() &&
rVOr.GetVertOrient() == text::VertOrientation::NONE &&
rVOr.GetRelationOrient() == text::RelOrientation::FRAME)
{
--
2.1.0

@ -1,9 +1,9 @@
# download path contains version without the last (fourth) digit # download path contains version without the last (fourth) digit
%define libo_version 5.0.3 %define libo_version 5.1.0
# Should contain .alphaX / .betaX, if this is pre-release (actually # Should contain .alphaX / .betaX, if this is pre-release (actually
# pre-RC) version. The pre-release string is part of tarball file names, # pre-RC) version. The pre-release string is part of tarball file names,
# so we need a way to define it easily at one place. # so we need a way to define it easily at one place.
%define libo_prerelease %{nil} %define libo_prerelease .alpha1
# rhbz#715152 state vendor # rhbz#715152 state vendor
%if 0%{?rhel} %if 0%{?rhel}
%define vendoroption --with-vendor="Red Hat, Inc." %define vendoroption --with-vendor="Red Hat, Inc."
@ -52,7 +52,7 @@
Summary: Free Software Productivity Suite Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: %{libo_version}.1 Version: %{libo_version}.0
Release: 1%{?libo_prerelease}%{?dist} Release: 1%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0 License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0
Group: Applications/Productivity Group: Applications/Productivity
@ -77,9 +77,9 @@ Source9: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zi
%if 0%{?rhel} %if 0%{?rhel}
Source10: %{external_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz Source10: %{external_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
Source11: %{external_url}/594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip Source11: %{external_url}/3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip
Source12: %{external_url}/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip Source12: %{external_url}/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip
Source13: %{external_url}/7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2 Source13: %{external_url}/liborcus-0.9.2.tar.gz
# system mdds 0.10.3 causes a crash in sc_ucalc unit test # system mdds 0.10.3 causes a crash in sc_ucalc unit test
Source14: %{external_url}/mdds_0.12.1.tar.bz2 Source14: %{external_url}/mdds_0.12.1.tar.bz2
%global bundling_options %{?bundling_options} --without-system-ucpp --without-system-glew --without-system-glm --without-system-orcus --without-system-mdds %global bundling_options %{?bundling_options} --without-system-ucpp --without-system-glew --without-system-glm --without-system-orcus --without-system-mdds
@ -91,8 +91,8 @@ Source18: %{external_url}/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.t
Source19: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2 Source19: %{external_url}/ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
Source20: %{external_url}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz Source20: %{external_url}/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
Source21: %{external_url}/lcms2-2.6.tar.gz Source21: %{external_url}/lcms2-2.6.tar.gz
Source22: %{external_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 Source22: %{external_url}/80d063d6db4c010e18c606af8aed6231-liblangtag-0.5.7.tar.bz2
Source23: %{external_url}/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 Source23: %{external_url}/boost_1_59_0.tar.bz2
Source24: %{external_url}/harfbuzz-0.9.40.tar.bz2 Source24: %{external_url}/harfbuzz-0.9.40.tar.bz2
Source25: %{external_url}/language-subtag-registry-2015-06-08.tar.bz2 Source25: %{external_url}/language-subtag-registry-2015-06-08.tar.bz2
%global bundling_options %{?bundling_options} --without-system-mythes --without-system-redland --without-system-libexttextcat --without-system-clucene --without-system-lcms2 --without-system-liblangtag --without-system-boost --without-system-harfbuzz %global bundling_options %{?bundling_options} --without-system-mythes --without-system-redland --without-system-libexttextcat --without-system-clucene --without-system-lcms2 --without-system-liblangtag --without-system-boost --without-system-harfbuzz
@ -101,11 +101,11 @@ Source26: %{external_url}/5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.t
Source27: %{external_url}/libcdr-0.1.1.tar.bz2 Source27: %{external_url}/libcdr-0.1.1.tar.bz2
Source28: %{external_url}/libwpg-0.3.0.tar.bz2 Source28: %{external_url}/libwpg-0.3.0.tar.bz2
Source29: %{external_url}/libwpd-0.10.0.tar.bz2 Source29: %{external_url}/libwpd-0.10.0.tar.bz2
Source30: %{external_url}/libwps-0.4.0.tar.bz2 Source30: %{external_url}/libwps-0.4.2.tar.bz2
Source31: %{external_url}/libvisio-0.1.1.tar.bz2 Source31: %{external_url}/libvisio-0.1.3.tar.bz2
Source32: %{external_url}/libmspub-0.1.2.tar.bz2 Source32: %{external_url}/libmspub-0.1.2.tar.bz2
Source33: %{external_url}/libodfgen-0.1.4.tar.bz2 Source33: %{external_url}/libodfgen-0.1.4.tar.bz2
Source34: %{external_url}/libmwaw-0.3.5.tar.bz2 Source34: %{external_url}/libmwaw-0.3.6.tar.bz2
Source35: %{external_url}/libetonyek-0.1.3.tar.bz2 Source35: %{external_url}/libetonyek-0.1.3.tar.bz2
Source36: %{external_url}/libfreehand-0.1.1.tar.bz2 Source36: %{external_url}/libfreehand-0.1.1.tar.bz2
Source37: %{external_url}/libabw-0.1.1.tar.bz2 Source37: %{external_url}/libabw-0.1.1.tar.bz2
@ -169,7 +169,6 @@ BuildRequires: pkgconfig(cppunit)
BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(evolution-data-server-1.2) BuildRequires: pkgconfig(evolution-data-server-1.2)
BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gconf-2.0)
BuildRequires: pkgconfig(glu) BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(hunspell) BuildRequires: pkgconfig(hunspell)
@ -210,7 +209,7 @@ BuildRequires: pkgconfig(libgltf-0.0)
BuildRequires: pkgconfig(libmspub-0.1) BuildRequires: pkgconfig(libmspub-0.1)
BuildRequires: pkgconfig(libmwaw-0.3) BuildRequires: pkgconfig(libmwaw-0.3)
BuildRequires: pkgconfig(libodfgen-0.1) BuildRequires: pkgconfig(libodfgen-0.1)
BuildRequires: pkgconfig(liborcus-0.8) BuildRequires: pkgconfig(liborcus-0.10)
BuildRequires: pkgconfig(libpagemaker-0.0) BuildRequires: pkgconfig(libpagemaker-0.0)
BuildRequires: pkgconfig(librevenge-0.0) BuildRequires: pkgconfig(librevenge-0.0)
BuildRequires: pkgconfig(libvisio-0.1) BuildRequires: pkgconfig(libvisio-0.1)
@ -258,13 +257,6 @@ BuildRequires: pkgconfig(bluez)
# java stuff # java stuff
BuildRequires: ant BuildRequires: ant
%if 0%{?rhel} && 0%{?rhel} < 7
BuildRequires: jakarta-commons-codec
BuildRequires: jakarta-commons-lang
%else
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-lang
%endif
BuildRequires: bsh BuildRequires: bsh
%if 0%{?rhel} && 0%{?rhel} < 7 %if 0%{?rhel} && 0%{?rhel} < 7
BuildRequires: hsqldb BuildRequires: hsqldb
@ -321,24 +313,7 @@ Patch14: 0001-never-run-autogen.sh.patch
Patch15: 0001-add-X-TryExec-entries-to-desktop-files.patch Patch15: 0001-add-X-TryExec-entries-to-desktop-files.patch
# not upstreamed # not upstreamed
Patch16: 0001-disable-PSD-import-test-which-deadlocks-on-ARM.patch Patch16: 0001-disable-PSD-import-test-which-deadlocks-on-ARM.patch
# upstreamed Patch17: 0001-use-far-simpler-size-group.patch
Patch17: 0001-Resolves-tdf-89905-don-t-copy-palettes-from-shared-t.patch
Patch18: 0001-Resolves-tdf-49407-enable-CaseMap-property-in-impres.patch
Patch19: 0001-rhbz-1233420-handle-inexistent-cond.-format.patch
Patch20: 0001-allow-slide-design-to-affect-multiple-standard-pages.patch
Patch21: 0001-implement-equalize-width-and-height-for-impress-draw.patch
Patch22: 0001-f22-openjdk-for-ppc64le-has-both-these-dirs-but-jawt.patch
Patch23: 0001-implement-undo-for-equalize-marked-objects.patch
Patch24: 0001-time-stamp-object-selections-and-use-newest-as-ref-f.patch
Patch25: 0001-Resolves-rhbz-1256843-no-obvious-means-to-close-temp.patch
Patch26: 0001-implement-undo-of-delete-impress-cell-contents.patch
Patch28: 0001-Fix-export-of-tdf-93675-to-.docx-as-much-as-is-possi.patch
Patch29: 0001-default-to-as-character-caption-contents.patch
Patch30: 0001-Related-tdf-93676-msword-wraps-slightly-differently-.patch
Patch31: 0002-Related-tdf-93676-msword-wraps-slightly-differently-.patch
Patch33: 0001-implement-save-slide-background-for-impress.patch
Patch34: 0001-Related-tdf-72880-presumably-using-startcenter-as-ge.patch
Patch35: 0001-implement-dialog-control-over-enhanced-shape-control.patch
%define instdir %{_libdir} %define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice %define baseinstdir %{instdir}/libreoffice
@ -1295,6 +1270,7 @@ touch autogen.lastrun
--disable-coinmp \ --disable-coinmp \
--disable-fetch-external \ --disable-fetch-external \
--disable-gnome-vfs \ --disable-gnome-vfs \
--disable-introspection \
--disable-openssl \ --disable-openssl \
--enable-evolution2 \ --enable-evolution2 \
--enable-ext-nlpsolver \ --enable-ext-nlpsolver \
@ -2027,7 +2003,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar
%{baseinstdir}/program/libconfigmgrlo.so %{baseinstdir}/program/libconfigmgrlo.so
%{baseinstdir}/program/libdesktopbe1lo.so %{baseinstdir}/program/libdesktopbe1lo.so
%{baseinstdir}/program/libfsstoragelo.so %{baseinstdir}/program/libfsstoragelo.so
%{baseinstdir}/program/libgconfbe1lo.so
%{baseinstdir}/program/libi18npoollo.so %{baseinstdir}/program/libi18npoollo.so
%{baseinstdir}/program/libbasegfxlo.so %{baseinstdir}/program/libbasegfxlo.so
# TODO: shouldn't it have lo suffix? # TODO: shouldn't it have lo suffix?
@ -2462,6 +2437,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%endif %endif
%changelog %changelog
* Mon Oct 19 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-1.alpha1
- update to 5.1.0 alpha1
* Mon Oct 12 2015 David Tardon <dtardon@redhat.com> - 1:5.0.3.1-1 * Mon Oct 12 2015 David Tardon <dtardon@redhat.com> - 1:5.0.3.1-1
- update to 5.0.3 rc1 - update to 5.0.3 rc1

@ -1,4 +1,4 @@
From 4ee0775161d44acc5089aeec2013d461fe592e23 Mon Sep 17 00:00:00 2001 From 43b718b8687d087cd6cc28991efb3b7f507e6e3a Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com> From: David Tardon <dtardon@redhat.com>
Date: Mon, 3 Feb 2014 20:24:50 +0100 Date: Mon, 3 Feb 2014 20:24:50 +0100
Subject: [PATCH] i#86080 unopkg bodge Subject: [PATCH] i#86080 unopkg bodge
@ -8,12 +8,12 @@ Subject: [PATCH] i#86080 unopkg bodge
1 file changed, 51 insertions(+), 2 deletions(-) 1 file changed, 51 insertions(+), 2 deletions(-)
diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh
index ca1e3bc..6393e99 100755 index 18d0a73..6bab04f 100755
--- a/desktop/scripts/unopkg.sh --- a/desktop/scripts/unopkg.sh
+++ b/desktop/scripts/unopkg.sh +++ b/desktop/scripts/unopkg.sh
@@ -78,6 +78,53 @@ if [ "$(id -u)" -eq "0" ]; then @@ -61,6 +61,53 @@ do
fi esac
fi done
+if [ $isnotuser -eq 1 ]; then +if [ $isnotuser -eq 1 ]; then
+ echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY + echo $@ | grep -q env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY
@ -65,7 +65,7 @@ index ca1e3bc..6393e99 100755
# extend the ld_library_path for java: javaldx checks the sofficerc for us # extend the ld_library_path for java: javaldx checks the sofficerc for us
if [ -x "${sd_prog}/javaldx" ] ; then if [ -x "${sd_prog}/javaldx" ] ; then
my_path=`"${sd_prog}/javaldx" $BOOTSTRAPVARS \ my_path=`"${sd_prog}/javaldx" $BOOTSTRAPVARS \
@@ -106,6 +153,8 @@ unset XENVIRONMENT @@ -89,6 +136,8 @@ unset XENVIRONMENT
# SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
# execute binary # execute binary
@ -77,5 +77,5 @@ index ca1e3bc..6393e99 100755
+ rm -rf $INSTDIR + rm -rf $INSTDIR
+fi +fi
-- --
2.4.2 2.1.0

@ -7,6 +7,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.
0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh 12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh
4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
e69eae50c31a0458cc242f7d3a11433f libreoffice-5.0.3.1.tar.xz 146d7f35639c93da3995009b9caabb9d libreoffice-5.1.0.0.alpha1.tar.xz
db459d40448679f611724874ab935e3a libreoffice-help-5.0.3.1.tar.xz 9e3be1d7779d89f0850da6c776d11489 libreoffice-help-5.1.0.0.alpha1.tar.xz
de025d0a76d3df86d1eacab48857afc1 libreoffice-translations-5.0.3.1.tar.xz a6ec18586a09c3d7f136cfc2418df6dd libreoffice-translations-5.1.0.0.alpha1.tar.xz

Loading…
Cancel
Save