summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2010-07-16 15:45:18 +0200
committerJoachim Lingner <jl@openoffice.org>2010-07-16 15:45:18 +0200
commitfbfdb48167f1a2280f72636f767c4cb2b932e3ba (patch)
tree5ecbaeb3f87dbdf2a41095d32d2cf061f40106aa /desktop
parenteafd07c25e04d525d726ac5427ea4f619b95daae (diff)
parent49b06312d167ec3c210062ef704f8403abadf058 (diff)
jl154 merging with OOO300_m1
Diffstat (limited to 'desktop')
-rw-r--r--desktop/inc/app.hxx3
-rw-r--r--desktop/prj/build.lst4
-rw-r--r--desktop/source/app/app.cxx18
-rw-r--r--desktop/source/app/langselect.cxx23
-rw-r--r--desktop/source/app/langselect.hxx19
-rwxr-xr-xdesktop/source/deployment/gui/dp_gui_dialog2.cxx12
-rw-r--r--desktop/source/splash/splash.cxx10
7 files changed, 65 insertions, 24 deletions
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index 486d280311d9..8867a940a6ad 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -75,7 +75,8 @@ class Desktop : public Application
BE_USERINSTALL_FAILED,
BE_LANGUAGE_MISSING,
BE_USERINSTALL_NOTENOUGHDISKSPACE,
- BE_USERINSTALL_NOWRITEACCESS
+ BE_USERINSTALL_NOWRITEACCESS,
+ BE_OFFICECONFIG_BROKEN
};
enum BootstrapStatus
{
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index 8029b6ecc9f7..dc5d7a99b2d6 100644
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -3,7 +3,7 @@ dt desktop usr1 - all dt_mkout NULL
dt desktop\inc nmake - all dt_inc NULL
dt desktop\prj get - all dt_prj NULL
dt desktop\res get - all dt_res NULL
-dt desktop\source\app nmake - all dt_app dt_migr dt_inc NULL
+dt desktop\source\app nmake - all dt_app dt_migr dt_inc dt_dp_misc NULL
dt desktop\source\migration nmake - all dt_migr dt_inc NULL
dt desktop\source\migration\services nmake - all dt_services dt_inc dt_dp_misc NULL
dt desktop\source\so_comp nmake - all dt_so_comp dt_inc NULL
@@ -35,7 +35,7 @@ dt desktop\source\deployment\registry\configuration nmake - all dt_dp_registry_c
dt desktop\source\deployment\registry\help nmake - all dt_dp_registry_help dt_inc NULL
dt desktop\source\deployment\registry\executable nmake - all dt_dp_registry_executable dt_inc NULL
dt desktop\scripts nmake - u dt_scripts dt_inc NULL
-dt desktop\util nmake - all dt_util dt_app dt_so_comp dt_spl dt_wrapper.w dt_officeloader.w dt_officeloader_unx.u dt_migr dt_rebase.w NULL
+dt desktop\util nmake - all dt_util dt_app dt_pagein.u dt_so_comp dt_spl dt_wrapper.w dt_officeloader.w dt_officeloader_unx.u dt_migr dt_rebase.w NULL
dt desktop\zipintro nmake - all dt_zipintro NULL
dt desktop\registry\data\org\openoffice\Office nmake - all sn_regconfig NULL
dt desktop\source\registration\com\sun\star\servicetag\resources get - all sn_svctagres NULL
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 65059555ba35..d701516ac361 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -721,7 +721,12 @@ void Desktop::Init()
{
// prepare language
if ( !LanguageSelection::prepareLanguage() )
- SetBootstrapError( BE_LANGUAGE_MISSING );
+ {
+ if ( LanguageSelection::getStatus() == LanguageSelection::LS_STATUS_CANNOT_DETERMINE_LANGUAGE )
+ SetBootstrapError( BE_LANGUAGE_MISSING );
+ else
+ SetBootstrapError( BE_OFFICECONFIG_BROKEN );
+ }
}
if ( GetBootstrapError() == BE_OK )
@@ -1102,6 +1107,17 @@ void Desktop::HandleBootstrapErrors( BootstrapError aBootstrapError )
FatalError( aMessage);
}
+ else if ( aBootstrapError == BE_OFFICECONFIG_BROKEN )
+ {
+ OUString aMessage;
+ OUStringBuffer aDiagnosticMessage( 100 );
+ OUString aErrorMsg;
+ aErrorMsg = GetMsgString( STR_CONFIG_ERR_ACCESS_GENERAL,
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "A general error occurred while accessing your central configuration." )) );
+ aDiagnosticMessage.append( aErrorMsg );
+ aMessage = MakeStartupErrorMessage( aDiagnosticMessage.makeStringAndClear() );
+ FatalError(aMessage);
+ }
else if ( aBootstrapError == BE_USERINSTALL_FAILED )
{
OUString aMessage;
diff --git a/desktop/source/app/langselect.cxx b/desktop/source/app/langselect.cxx
index 5e2145b03729..9df8d82a37ff 100644
--- a/desktop/source/app/langselect.cxx
+++ b/desktop/source/app/langselect.cxx
@@ -64,10 +64,12 @@ namespace desktop {
static char const SOFFICE_BOOTSTRAP[] = "Bootstrap";
static char const SOFFICE_STARTLANG[] = "STARTLANG";
+
sal_Bool LanguageSelection::bFoundLanguage = sal_False;
OUString LanguageSelection::aFoundLanguage;
-const OUString LanguageSelection::usFallbackLanguage = OUString::createFromAscii("en-US");
+LanguageSelection::LanguageSelectionStatus LanguageSelection::m_eStatus = LS_STATUS_OK;
+const OUString LanguageSelection::usFallbackLanguage = OUString::createFromAscii("en-US");
static sal_Bool existsURL( OUString const& sURL )
{
@@ -122,6 +124,7 @@ Locale LanguageSelection::IsoStringToLocale(const OUString& str)
bool LanguageSelection::prepareLanguage()
{
+ m_eStatus = LS_STATUS_OK;
OUString sConfigSrvc = OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider");
Reference< XMultiServiceFactory > theMSF = comphelper::getProcessServiceFactory();
Reference< XLocalizable > theConfigProvider;
@@ -131,7 +134,9 @@ bool LanguageSelection::prepareLanguage()
}
catch(const Exception&)
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
}
+
if(!theConfigProvider.is())
return false;
@@ -149,6 +154,7 @@ bool LanguageSelection::prepareLanguage()
}
catch(const Exception&)
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
}
// #i32939# use system locale to set document default locale
@@ -162,6 +168,7 @@ bool LanguageSelection::prepareLanguage()
}
catch (Exception&)
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
}
// get the selected UI language as string
@@ -350,8 +357,10 @@ OUString LanguageSelection::getLanguageString()
aFoundLanguage = usFallbackLanguage;
return aFoundLanguage;
}
+
// fallback didn't work use first installed language
aUserLanguage = getFirstInstalledLanguage();
+
bFoundLanguage = sal_True;
aFoundLanguage = aUserLanguage;
return aFoundLanguage;
@@ -455,7 +464,7 @@ sal_Bool LanguageSelection::isInstalledLanguage(OUString& usLocale, sal_Bool bEx
// requested locale starts with the installed locale
// (i.e. installed locale has index 0 in requested locale)
bInstalled = sal_True;
- usLocale = seqLanguages[i];
+ usLocale = seqLanguages[i];
break;
}
}
@@ -484,10 +493,12 @@ OUString LanguageSelection::getUserLanguage()
}
catch ( NoSuchElementException const & )
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
return OUString();
}
catch ( WrappedTargetException const & )
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
return OUString();
}
}
@@ -506,10 +517,12 @@ OUString LanguageSelection::getSystemLanguage()
}
catch ( NoSuchElementException const & )
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
return OUString();
}
catch ( WrappedTargetException const & )
{
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
return OUString();
}
}
@@ -533,9 +546,13 @@ void LanguageSelection::resetUserLanguage()
{
OString aMsg = OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US);
OSL_ENSURE(sal_False, aMsg.getStr());
+ m_eStatus = LS_STATUS_CONFIGURATIONACCESS_BROKEN;
}
-
}
+LanguageSelection::LanguageSelectionStatus LanguageSelection::getStatus()
+{
+ return m_eStatus;
+}
} // namespace desktop
diff --git a/desktop/source/app/langselect.hxx b/desktop/source/app/langselect.hxx
index 60308164690f..bdf3cd6364de 100644
--- a/desktop/source/app/langselect.hxx
+++ b/desktop/source/app/langselect.hxx
@@ -40,10 +40,24 @@ namespace desktop
class LanguageSelection
{
+public:
+ enum LanguageSelectionStatus
+ {
+ LS_STATUS_OK,
+ LS_STATUS_CANNOT_DETERMINE_LANGUAGE,
+ LS_STATUS_CONFIGURATIONACCESS_BROKEN
+ };
+
+ static com::sun::star::lang::Locale IsoStringToLocale(const rtl::OUString& str);
+ static rtl::OUString getLanguageString();
+ static bool prepareLanguage();
+ static LanguageSelectionStatus getStatus();
+
private:
static const rtl::OUString usFallbackLanguage;
static rtl::OUString aFoundLanguage;
static sal_Bool bFoundLanguage;
+ static LanguageSelectionStatus m_eStatus;
static com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >
getConfigAccess(const sal_Char* pPath, sal_Bool bUpdate=sal_False);
@@ -55,11 +69,6 @@ private:
static rtl::OUString getSystemLanguage();
static void resetUserLanguage();
static void setDefaultLanguage(const rtl::OUString&);
-
-public:
- static com::sun::star::lang::Locale IsoStringToLocale(const rtl::OUString& str);
- static rtl::OUString getLanguageString();
- static bool prepareLanguage();
};
} //namespace desktop
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
index 1a66ff38e4a4..87f70e449b9d 100755
--- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
@@ -1147,13 +1147,13 @@ void ExtMgrDialog::Resize()
{
ImplControlValue aValue;
bool bNativeOK;
- Region aControlRegion( Rectangle( (const Point&)Point(), m_aProgressBar.GetSizePixel() ) );
- Region aNativeControlRegion, aNativeContentRegion;
+ Rectangle aControlRegion( Point( 0, 0 ), m_aProgressBar.GetSizePixel() );
+ Rectangle aNativeControlRegion, aNativeContentRegion;
if( (bNativeOK = GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
CTRL_STATE_ENABLED, aValue, rtl::OUString(),
aNativeControlRegion, aNativeContentRegion ) ) != FALSE )
{
- nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight();
+ nProgressHeight = aNativeControlRegion.GetHeight();
}
}
@@ -1590,13 +1590,13 @@ void UpdateRequiredDialog::Resize()
{
ImplControlValue aValue;
bool bNativeOK;
- Region aControlRegion( Rectangle( (const Point&)Point(), m_aProgressBar.GetSizePixel() ) );
- Region aNativeControlRegion, aNativeContentRegion;
+ Rectangle aControlRegion( Point( 0, 0 ), m_aProgressBar.GetSizePixel() );
+ Rectangle aNativeControlRegion, aNativeContentRegion;
if( (bNativeOK = GetNativeControlRegion( CTRL_PROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
CTRL_STATE_ENABLED, aValue, rtl::OUString(),
aNativeControlRegion, aNativeContentRegion ) ) != FALSE )
{
- nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight();
+ nProgressHeight = aNativeControlRegion.GetHeight();
}
}
diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
index 381a98ce008f..c6a185b8e54d 100644
--- a/desktop/source/splash/splash.cxx
+++ b/desktop/source/splash/splash.cxx
@@ -640,20 +640,18 @@ void SplashScreen::Paint( const Rectangle&)
ImplControlValue aValue( _iProgress * _barwidth / _iMax);
Rectangle aDrawRect( Point(_tlx, _tly), Size( _barwidth, _barheight ) );
- Region aControlRegion( aDrawRect );
- Region aNativeControlRegion, aNativeContentRegion;
+ Rectangle aNativeControlRegion, aNativeContentRegion;
- if( GetNativeControlRegion( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
+ if( GetNativeControlRegion( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aDrawRect,
CTRL_STATE_ENABLED, aValue, rtl::OUString(),
aNativeControlRegion, aNativeContentRegion ) )
{
- long nProgressHeight = aNativeControlRegion.GetBoundRect().GetHeight();
+ long nProgressHeight = aNativeControlRegion.GetHeight();
aDrawRect.Top() -= (nProgressHeight - _barheight)/2;
aDrawRect.Bottom() += (nProgressHeight - _barheight)/2;
- aControlRegion = Region( aDrawRect );
}
- if( (bNativeOK = DrawNativeControl( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aControlRegion,
+ if( (bNativeOK = DrawNativeControl( CTRL_INTROPROGRESS, PART_ENTIRE_CONTROL, aDrawRect,
CTRL_STATE_ENABLED, aValue, _sProgressText )) != FALSE )
{
return;