[Libreoffice-commits] core.git: 3 commits - sc/inc sc/source sfx2/inc sfx2/Library_sfx.mk sfx2/source sfx2/uiconfig sfx2/UI_sfx.mk sw/inc sw/Library_swui.mk sw/source sw/UI_swriter.mk xmloff/source
Noel Power
noel.power at suse.com
Thu Feb 21 05:03:26 PST 2013
sc/inc/document.hxx | 4 +
sc/inc/unonames.hxx | 2
sc/source/core/data/documen2.cxx | 3 -
sc/source/filter/xml/xmlfonte.cxx | 17 ++++--
sc/source/filter/xml/xmlimprt.cxx | 6 ++
sc/source/filter/xml/xmlimprt.hxx | 1
sc/source/ui/docshell/docsh.cxx | 1
sc/source/ui/unoobj/confuno.cxx | 15 +++++
sfx2/Library_sfx.mk | 1
sfx2/UI_sfx.mk | 1
sfx2/inc/sfx2/dinfdlg.hxx | 1
sfx2/source/dialog/dialog.hrc | 1
sfx2/source/dialog/dialog.src | 5 +
sfx2/source/dialog/dinfdlg.cxx | 8 ++
sfx2/source/dialog/documentfontsdialog.cxx | 75 +++++++++++++++++++++++++++
sfx2/source/inc/documentfontsdialog.hxx | 44 +++++++++++++++
sfx2/uiconfig/ui/documentfontspage.ui | 29 ++++++++++
sw/Library_swui.mk | 1
sw/UI_swriter.mk | 1
sw/inc/globals.hrc | 2
sw/source/ui/app/app.src | 5 -
sw/source/ui/app/docsh2.cxx | 2
sw/source/ui/dialog/documentfontsdialog.cxx | 54 -------------------
sw/source/ui/dialog/swdlgfact.cxx | 4 -
sw/source/ui/inc/documentfontsdialog.hxx | 44 ---------------
sw/source/ui/uno/SwXDocumentSettings.cxx | 1
xmloff/source/style/XMLFontStylesContext.cxx | 1
27 files changed, 211 insertions(+), 118 deletions(-)
New commits:
commit db28ed792e08d3eef3e901eaedb255bdc66d1db1
Author: Noel Power <noel.power at suse.com>
Date: Thu Feb 21 10:39:10 2013 +0000
adapt writer to use centralised font dialog and fix some minor bugs
fixed incorrect return of EmbeddFonts property and also make sure that NotifyEmbeddedFontRead
is called on reload
Change-Id: I085f50ff88bbf73b5dcdb9630b6c5844430a47c2
diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk
index 4731533..771ddfa 100644
--- a/sw/Library_swui.mk
+++ b/sw/Library_swui.mk
@@ -78,7 +78,6 @@ $(eval $(call gb_Library_add_exception_objects,swui,\
sw/source/ui/dialog/abstract \
sw/source/ui/dialog/addrdlg \
sw/source/ui/dialog/ascfldlg \
- sw/source/ui/dialog/documentfontsdialog \
sw/source/ui/dialog/docstdlg \
sw/source/ui/dialog/macassgn \
sw/source/ui/dialog/swdialmgr \
diff --git a/sw/UI_swriter.mk b/sw/UI_swriter.mk
index 86e75e2..d410de6 100644
--- a/sw/UI_swriter.mk
+++ b/sw/UI_swriter.mk
@@ -21,7 +21,6 @@ $(eval $(call gb_UI_add_uifiles,modules/swriter,\
sw/uiconfig/swriter/ui/columnpage \
sw/uiconfig/swriter/ui/columnwidth \
sw/uiconfig/swriter/ui/converttexttable \
- sw/uiconfig/swriter/ui/documentfontspage \
sw/uiconfig/swriter/ui/endnotepage \
sw/uiconfig/swriter/ui/editcategories \
sw/uiconfig/swriter/ui/exchangedatabases \
diff --git a/sw/inc/globals.hrc b/sw/inc/globals.hrc
index 8a2b81d..0653aaf 100644
--- a/sw/inc/globals.hrc
+++ b/sw/inc/globals.hrc
@@ -30,7 +30,6 @@
#define STR_LOAD_GLOBAL_DOC (RC_GLOBALS_BEGIN + 2)
#define STR_DOC_STAT (RC_GLOBALS_BEGIN + 10)
-#define STR_DOC_FONTS (RC_GLOBALS_BEGIN + 107)
#define STR_PAGE (RC_GLOBALS_BEGIN + 14)
#define STR_PRINTOPTUI (RC_GLOBALS_BEGIN + 15)
@@ -139,7 +138,6 @@
#define TP_COLUMN (RC_GLOBALS_BEGIN + 13)
#define TP_DOC_STAT (RC_GLOBALS_BEGIN + 15)
-#define TP_DOC_FONTS (RC_GLOBALS_BEGIN + 108)
#define TP_HEADER_PAGE (RC_GLOBALS_BEGIN + 16)
#define TP_FOOTER_PAGE (RC_GLOBALS_BEGIN + 17)
diff --git a/sw/source/ui/app/app.src b/sw/source/ui/app/app.src
index 9e1eff6..38f114f 100644
--- a/sw/source/ui/app/app.src
+++ b/sw/source/ui/app/app.src
@@ -305,11 +305,6 @@ String STR_DOC_STAT
Text [ en-US ] = "Statistics" ;
};
-String STR_DOC_FONTS
-{
- Text [ en-US ] = "Fonts" ;
-};
-
// ----------------------------
// Statusbar-titles
// ----------------------------
diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx
index b13e53d..b306ded 100644
--- a/sw/source/ui/app/docsh2.cxx
+++ b/sw/source/ui/app/docsh2.cxx
@@ -141,7 +141,7 @@ SfxDocumentInfoDialog* SwDocShell::CreateDocumentInfoDialog(
{
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
- pDlg->AddTabPage(TP_DOC_FONTS, SW_RESSTR(STR_DOC_FONTS),pFact->GetTabPageCreatorFunc( TP_DOC_FONTS ),0);
+ pDlg->AddFontTabPage();
pDlg->AddTabPage(TP_DOC_STAT, SW_RESSTR(STR_DOC_STAT),pFact->GetTabPageCreatorFunc( TP_DOC_STAT ),0);
}
}
diff --git a/sw/source/ui/dialog/documentfontsdialog.cxx b/sw/source/ui/dialog/documentfontsdialog.cxx
deleted file mode 100644
index 0ac99d5..0000000
--- a/sw/source/ui/dialog/documentfontsdialog.cxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "documentfontsdialog.hxx"
-
-#include <doc.hxx>
-#include <docsh.hxx>
-
-SfxTabPage* SwDocumentFontsPage::Create( Window* parent, const SfxItemSet& set )
-{
- return new SwDocumentFontsPage( parent, set );
-}
-
-SwDocumentFontsPage::SwDocumentFontsPage( Window* parent, const SfxItemSet& set )
- : SfxTabPage( parent, "DocumentFontsPage", "modules/swriter/ui/documentfontspage.ui", set )
-{
- get( embedFontsCheckbox, "embedFonts" );
-}
-
-void SwDocumentFontsPage::Reset( const SfxItemSet& )
-{
- // I take it the SfxItemSet should be "officially" used, but the dialog
- // is modal (and SwDocStatPage does it too), so it should be safe, and
- // also simpler, to short-circuit directly to the setting.
- SwDocShell* docShell = static_cast< SwDocShell* >( SfxObjectShell::Current());
- SwDoc* doc = docShell->GetDoc();
- embedFontsCheckbox->Check( doc->get( IDocumentSettingAccess::EMBED_FONTS ));
-}
-
-sal_Bool SwDocumentFontsPage::FillItemSet( SfxItemSet& )
-{
- SwDocShell* docShell = static_cast< SwDocShell* >( SfxObjectShell::Current());
- SwDoc* doc = docShell->GetDoc();
- doc->set( IDocumentSettingAccess::EMBED_FONTS, embedFontsCheckbox->IsChecked());
- return false;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx
index 8dfeac0..da55531 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -47,7 +47,6 @@
#include "dbinsdlg.hxx" //add for SwInsertDBColAutoPilot
#include "docfnote.hxx" //add for SwFootNoteOptionDlg
#include "docstdlg.hxx" //add for SwDocStatPage
-#include "documentfontsdialog.hxx"
#include "DropDownFieldDialog.hxx" //add for DropDownFieldDialog
#include "envlop.hxx" //add for SwEnvDlg
#include "label.hxx" //add for SwLabDlg
@@ -1457,9 +1456,6 @@ CreateTabPage SwAbstractDialogFactory_Impl::GetTabPageCreatorFunc( sal_uInt16 nI
case TP_DOC_STAT :
pRet = SwDocStatPage::Create;
break;
- case TP_DOC_FONTS :
- pRet = SwDocumentFontsPage::Create;
- break;
case RID_SW_TP_MAILCONFIG:
pRet = SwMailConfigPage::Create;
break;
diff --git a/sw/source/ui/inc/documentfontsdialog.hxx b/sw/source/ui/inc/documentfontsdialog.hxx
deleted file mode 100644
index 931b811..0000000
--- a/sw/source/ui/inc/documentfontsdialog.hxx
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-#ifndef SW_DOCUMENTFONTSDIALOG_HXX
-#define SW_DOCUMENTFONTSDIALOG_HXX
-
-#include <sfx2/tabdlg.hxx>
-
-#include <vcl/fixed.hxx>
-#include <svtools/stdctrl.hxx>
-
-/**
- Tab page for document font settings in the document properties dialog.
-*/
-class SwDocumentFontsPage: public SfxTabPage
-{
-public:
- SwDocumentFontsPage( Window* parent, const SfxItemSet& set );
- static SfxTabPage* Create( Window* parent, const SfxItemSet& set );
-protected:
- virtual sal_Bool FillItemSet( SfxItemSet& set );
- virtual void Reset( const SfxItemSet& set );
-private:
- CheckBox* embedFontsCheckbox;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
index 828b603..b42e907 100644
--- a/sw/source/ui/uno/SwXDocumentSettings.cxx
+++ b/sw/source/ui/uno/SwXDocumentSettings.cxx
@@ -1194,6 +1194,7 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_FONTS );
rValue.setValue( &bTmp, ::getBooleanCppuType() );
}
+ break;
case HANDLE_EMBED_SYSTEM_FONTS:
{
sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::EMBED_SYSTEM_FONTS );
diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx
index e822fc6..86433b8 100644
--- a/xmloff/source/style/XMLFontStylesContext.cxx
+++ b/xmloff/source/style/XMLFontStylesContext.cxx
@@ -265,6 +265,7 @@ void XMLFontStyleContextFontFaceUri::handleEmbeddedFont( const OUString& url )
case osl::File::E_None:
break; // ok
case osl::File::E_EXIST:
+ GetImport().NotifyEmbeddedFontRead();
return; // Assume it's already been added correctly.
default:
SAL_WARN( "xmloff", "Cannot open file for temporary font" );
commit c4a8e6b62e80d79d98743af022b3d5e5d1f22f51
Author: Noel Power <noel.power at suse.com>
Date: Wed Feb 20 19:29:10 2013 +0000
clone documentfontsdialog from sw, add method to SfxDocumentInfoDialog add tab
Change-Id: I9cfb4f65e27a73921ac7944376677c5ddecdf9a9
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index adeefaf..08cfe00 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -2813,6 +2813,7 @@ SfxDocumentInfoDialog* ScDocShell::CreateDocumentInfoDialog(
OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
::CreateTabPage ScDocStatPageCreate = pFact->GetTabPageCreatorFunc( RID_SCPAGE_STAT );
OSL_ENSURE(ScDocStatPageCreate, "Tabpage create fail!");
+ pDlg->AddFontTabPage();
pDlg->AddTabPage( 42,
ScGlobal::GetRscString( STR_DOC_STAT ),
ScDocStatPageCreate,
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index 032d7c4..f8024b1 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -157,6 +157,7 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\
sfx2/source/dialog/dinfdlg \
sfx2/source/dialog/dinfedt \
sfx2/source/dialog/dockwin \
+ sfx2/source/dialog/documentfontsdialog \
sfx2/source/dialog/filedlghelper \
sfx2/source/dialog/filtergrouping \
sfx2/source/dialog/itemconnect \
diff --git a/sfx2/UI_sfx.mk b/sfx2/UI_sfx.mk
index 6c02310..4b6466d 100644
--- a/sfx2/UI_sfx.mk
+++ b/sfx2/UI_sfx.mk
@@ -21,6 +21,7 @@ $(eval $(call gb_UI_add_uifiles,sfx,\
sfx2/uiconfig/ui/printeroptionsdialog \
sfx2/uiconfig/ui/securityinfopage \
sfx2/uiconfig/ui/singletabdialog \
+ sfx2/uiconfig/ui/documentfontspage \
))
# vim: set noet sw=4 ts=4:
diff --git a/sfx2/inc/sfx2/dinfdlg.hxx b/sfx2/inc/sfx2/dinfdlg.hxx
index d365e5e..b90b548 100644
--- a/sfx2/inc/sfx2/dinfdlg.hxx
+++ b/sfx2/inc/sfx2/dinfdlg.hxx
@@ -310,6 +310,7 @@ protected:
public:
SfxDocumentInfoDialog( Window* pParent, const SfxItemSet& );
+ void AddFontTabPage();
};
// class CustomPropertiesRemoveButton ------------------------------------
diff --git a/sfx2/source/dialog/dialog.hrc b/sfx2/source/dialog/dialog.hrc
index 5cb1b35..243110f 100644
--- a/sfx2/source/dialog/dialog.hrc
+++ b/sfx2/source/dialog/dialog.hrc
@@ -68,6 +68,7 @@
#define SFX_PB_EDIT ( RC_DIALOG_BEGIN + 124 )
#define STR_STYLE_ELEMTLIST ( RC_DIALOG_BEGIN + 125 )
+#define STR_FONT_TABPAGE ( RC_DIALOG_BEGIN + 126 )
#endif // #ifndef _SFX_DIALOG_HRC
diff --git a/sfx2/source/dialog/dialog.src b/sfx2/source/dialog/dialog.src
index 27f50e0..6951af9 100644
--- a/sfx2/source/dialog/dialog.src
+++ b/sfx2/source/dialog/dialog.src
@@ -128,5 +128,10 @@ Image IMG_INFO
};
};
+String STR_FONT_TABPAGE
+{
+ Text [ en-US ] = "Font" ;
+};
+
// ******************************************************************* EOF
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 894072f..fee2348 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -61,6 +61,7 @@
#include <comphelper/storagehelper.hxx>
#include <comphelper/string.hxx>
+#include "documentfontsdialog.hxx"
#include <sfx2/sfx.hrc>
#include "dinfdlg.hrc"
#include "../appl/app.hrc"
@@ -75,6 +76,8 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
+const sal_uInt16 FONT_PAGE_ID = 99;
+
struct CustomProperty
{
::rtl::OUString m_sName;
@@ -1489,6 +1492,11 @@ void SfxDocumentInfoDialog::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
( (SfxDocumentPage&)rPage ).EnableUseUserData();
}
+void SfxDocumentInfoDialog::AddFontTabPage()
+{
+ AddTabPage( FONT_PAGE_ID, SfxResId( STR_FONT_TABPAGE ).toString(), SfxDocumentFontsPage::Create, 0);
+}
+
// class CustomPropertiesYesNoButton -------------------------------------
CustomPropertiesYesNoButton::CustomPropertiesYesNoButton( Window* pParent, const ResId& rResId ) :
diff --git a/sfx2/source/dialog/documentfontsdialog.cxx b/sfx2/source/dialog/documentfontsdialog.cxx
new file mode 100644
index 0000000..46094fb
--- /dev/null
+++ b/sfx2/source/dialog/documentfontsdialog.cxx
@@ -0,0 +1,75 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "documentfontsdialog.hxx"
+
+#include <objsh.hxx>
+
+using namespace ::com::sun::star;
+
+SfxTabPage* SfxDocumentFontsPage::Create( Window* parent, const SfxItemSet& set )
+{
+ return new SfxDocumentFontsPage( parent, set );
+}
+
+SfxDocumentFontsPage::SfxDocumentFontsPage( Window* parent, const SfxItemSet& set )
+ : SfxTabPage( parent, "DocumentFontsPage", "sfx/ui/documentfontspage.ui", set )
+{
+ get( embedFontsCheckbox, "embedFonts" );
+}
+
+void SfxDocumentFontsPage::Reset( const SfxItemSet& )
+{
+ bool bVal = false;
+ SfxObjectShell* pDocSh = SfxObjectShell::Current();
+ if ( pDocSh )
+ {
+ try
+ {
+ uno::Reference< lang::XMultiServiceFactory > xFac( pDocSh->GetModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xProps( xFac->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY_THROW );
+ xProps->getPropertyValue("EmbedFonts") >>= bVal;
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+ embedFontsCheckbox->Check( bVal );
+}
+
+sal_Bool SfxDocumentFontsPage::FillItemSet( SfxItemSet& )
+{
+ bool bVal = embedFontsCheckbox->IsChecked();
+ SfxObjectShell* pDocSh = SfxObjectShell::Current();
+ if ( pDocSh )
+ {
+ try
+ {
+ uno::Reference< lang::XMultiServiceFactory > xFac( pDocSh->GetModel(), uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xProps( xFac->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY_THROW );
+ xProps->setPropertyValue("EmbedFonts", uno::makeAny( bVal ) );
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+ return false;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/inc/documentfontsdialog.hxx b/sfx2/source/inc/documentfontsdialog.hxx
new file mode 100644
index 0000000..1f0c560
--- /dev/null
+++ b/sfx2/source/inc/documentfontsdialog.hxx
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef SW_DOCUMENTFONTSDIALOG_HXX
+#define SW_DOCUMENTFONTSDIALOG_HXX
+
+#include <sfx2/tabdlg.hxx>
+
+#include <vcl/fixed.hxx>
+#include <svtools/stdctrl.hxx>
+
+/**
+ Tab page for document font settings in the document properties dialog.
+*/
+class SfxDocumentFontsPage: public SfxTabPage
+{
+public:
+ SfxDocumentFontsPage( Window* parent, const SfxItemSet& set );
+ static SfxTabPage* Create( Window* parent, const SfxItemSet& set );
+protected:
+ virtual sal_Bool FillItemSet( SfxItemSet& set );
+ virtual void Reset( const SfxItemSet& set );
+private:
+ CheckBox* embedFontsCheckbox;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/uiconfig/ui/documentfontspage.ui b/sfx2/uiconfig/ui/documentfontspage.ui
new file mode 100644
index 0000000..0003f47
--- /dev/null
+++ b/sfx2/uiconfig/ui/documentfontspage.ui
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkGrid" id="DocumentFontsPage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">18</property>
+ <child>
+ <object class="GtkCheckButton" id="embedFonts">
+ <property name="label" translatable="yes">_Embed fonts in the document</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>
commit 1d0f45ee2efb5dc8d3c40f33ba1494807c117729
Author: Noel Power <noel.power at suse.com>
Date: Wed Feb 20 17:27:32 2013 +0000
basic support for writing embedded fonts for calc docs
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 0663cb9..fa4ccc1 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -302,7 +302,6 @@ private:
com::sun::star::uno::Reference< com::sun::star::script::vba::XVBAEventProcessor >
mxVbaEvents;
-
public:
boost::ptr_vector< ScInterpreterTableOpParams > aTableOpList; // list of ScInterpreterTableOpParams currently in use
ScInterpreterTableOpParams aLastTableOpParams; // remember last params
@@ -403,7 +402,10 @@ private:
::std::set<ScFormulaCell*> maSubTotalCells;
+ bool mbUseEmbedFonts;
public:
+ bool IsUsingEmbededFonts() { return mbUseEmbedFonts; }
+ void SetIsUsingEmbededFonts( bool bUse ) { mbUseEmbedFonts = bUse; }
SC_DLLPUBLIC sal_uLong GetCellCount() const; // all cells
SCSIZE GetCellCount(SCTAB nTab, SCCOL nCol) const;
sal_uLong GetCodeCount() const; // RPN-Code in formulas
diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index 9ab1856..1a34e6d 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -665,6 +665,8 @@
// Named ranges
#define SC_UNO_MODIFY_BROADCAST "ModifyAndBroadcast"
+#define SC_UNO_EMBED_FONTS "EmbedFonts"
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index a995d12..b034bbf 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -206,7 +206,8 @@ ScDocument::ScDocument( ScDocumentMode eMode,
mbChangeReadOnlyEnabled( false ),
mbStreamValidLocked( false ),
mbUserInteractionEnabled(true),
- mnNamedRangesLockCount(0)
+ mnNamedRangesLockCount(0),
+ mbUseEmbedFonts(false)
{
SetStorageGrammar( formula::FormulaGrammar::GRAM_STORAGE_DEFAULT);
diff --git a/sc/source/filter/xml/xmlfonte.cxx b/sc/source/filter/xml/xmlfonte.cxx
index ca93674..0caca55 100644
--- a/sc/source/filter/xml/xmlfonte.cxx
+++ b/sc/source/filter/xml/xmlfonte.cxx
@@ -35,7 +35,7 @@ class ScXMLFontAutoStylePool_Impl: public XMLFontAutoStylePool
void AddFontItems(sal_uInt16* pWhichIds, sal_uInt8 nIdCount, const SfxItemPool* pItemPool, const sal_Bool bExportDefaults);
public:
- ScXMLFontAutoStylePool_Impl( ScXMLExport& rExport );
+ ScXMLFontAutoStylePool_Impl( ScXMLExport& rExport, bool bBlockFontEmbedding );
};
@@ -69,8 +69,8 @@ void ScXMLFontAutoStylePool_Impl::AddFontItems(sal_uInt16* pWhichIds, sal_uInt8
}
ScXMLFontAutoStylePool_Impl::ScXMLFontAutoStylePool_Impl(
- ScXMLExport& rExportP ) :
- XMLFontAutoStylePool( rExportP )
+ ScXMLExport& rExportP, bool bBlockFontEmbedding ) :
+ XMLFontAutoStylePool( rExportP, bBlockFontEmbedding )
{
sal_uInt16 aWhichIds[3] = { ATTR_FONT, ATTR_CJK_FONT,
ATTR_CTL_FONT };
@@ -131,7 +131,16 @@ ScXMLFontAutoStylePool_Impl::ScXMLFontAutoStylePool_Impl(
XMLFontAutoStylePool* ScXMLExport::CreateFontAutoStylePool()
{
- return new ScXMLFontAutoStylePool_Impl( *this );
+ bool blockFontEmbedding = false;
+ // We write font info to both content.xml and styles.xml, but they are both
+ // written by different ScXMLExport instance, and would therefore write each
+ // font file twice without complicated checking for duplicates, so handle
+ // the embedding only in one of them.
+ if(( getExportFlags() & EXPORT_CONTENT ) == 0 )
+ blockFontEmbedding = true;
+ if( !GetDocument()->IsUsingEmbededFonts())
+ blockFontEmbedding = true;
+ return new ScXMLFontAutoStylePool_Impl( *this, !blockFontEmbedding );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index ff9bb374..0d76652 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -3404,4 +3404,10 @@ const ScXMLEditAttributeMap& ScXMLImport::GetEditAttributeMap() const
return *mpEditAttrMap;
}
+void ScXMLImport::NotifyEmbeddedFontRead()
+{
+ if ( pDoc )
+ pDoc->SetIsUsingEmbededFonts( true );
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/xmlimprt.hxx b/sc/source/filter/xml/xmlimprt.hxx
index 2d8201d..3b97f18 100644
--- a/sc/source/filter/xml/xmlimprt.hxx
+++ b/sc/source/filter/xml/xmlimprt.hxx
@@ -1195,6 +1195,7 @@ public:
ScEditEngineDefaulter* GetEditEngine();
const ScXMLEditAttributeMap& GetEditAttributeMap() const;
+ virtual void NotifyEmbeddedFontRead() SAL_OVERRIDE;
};
#endif
diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx
index acb831d..8ac0dfb 100644
--- a/sc/source/ui/unoobj/confuno.cxx
+++ b/sc/source/ui/unoobj/confuno.cxx
@@ -74,6 +74,7 @@ static const SfxItemPropertyMapEntry* lcl_GetConfigPropertyMap()
{MAP_CHAR_LEN(SC_UNO_LOADREADONLY), 0, &getBooleanCppuType(), 0, 0},
{MAP_CHAR_LEN(SC_UNO_SHAREDOC), 0, &getBooleanCppuType(), 0, 0},
{MAP_CHAR_LEN(SC_UNO_MODIFYPASSWORDINFO), 0, &getCppuType((uno::Sequence< beans::PropertyValue >*)0), 0, 0},
+ {MAP_CHAR_LEN(SC_UNO_EMBED_FONTS), 0, &getBooleanCppuType(), 0, 0},
{0,0,0,0,0,0}
};
return aConfigPropertyMap_Impl;
@@ -276,6 +277,15 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue(
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The hash is not allowed to be changed now!" ) ),
uno::Reference< uno::XInterface >() );
}
+ else if ( aPropertyName.compareToAscii( SC_UNO_EMBED_FONTS ) == 0 )
+ {
+ sal_Bool bVal = sal_False;
+ if ( aValue >>=bVal )
+ {
+ pDoc->SetIsUsingEmbededFonts(bVal);
+ }
+ }
+
else
{
ScGridOptions aGridOpt(aViewOpt.GetGridOptions());
@@ -410,6 +420,11 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const rtl::OUString
}
else if ( aPropertyName.compareToAscii( SC_UNO_MODIFYPASSWORDINFO ) == 0 )
aRet <<= pDocShell->GetModifyPasswordInfo();
+ else if ( aPropertyName.compareToAscii( SC_UNO_EMBED_FONTS ) == 0 )
+ {
+ aRet <<= pDoc->IsUsingEmbededFonts();
+ }
+
else
{
const ScGridOptions& aGridOpt = aViewOpt.GetGridOptions();
More information about the Libreoffice-commits
mailing list