Kaydet (Commit) 838b77f5 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: rhbz#1065807 use xdg ~/Templates for default Template location

(if it exists)

Change-Id: I98fc9fd54d1f56c8bed24ce4d2ebf53756ded2cc
üst 1e0541fa
......@@ -644,6 +644,12 @@ PathSettings::PathInfo PathSettings::impl_readNewFormat(const OUString& sPath)
// read the writeable path
xPath->getByName(CFGPROP_WRITEPATH) >>= aPathVal.sWritePath;
// avoid duplicates, by removing the writeable path from
// the user defined path list if it happens to be there too
OUStringList::iterator aI = aPathVal.lUserPaths.find(aPathVal.sWritePath);
if (aI != aPathVal.lUserPaths.end())
aPathVal.lUserPaths.erase(aI);
// read state props
xPath->getByName(CFGPROP_ISSINGLEPATH) >>= aPathVal.bIsSinglePath;
......
......@@ -160,8 +160,21 @@
<node oor:name="InternalPaths">
<node oor:name="$(insturl)/@LIBO_SHARE_FOLDER@/template/$(vlang)" oor:op="fuse"/>
</node>
<!--
On unix check of we have a ~/Templates and use that as the write path.
On other platforms, or if ~/Templates doesn't exist, use the traditional
$(userurl)/template path.
If we end up using the new ~/Templates as the write path, we then want
to have $(userurl)/template in our userpath for any templates left behind
in that dir.
-->
<prop oor:name="WritePath">
<value>$(userurl)/template</value>
<value install:module="unixdesktop" oor:external="com.sun.star.configuration.backend.DesktopBackend TemplatePathVariable"/>
</prop>
<prop oor:name="UserPaths">
<value install:module="unixdesktop">$(userurl)/template</value>
</prop>
</node>
<node oor:name="UIConfig" oor:op="fuse" oor:mandatory="true">
......
......@@ -153,11 +153,22 @@ css::uno::Any Default::getPropertyValue(OUString const & PropertyName)
css::beans::UnknownPropertyException, css::lang::WrappedTargetException,
css::uno::RuntimeException)
{
if ( PropertyName == "EnableATToolSupport" || PropertyName == "ExternalMailer" || PropertyName == "SourceViewFontHeight"
|| PropertyName == "SourceViewFontName" || PropertyName == "WorkPathVariable" || PropertyName == "ooInetFTPProxyName"
|| PropertyName == "ooInetFTPProxyPort" || PropertyName == "ooInetHTTPProxyName" || PropertyName == "ooInetHTTPProxyPort"
|| PropertyName == "ooInetHTTPSProxyName" || PropertyName == "ooInetHTTPSProxyPort" || PropertyName == "ooInetNoProxy"
|| PropertyName == "ooInetProxyType" || PropertyName == "givenname" || PropertyName == "sn" )
if ( PropertyName == "EnableATToolSupport" ||
PropertyName == "ExternalMailer" ||
PropertyName == "SourceViewFontHeight" ||
PropertyName == "SourceViewFontName" ||
PropertyName == "TemplatePathVariable" ||
PropertyName == "WorkPathVariable" ||
PropertyName == "ooInetFTPProxyName" ||
PropertyName == "ooInetFTPProxyPort" ||
PropertyName == "ooInetHTTPProxyName" ||
PropertyName == "ooInetHTTPProxyPort" ||
PropertyName == "ooInetHTTPSProxyName" ||
PropertyName == "ooInetHTTPSProxyPort" ||
PropertyName == "ooInetNoProxy" ||
PropertyName == "ooInetProxyType" ||
PropertyName == "givenname" ||
PropertyName == "sn" )
{
return css::uno::makeAny(css::beans::Optional< css::uno::Any >());
}
......
......@@ -23,6 +23,7 @@
#include <string.h>
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
#include "osl/file.hxx"
#include "osl/security.hxx"
#include "osl/thread.h"
......@@ -189,19 +190,10 @@ static OUString xdg_user_dir_lookup (const char *type)
if( osl::FileBase::E_None == aDocumentsDir.open() )
return aDocumentsDirURL;
}
/* Special case desktop for historical compatibility */
if (strcmp (type, "DESKTOP") == 0)
{
return aHomeDirURL + "/Desktop";
}
else
{
return aHomeDirURL + "/Documents";
}
/* Use fallbacks historical compatibility if nothing else exists */
return aHomeDirURL + "/" + OUString::createFromAscii(type);
}
uno::Any makeAnyOfGconfValue( GConfValue *pGconfValue )
{
switch( pGconfValue->type )
......@@ -317,11 +309,18 @@ uno::Any translateToOOo( const ConfigurationValue &rValue, GConfValue *pGconfVal
case SETTING_WORK_DIRECTORY:
{
OUString aDocumentsDirURL = xdg_user_dir_lookup("DOCUMENTS");
OUString aDocumentsDirURL = xdg_user_dir_lookup("Documents");
return uno::makeAny( aDocumentsDirURL );
}
case SETTING_TEMPLATE_DIRECTORY:
{
OUString aTemplatesDirURL = xdg_user_dir_lookup("Templates");
return uno::makeAny( aTemplatesDirURL );
}
case SETTING_USER_GIVENNAME:
{
OUString aCompleteName( OStringToOUString(
......@@ -392,7 +391,7 @@ sal_Bool SAL_CALL isDependencySatisfied( GConfClient* pClient, const Configurati
case SETTING_WORK_DIRECTORY:
{
OUString aDocumentsDirURL = xdg_user_dir_lookup("DOCUMENTS");
OUString aDocumentsDirURL = xdg_user_dir_lookup("Documents");
osl::Directory aDocumentsDir( aDocumentsDirURL );
if( osl::FileBase::E_None == aDocumentsDir.open() )
......@@ -400,6 +399,16 @@ sal_Bool SAL_CALL isDependencySatisfied( GConfClient* pClient, const Configurati
}
break;
case SETTING_TEMPLATE_DIRECTORY:
{
OUString aTemplatesDirURL = xdg_user_dir_lookup("Templates");
osl::Directory aTemplatesDir( aTemplatesDirURL );
if( osl::FileBase::E_None == aTemplatesDir.open() )
return sal_True;
}
break;
case SETTING_USER_GIVENNAME:
{
OUString aCompleteName( OStringToOUString(
......@@ -562,6 +571,14 @@ ConfigurationValue const ConfigurationValues[] =
SETTING_WORK_DIRECTORY, // so that the existence of the dir can be checked
},
{
SETTING_TEMPLATE_DIRECTORY,
"/desktop/gnome/url-handlers/mailto/command", // dummy
RTL_CONSTASCII_STRINGPARAM("TemplatePathVariable"),
sal_True,
SETTING_TEMPLATE_DIRECTORY, // so that the existence of the dir can be checked
},
{
SETTING_USER_GIVENNAME,
"/desktop/gnome/url-handlers/mailto/command", // dummy
......
......@@ -47,6 +47,7 @@ enum ConfigurationSetting
SETTING_ENABLE_ACCESSIBILITY,
SETTING_MAILER_PROGRAM,
SETTING_WORK_DIRECTORY,
SETTING_TEMPLATE_DIRECTORY,
SETTING_SOURCEVIEWFONT_NAME,
SETTING_SOURCEVIEWFONT_HEIGHT,
SETTING_USER_GIVENNAME,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment