parent
15d2c2d8ea
commit
94f0bb8cfd
@ -0,0 +1,599 @@
|
||||
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
|
||||
|
Loading…
Reference in new issue