CWS-TOOLING: integrate CWS dv11
2009-05-13 16:50:24 +0200 dv r271863 : #i101829# Use UPGRADINGPRODUCTCODE to detect major upgrade 2009-04-17 15:55:48 +0200 dv r270953 : CWS-TOOLING: rebase CWS dv11 to trunk@270723 (milestone: DEV300:m46) 2009-04-17 09:14:21 +0200 dv r270916 : #i100915# Use better product name 2009-04-16 14:41:49 +0200 dv r270884 : #i101132# Use a waiting thread to defere update check 2009-04-07 15:46:52 +0200 dv r270599 : #i100915# Use one include file for all version.rc files 2009-04-07 13:49:56 +0200 dv r270596 : #i100915# Use one include file for all version.rc files 2009-04-03 09:04:08 +0200 dv r270447 : #100776# Added Microsoft XML file types to 'Default Applications', cleaned up Application name display in 'Default Applications' 2009-04-01 10:13:28 +0200 dv r270306 : #i100713# Remove instmsia.exe from installation set 2009-03-30 16:35:35 +0200 dv r270240 : CWS-TOOLING: rebase CWS dv11 to trunk@270033 (milestone: DEV300:m45) 2009-03-27 10:24:40 +0100 dv r270138 : #i100410# Show survey after deinstalling OpenOffice.org (Windows only) 2009-03-18 15:05:31 +0100 dv r269679 : #i98780# Use 'Desktop' folder only, if it exists 2009-03-17 11:19:47 +0100 dv r269581 : #i100082# Ignore updates with failed dependencies for automatic update check 2009-03-13 14:37:27 +0100 dv r269479 : #i100082# Use 'value' instead of 'name' to create error message 2009-03-13 10:14:48 +0100 dv r269460 : #i100082# Support better error message when extension manager update finds an incompatible update
This commit is contained in:
parent
4ffc989a7d
commit
399748e163
@ -28,23 +28,6 @@
|
||||
*
|
||||
#*************************************************************************/
|
||||
|
||||
#define VERSION 3
|
||||
#define SUBVERSION 1
|
||||
//#define VERVARIANT 0
|
||||
// .0 + VER_CONCEPT
|
||||
// .100 + VER_ALPHA
|
||||
// .200 + VER_BETA
|
||||
// .300 + VER_GAMMA
|
||||
// .500 + VER_FINAL
|
||||
//#define VER_CONCEPT 0
|
||||
//#define VER_BETA 6
|
||||
#define VER_FINAL 0
|
||||
|
||||
#define VER_DAY 1
|
||||
#define VER_MONTH 4
|
||||
#define VER_YEAR 09
|
||||
|
||||
|
||||
// Header
|
||||
#include "resource.h"
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1500)
|
||||
@ -57,9 +40,9 @@
|
||||
#define IDC_STATIC (-1)
|
||||
#endif
|
||||
|
||||
#include "verinfo.hrc"
|
||||
#define VER_FIRSTYEAR 2003
|
||||
|
||||
#define VER_FIRSTYEAR 03
|
||||
#include "version.hrc"
|
||||
|
||||
#ifdef FONTSIZE
|
||||
#undef FONTSIZE
|
||||
@ -131,11 +114,4 @@ VS_VERSION_INFO versioninfo
|
||||
}
|
||||
}
|
||||
|
||||
// version binary entry
|
||||
VS_VERSION_INFO rcdata
|
||||
{
|
||||
0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY,
|
||||
VERSION, SUBVERSION, VERVARIANT, VER_COUNT
|
||||
};
|
||||
|
||||
|
||||
|
@ -6,9 +6,6 @@
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* $RCSfile: updatecheckconfig.cxx,v $
|
||||
* $Revision: 1.11 $
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
@ -213,8 +210,14 @@ rtl::OUString UpdateCheckConfig::getDesktopDirectory()
|
||||
}
|
||||
#else
|
||||
// This should become a desktop specific setting in some system backend ..
|
||||
osl::Security().getHomeDir(aRet);
|
||||
aRet += rtl::OUString::createFromAscii("/Desktop");
|
||||
rtl::OUString aHomeDir;
|
||||
osl::Security().getHomeDir( aHomeDir );
|
||||
aRet = aHomeDir + rtl::OUString::createFromAscii("/Desktop");
|
||||
|
||||
// Set path to home directory when there is no /Desktop directory
|
||||
osl::Directory aDocumentsDir( aRet );
|
||||
if( osl::FileBase::E_None != aDocumentsDir.open() )
|
||||
aRet = aHomeDir;
|
||||
#endif
|
||||
|
||||
return aRet;
|
||||
|
@ -51,6 +51,27 @@ namespace uno = com::sun::star::uno ;
|
||||
namespace
|
||||
{
|
||||
|
||||
class InitUpdateCheckJobThread : public osl::Thread
|
||||
{
|
||||
public:
|
||||
InitUpdateCheckJobThread( const uno::Reference< uno::XComponentContext > &xContext,
|
||||
const uno::Sequence< beans::NamedValue > &xParameters );
|
||||
|
||||
virtual void SAL_CALL run();
|
||||
virtual void SAL_CALL onTerminated();
|
||||
|
||||
void showDialog();
|
||||
|
||||
protected:
|
||||
~InitUpdateCheckJobThread();
|
||||
|
||||
private:
|
||||
osl::Condition m_aCondition;
|
||||
uno::Reference<uno::XComponentContext> m_xContext;
|
||||
uno::Sequence<beans::NamedValue> m_xParameters;
|
||||
bool m_bShowDialog;
|
||||
};
|
||||
|
||||
class UpdateCheckJob :
|
||||
public ::cppu::WeakImplHelper2< task::XJob, lang::XServiceInfo >
|
||||
{
|
||||
@ -80,15 +101,64 @@ public:
|
||||
throw (uno::RuntimeException);
|
||||
|
||||
private:
|
||||
uno::Reference<uno::XComponentContext> m_xContext;
|
||||
uno::Reference<uno::XComponentContext> m_xContext;
|
||||
InitUpdateCheckJobThread *m_pInitThread;
|
||||
|
||||
void handleExtensionUpdates( const uno::Sequence< beans::NamedValue > &rListProp );
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
InitUpdateCheckJobThread::InitUpdateCheckJobThread(
|
||||
const uno::Reference< uno::XComponentContext > &xContext,
|
||||
const uno::Sequence< beans::NamedValue > &xParameters ) :
|
||||
m_xContext( xContext ),
|
||||
m_xParameters( xParameters ),
|
||||
m_bShowDialog( false )
|
||||
{
|
||||
create();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
InitUpdateCheckJobThread::~InitUpdateCheckJobThread()
|
||||
{
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void SAL_CALL InitUpdateCheckJobThread::run()
|
||||
{
|
||||
TimeValue tv = { 25, 0 };
|
||||
|
||||
m_aCondition.wait( &tv );
|
||||
|
||||
rtl::Reference< UpdateCheck > aController( UpdateCheck::get() );
|
||||
aController->initialize( m_xParameters, m_xContext );
|
||||
|
||||
if ( m_bShowDialog )
|
||||
aController->showDialog( true );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void SAL_CALL InitUpdateCheckJobThread::onTerminated()
|
||||
{
|
||||
delete this;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void InitUpdateCheckJobThread::showDialog()
|
||||
{
|
||||
m_bShowDialog = true;
|
||||
m_aCondition.set();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
UpdateCheckJob::UpdateCheckJob(const uno::Reference<uno::XComponentContext>& xContext) :
|
||||
m_xContext(xContext)
|
||||
m_xContext(xContext),
|
||||
m_pInitThread( NULL )
|
||||
{
|
||||
}
|
||||
|
||||
@ -141,11 +211,10 @@ UpdateCheckJob::execute(const uno::Sequence<beans::NamedValue>& namedValues)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uno::Sequence<beans::NamedValue> aConfig =
|
||||
getValue< uno::Sequence<beans::NamedValue> > (namedValues, "JobConfig");
|
||||
|
||||
rtl::Reference<UpdateCheck> aController(UpdateCheck::get());
|
||||
aController->initialize(aConfig, m_xContext);
|
||||
m_pInitThread = new InitUpdateCheckJobThread( m_xContext, aConfig );
|
||||
|
||||
/* Determine the way we got invoked here -
|
||||
* see Developers Guide Chapter "4.7.2 Jobs" to understand the magic
|
||||
@ -158,7 +227,7 @@ UpdateCheckJob::execute(const uno::Sequence<beans::NamedValue>& namedValues)
|
||||
|
||||
if( ! aEventName.equalsAscii("onFirstVisibleTask") )
|
||||
{
|
||||
aController->showDialog(true);
|
||||
m_pInitThread->showDialog();
|
||||
}
|
||||
|
||||
return uno::Any();
|
||||
|
@ -1,2 +1,3 @@
|
||||
ShowReleaseNotesBefore
|
||||
ShowReleaseNotesAfter
|
||||
ShowSurveyAfter
|
||||
|
@ -6,9 +6,6 @@
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* $RCSfile: relnotes.cxx,v $
|
||||
* $Revision: 1.4 $
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
@ -42,7 +39,7 @@
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include <stdio.h>
|
||||
#include "strsafe.h"
|
||||
#include <strsafe.h>
|
||||
|
||||
//----------------------------------------------------------
|
||||
#ifdef DEBUG
|
||||
@ -70,22 +67,28 @@ inline bool IsValidHandle( HANDLE handle )
|
||||
//----------------------------------------------------------
|
||||
//----------------------------------------------------------
|
||||
//----------------------------------------------------------
|
||||
UINT ShowReleaseNotes( MSIHANDLE , TCHAR* pFileName )
|
||||
UINT ShowReleaseNotes( TCHAR* pFileName, TCHAR* pFilePath )
|
||||
{
|
||||
TCHAR szPath[MAX_PATH];
|
||||
TCHAR sFullPath[ MAX_PATH ];
|
||||
|
||||
if( FAILED( SHGetSpecialFolderPath( NULL, szPath, CSIDL_COMMON_DOCUMENTS, true ) ) )
|
||||
if ( FAILED( StringCchCopy( sFullPath, MAX_PATH, pFilePath ) ) )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: Could not copy path [%s]"), pFilePath );
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
if ( FAILED( StringCchCat( szPath, sizeof( szPath ), pFileName ) ) )
|
||||
if ( FAILED( StringCchCat( sFullPath, MAX_PATH, pFileName ) ) )
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: Could not append filename [%s]"), pFileName );
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
HANDLE hFile = CreateFile( szPath, 0, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
HANDLE hFile = CreateFile( sFullPath, 0, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
|
||||
if ( IsValidHandle(hFile) )
|
||||
{
|
||||
CloseHandle( hFile );
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: Found file [%s]"), szPath );
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: Found file [%s]"), sFullPath );
|
||||
|
||||
SHELLEXECUTEINFOW aExecInf;
|
||||
ZeroMemory( &aExecInf, sizeof( aExecInf ) );
|
||||
@ -93,7 +96,7 @@ UINT ShowReleaseNotes( MSIHANDLE , TCHAR* pFileName )
|
||||
aExecInf.cbSize = sizeof( aExecInf );
|
||||
aExecInf.fMask = SEE_MASK_FLAG_DDEWAIT | SEE_MASK_FLAG_NO_UI;
|
||||
aExecInf.lpVerb = TEXT("open");
|
||||
aExecInf.lpFile = szPath;
|
||||
aExecInf.lpFile = sFullPath;
|
||||
aExecInf.lpDirectory = NULL;
|
||||
aExecInf.nShow = SW_SHOWNORMAL;
|
||||
|
||||
@ -102,24 +105,56 @@ UINT ShowReleaseNotes( MSIHANDLE , TCHAR* pFileName )
|
||||
}
|
||||
else
|
||||
{
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: File not found [%s]"), szPath );
|
||||
return ERROR_SUCCESS;
|
||||
OutputDebugStringFormat( TEXT("DEBUG: ShowReleaseNotes: File not found [%s]"), sFullPath );
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------
|
||||
extern "C" UINT __stdcall ShowReleaseNotesBefore( MSIHANDLE hMSI )
|
||||
extern "C" UINT __stdcall ShowReleaseNotesBefore( MSIHANDLE )
|
||||
{
|
||||
TCHAR szPath[MAX_PATH];
|
||||
|
||||
if( FAILED( SHGetSpecialFolderPath( NULL, szPath, CSIDL_COMMON_DOCUMENTS, true ) ) )
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
OutputDebugString( TEXT("DEBUG: ShowReleaseNotesBefore called") );
|
||||
return ShowReleaseNotes( hMSI, TEXT("\\sun\\releasenote1.url") );
|
||||
|
||||
return ShowReleaseNotes( TEXT("\\sun\\releasenote1.url"), szPath );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------
|
||||
extern "C" UINT __stdcall ShowReleaseNotesAfter( MSIHANDLE hMSI )
|
||||
extern "C" UINT __stdcall ShowReleaseNotesAfter( MSIHANDLE )
|
||||
{
|
||||
TCHAR szPath[MAX_PATH];
|
||||
|
||||
if( FAILED( SHGetSpecialFolderPath( NULL, szPath, CSIDL_COMMON_DOCUMENTS, true ) ) )
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
OutputDebugString( TEXT("DEBUG: ShowReleaseNotesAfter called") );
|
||||
return ShowReleaseNotes( hMSI, TEXT("\\sun\\releasenote2.url") );
|
||||
|
||||
return ShowReleaseNotes( TEXT("\\sun\\releasenote2.url"), szPath );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------
|
||||
extern "C" UINT __stdcall ShowSurveyAfter( MSIHANDLE )
|
||||
{
|
||||
OutputDebugString( TEXT("DEBUG: ShowSurveyAfter called") );
|
||||
|
||||
SHELLEXECUTEINFOW aExecInf;
|
||||
ZeroMemory( &aExecInf, sizeof( aExecInf ) );
|
||||
|
||||
aExecInf.cbSize = sizeof( aExecInf );
|
||||
aExecInf.fMask = SEE_MASK_FLAG_DDEWAIT | SEE_MASK_FLAG_NO_UI;
|
||||
aExecInf.lpVerb = TEXT("open");
|
||||
aExecInf.lpFile = TEXT("http://surveys.services.openoffice.org/deinstall");
|
||||
aExecInf.lpDirectory = NULL;
|
||||
aExecInf.nShow = SW_SHOWNORMAL;
|
||||
|
||||
SetLastError( 0 );
|
||||
ShellExecuteEx( &aExecInf );
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user