From bad44c964f2c8547ae6af6f5b61fbd8dd4cf045f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 18 Nov 2010 16:14:03 +0000 Subject: [PATCH] drop integrated patches --- ...-abort-doesn-t-gain-us-anything-here.patch | 24 - ...-latest-libX11-changed-header-guards.patch | 25 - ...e-used-with-overlapping-src-and-dest.patch | 25 - libreoffice-buildfix.patch | 83 -- libreoffice-xdg632229.gnomeshell.patch | 401 ------ libreoffice.spec | 75 +- ...123.ooo53397.prelinkoptimize.desktop.patch | 6 +- ....1.rhXXXXXX.extensions.defaulttoevo2.patch | 82 -- ...org-2.2.1.ooo7065.sw.titlepagedialog.patch | 1136 ----------------- ....org-3.0.0.ooo88341.sc.verticalboxes.patch | 31 +- ...org-3.1.0.ooo102061.sc.cellanchoring.patch | 386 +++--- ...org-3.2.0.ooo108846.sfx2.qstartfixes.patch | 87 -- ...e.org-3.3.0.ooo107490.cppu.lifecycle.patch | 644 ---------- turn-script-providers-into-extensions.patch | 4 +- 14 files changed, 249 insertions(+), 2760 deletions(-) delete mode 100644 0001-abort-doesn-t-gain-us-anything-here.patch delete mode 100644 0001-latest-libX11-changed-header-guards.patch delete mode 100644 0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch delete mode 100644 libreoffice-buildfix.patch delete mode 100644 libreoffice-xdg632229.gnomeshell.patch delete mode 100644 openoffice.org-2.0.1.rhXXXXXX.extensions.defaulttoevo2.patch delete mode 100644 openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch delete mode 100644 openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch delete mode 100644 openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch diff --git a/0001-abort-doesn-t-gain-us-anything-here.patch b/0001-abort-doesn-t-gain-us-anything-here.patch deleted file mode 100644 index 416511a..0000000 --- a/0001-abort-doesn-t-gain-us-anything-here.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 72244e6e6035ffc211ea7a4fce9aa96de8bc1f76 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 3 Nov 2010 10:16:06 +0000 -Subject: [PATCH] abort doesn't gain us anything here. - -abort doesn't gain us anything here except to force abrt automatic bugreports kick -in, and XIOErrors can't be worked around ---- - vcl/unx/source/plugadapt/salplug.cxx | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/vcl/unx/source/plugadapt/salplug.cxx b/vcl/unx/source/plugadapt/salplug.cxx -index 54f9752..ba6bf4a 100644 ---- a/vcl/unx/source/plugadapt/salplug.cxx -+++ b/vcl/unx/source/plugadapt/salplug.cxx -@@ -281,7 +281,7 @@ - std::fprintf( stderr, "Application Error" ); - else - std::fprintf( stderr, ByteString( rErrorText, gsl_getSystemTextEncoding() ).GetBuffer() ); -- abort(); -+ exit(-1); - } - - const OUString& SalGetDesktopEnvironment() diff --git a/0001-latest-libX11-changed-header-guards.patch b/0001-latest-libX11-changed-header-guards.patch deleted file mode 100644 index 3cde501..0000000 --- a/0001-latest-libX11-changed-header-guards.patch +++ /dev/null @@ -1,25 +0,0 @@ -From cd10b146b67f7329f699e48e74d2961dbcceb123 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 4 Nov 2010 14:44:14 +0000 -Subject: [PATCH] latest libX11 changed header guards - ---- - vcl/unx/inc/dtint.hxx | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/vcl/unx/inc/dtint.hxx b/vcl/unx/inc/dtint.hxx -index 724dad6..b173830 100644 ---- a/vcl/unx/inc/dtint.hxx -+++ b/vcl/unx/inc/dtint.hxx -@@ -37,7 +37,7 @@ class SalBitmap; - class SalDisplay; - class AllSettings; - --#ifndef _XLIB_H_ -+#if !defined(_XLIB_H_) && !defined(_X11_XLIB_H_) - // forwards from X - struct Display; - struct XEvent; --- -1.7.3.1 - diff --git a/0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch b/0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch deleted file mode 100644 index cd8c43a..0000000 --- a/0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0bf9733c6e8d40a5d327e754b44c7e540cdada7e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Sun, 31 Oct 2010 19:07:44 +0000 -Subject: [PATCH] strcpy cannot be used with overlapping src and dest - ---- - soltools/mkdepend/parse.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/soltools/mkdepend/parse.c b/soltools/mkdepend/parse.c -index 6d6e079..ec7e7d4 100644 ---- a/soltools/mkdepend/parse.c -+++ b/soltools/mkdepend/parse.c -@@ -347,7 +347,7 @@ int deftype (line, filep, file_red, file, parse_it, symbols) - /* - * copy the definition back to the beginning of the line. - */ -- strcpy (line, p); -+ memmove (line, p, strlen(p)); - break; - case ELSE: - case ENDIF: --- -1.7.3.1 - diff --git a/libreoffice-buildfix.patch b/libreoffice-buildfix.patch deleted file mode 100644 index aadea13..0000000 --- a/libreoffice-buildfix.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- a/solenv/inc/postset.mk 2010-09-29 12:55:57.000000000 +0100 -+++ b/solenv/inc/postset.mk 2010-09-29 12:58:29.000000000 +0100 -@@ -33,15 +33,13 @@ - # Complete list of all supported ISO codes - completelangiso=af \ - ar \ --as-IN \ -+as \ - be-BY \ - bo \ - bg \ - br \ - brx \ - bn \ --bn-BD \ --bn-IN \ - bs \ - ca \ - cs \ -@@ -65,7 +63,6 @@ - gd \ - gl \ - gu \ --gu-IN \ - he \ - hi \ - hr \ -@@ -91,8 +88,8 @@ - mn \ - mni \ - ms \ --ml-IN \ --mr-IN \ -+ml \ -+mr \ - my \ - ne \ - nb \ -@@ -102,7 +99,7 @@ - ns \ - om \ - oc \ --or-IN \ -+or \ - pap \ - pa-IN \ - pl \ -@@ -126,16 +123,16 @@ - sv \ - sw \ - sw-TZ \ --te-IN \ --ti-ER \ --ta-IN \ -+te \ -+ti \ -+ta \ - th \ - tn \ - tr \ - ts \ - tg \ - ug \ --ur-IN \ -+ur \ - uk \ - uz \ - ve \ ---- a/configure.in -+++ b/configure.in -@@ -3815,12 +3815,6 @@ if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \ - SYSTEM_CPPUNIT=YES - # might work for earlier, too but go sure - PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 ) -- AC_MSG_CHECKING([STL compatibility]) -- if test "$WITH_STLPORT" != "no"; then -- AC_MSG_ERROR([to use system cppunit you need to use --without-stlport]) -- else -- AC_MSG_RESULT([OK]) -- fi - else - AC_MSG_RESULT([internal]) - SYSTEM_CPPUNIT=NO diff --git a/libreoffice-xdg632229.gnomeshell.patch b/libreoffice-xdg632229.gnomeshell.patch deleted file mode 100644 index 502d4a3..0000000 --- a/libreoffice-xdg632229.gnomeshell.patch +++ /dev/null @@ -1,401 +0,0 @@ -diff -ru framework/inc/helper/titlebarupdate.hxx framework/inc/helper/titlebarupdate.hxx ---- framework/inc/helper/titlebarupdate.hxx 2010-10-14 21:54:22.000000000 +0100 -+++ framework/inc/helper/titlebarupdate.hxx 2010-10-22 12:52:13.000000000 +0100 -@@ -212,6 +212,7 @@ - */ - void impl_updateTitle(const css::uno::Reference< css::frame::XFrame >& xFrame); - -+ void impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame); - }; // class TitleBarUpdate - - } // namespace framework -diff -ru framework/source/helper/titlebarupdate.cxx framework/source/helper/titlebarupdate.cxx ---- framework/source/helper/titlebarupdate.cxx 2010-10-14 21:54:22.000000000 +0100 -+++ framework/source/helper/titlebarupdate.cxx 2010-10-22 15:00:16.000000000 +0100 -@@ -199,6 +201,88 @@ - // nothing todo here - because we hold the frame as weak reference only - } - -+//http://live.gnome.org/GnomeShell/ApplicationBased -+void TitleBarUpdate::impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame) -+{ -+ css::uno::Reference< css::awt::XWindow > xWindow = xFrame->getContainerWindow (); -+ if ( ! xWindow.is() ) -+ return; -+ -+ ::rtl::OUString sWM_CLASS; -+ try -+ { -+ ::rtl::OUString aProductName; -+ ::utl::ConfigManager::GetDirectConfigProperty(::utl::ConfigManager::PRODUCTNAME) >>= aProductName; -+ -+ // SYNCHRONIZED -> -+ ReadGuard aReadLock(m_aLock); -+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR; -+ aReadLock.unlock(); -+ // <- SYNCHRONIZED -+ -+ css::uno::Reference< css::frame::XModuleManager > xModuleManager( -+ xSMGR->createInstance(SERVICENAME_MODULEMANAGER), -+ css::uno::UNO_QUERY_THROW); -+ -+ css::uno::Reference< css::container::XNameAccess > xConfig( -+ xModuleManager, -+ css::uno::UNO_QUERY_THROW); -+ -+ rtl::OUString aModuleId = xModuleManager->identify(xFrame); -+ rtl::OUString sDesktopName; -+ -+ if ( aModuleId.equalsAscii( "com.sun.star.text.TextDocument" ) || -+ aModuleId.equalsAscii( "com.sun.star.text.GlobalDocument" ) || -+ aModuleId.equalsAscii( "com.sun.star.text.WebDocument" ) || -+ aModuleId.equalsAscii( "com.sun.star.xforms.XMLFormDocument" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("writer"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.sheet.SpreadsheetDocument" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("calc"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.presentation.PresentationDocument" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("impress"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.drawing.DrawingDocument" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("draw"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.formula.FormulaProperties" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("math"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.sdb.DatabaseDocument" ) || -+ aModuleId.equalsAscii( "com.sun.star.sdb.OfficeDatabaseDocument" ) || -+ aModuleId.equalsAscii( "com.sun.star.sdb.RelationDesign" ) || -+ aModuleId.equalsAscii( "com.sun.star.sdb.QueryDesign" ) || -+ aModuleId.equalsAscii( "com.sun.star.sdb.TableDesign" ) || -+ aModuleId.equalsAscii( "com.sun.star.sdb.DataSourceBrowser" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("base"); -+ else if ( aModuleId.equalsAscii( "com.sun.star.frame.StartModule" ) ) -+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter"); -+ else -+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter"); -+ sWM_CLASS = aProductName.toAsciiLowerCase(); -+ sWM_CLASS += ::rtl::OUString(sal_Unicode('-')); -+ sWM_CLASS += sDesktopName; -+ } -+ catch(const css::uno::Exception&) -+ { -+ } -+ -+ // VCL SYNCHRONIZED -> -+ ::vos::OClearableGuard aSolarLock( Application::GetSolarMutex() ); -+ -+ Window* pWindow = (VCLUnoHelper::GetWindow( xWindow )); -+ if ( -+ ( pWindow ) && -+ ( pWindow->GetType() == WINDOW_WORKWINDOW ) -+ ) -+ { -+ WorkWindow* pWorkWindow = (WorkWindow*)pWindow; -+#ifdef COPY_TO_TITLE_FOR_DEBUG -+ pWorkWindow->SetText( sWM_CLASS ); -+#endif -+ pWorkWindow->SetWMClass( sWM_CLASS ); -+ } -+ -+ aSolarLock.clear(); -+} -+ -+ - //***************************************************************************************************************** - ::sal_Bool TitleBarUpdate::implst_getModuleInfo(const css::uno::Reference< css::frame::XFrame >& xFrame, - TModuleInfo& rInfo ) -@@ -260,6 +347,9 @@ - - impl_updateIcon (xFrame); - impl_updateTitle (xFrame); -+#if defined(UNX) && !defined(MACOSX) -+ impl_updateWM_CLASSS (xFrame); -+#endif - } - - //***************************************************************************************************************** -diff -ru vcl/aqua/inc/salframe.h vcl/aqua/inc/salframe.h ---- vcl/aqua/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/aqua/inc/salframe.h 2010-10-22 13:26:26.000000000 +0100 -@@ -159,6 +159,7 @@ - virtual void SetExtendedFrameStyle( SalExtStyle ); - virtual void SetBackgroundBitmap( SalBitmap* ); - virtual void SetScreenNumber(unsigned int); -+ virtual void SetWMClass( const rtl::OUString &rWMClass ); - - // shaped system windows - // set clip region to none (-> rectangular windows, normal state) -diff -ru vcl/aqua/source/window/salframe.cxx vcl/aqua/source/window/salframe.cxx ---- vcl/aqua/source/window/salframe.cxx 2010-10-18 17:01:44.000000000 +0100 -+++ vcl/aqua/source/window/salframe.cxx 2010-10-22 13:17:50.000000000 +0100 -@@ -664,6 +664,10 @@ - } - } - -+void AquaSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ ) -+{ -+} -+ - // ----------------------------------------------------------------------- - - void AquaSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay ) -diff -ru vcl/inc/vcl/salframe.hxx vcl/inc/vcl/salframe.hxx ---- vcl/inc/vcl/salframe.hxx 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/inc/vcl/salframe.hxx 2010-10-22 13:26:05.000000000 +0100 -@@ -266,6 +266,8 @@ - // move the frame to a new screen - virtual void SetScreenNumber( unsigned int nScreen ) = 0; - -+ virtual void SetWMClass( const rtl::OUString &rWMClass ) = 0; -+ - // shaped system windows - // set clip region to none (-> rectangular windows, normal state) - virtual void ResetClipRegion() = 0; -diff -ru vcl/inc/vcl/syswin.hxx vcl/inc/vcl/syswin.hxx ---- vcl/inc/vcl/syswin.hxx 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/inc/vcl/syswin.hxx 2010-10-22 13:14:48.000000000 +0100 -@@ -277,6 +277,8 @@ - @see GetScreenNumber - */ - void SetScreenNumber( unsigned int nNewScreen ); -+ -+ void SetWMClass( const rtl::OUString &rWMClass ); - }; - - #endif // _SV_SYSWIN_HXX -diff -ru vcl/source/window/syswin.cxx vcl/source/window/syswin.cxx ---- vcl/source/window/syswin.cxx 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/source/window/syswin.cxx 2010-10-22 13:29:21.000000000 +0100 -@@ -1082,3 +1082,8 @@ - { - mpWindowImpl->mpFrame->SetScreenNumber( nScreen ); - } -+ -+void SystemWindow::SetWMClass( const rtl::OUString &rWMClass ) -+{ -+ mpWindowImpl->mpFrame->SetWMClass( rWMClass ); -+} -diff -ru vcl/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx ---- vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 08:55:43.000000000 +0100 -+++ vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 14:12:08.000000000 +0100 -@@ -981,25 +981,10 @@ - if( nStyle != m_nExtStyle && ! isChild() ) - { - m_nExtStyle = nStyle; -- if( GTK_WIDGET_REALIZED( m_pWindow ) ) -- { -- XClassHint* pClass = XAllocClassHint(); -- rtl::OString aResHint = X11SalData::getFrameResName( m_nExtStyle ); -- pClass->res_name = const_cast(aResHint.getStr()); -- pClass->res_class = const_cast(X11SalData::getFrameClassName()); -- XSetClassHint( getDisplay()->GetDisplay(), -- GDK_WINDOW_XWINDOW(m_pWindow->window), -- pClass ); -- XFree( pClass ); -- } -- else -- gtk_window_set_wmclass( GTK_WINDOW(m_pWindow), -- X11SalData::getFrameResName( m_nExtStyle ), -- X11SalData::getFrameClassName() ); -+ updateWMClass(); - } - } - -- - SalGraphics* GtkSalFrame::GetGraphics() - { - if( m_pWindow ) -@@ -1792,6 +1777,39 @@ - } - } - -+void GtkSalFrame::updateWMClass() -+{ -+ fprintf(stderr, "%p GtkSalFrame::SetWMClass with %s\n", this, rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_UTF8).getStr()); -+ -+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US); -+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName(); -+ -+ if( GTK_WIDGET_REALIZED( m_pWindow ) ) -+ { -+ XClassHint* pClass = XAllocClassHint(); -+ rtl::OString aResName = X11SalData::getFrameResName( m_nExtStyle ); -+ pClass->res_name = const_cast(aResName.getStr()); -+ pClass->res_class = const_cast(pResClass); -+ XSetClassHint( getDisplay()->GetDisplay(), -+ GDK_WINDOW_XWINDOW(m_pWindow->window), -+ pClass ); -+ XFree( pClass ); -+ } -+ else -+ gtk_window_set_wmclass( GTK_WINDOW(m_pWindow), -+ X11SalData::getFrameResName( m_nExtStyle ), -+ pResClass ); -+} -+ -+void GtkSalFrame::SetWMClass( const rtl::OUString &rWMClass ) -+{ -+ if( rWMClass != m_sWMClass && ! isChild() ) -+ { -+ m_sWMClass = rWMClass; -+ updateWMClass(); -+ } -+} -+ - void GtkSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen ) - { - if( m_pWindow && ! isChild() ) -diff -ru vcl/unx/headless/svpframe.hxx vcl/unx/headless/svpframe.hxx ---- vcl/unx/headless/svpframe.hxx 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/unx/headless/svpframe.hxx 2010-10-22 13:27:19.000000000 +0100 -@@ -125,6 +125,7 @@ - - /*TODO: functional implementation */ - virtual void SetScreenNumber( unsigned int nScreen ) { (void)nScreen; } -+ virtual void SetWMClass( const rtl::OUString &rWMClass ) { (void) rWMClass; } - }; - #endif // _SVP_SVPFRAME_HXX - -diff -ru vcl/unx/inc/plugins/gtk/gtkframe.hxx vcl/unx/inc/plugins/gtk/gtkframe.hxx ---- vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 08:55:43.000000000 +0100 -+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 14:10:08.000000000 +0100 -@@ -192,6 +192,7 @@ - bool m_bWindowIsGtkPlug; - bool m_bSetFocusOnMap; - String m_aTitle; -+ rtl::OUString m_sWMClass; - - IMHandler* m_pIMHandler; - -@@ -269,6 +270,8 @@ - void setMinMaxSize(); - void createNewWindow( XLIB_Window aParent, bool bXEmbed, int nScreen ); - void askForXEmbedFocus( sal_Int32 nTimecode ); -+ -+ void updateWMClass(); - - DECL_LINK( ImplDelayedFullScreenHdl, void* ); - public: -@@ -387,6 +390,7 @@ - virtual void SetBackgroundBitmap( SalBitmap* ); - - virtual void SetScreenNumber( unsigned int ); -+ virtual void SetWMClass( const rtl::OUString &rWMClass ); - - // shaped system windows - // set clip region to none (-> rectangular windows, normal state) -diff -ru vcl/unx/inc/salframe.h vcl/unx/inc/salframe.h ---- vcl/unx/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100 -+++ vcl/unx/inc/salframe.h 2010-10-22 14:22:35.000000000 +0100 -@@ -128,6 +128,8 @@ - int mnIconID; - - String m_aTitle; -+ -+ rtl::OUString m_sWMClass; - - SystemChildData maSystemChildData; - -@@ -171,6 +173,8 @@ - - void setXEmbedInfo(); - void askForXEmbedFocus( sal_Int32 i_nTimeCode ); -+ -+ void updateWMClass(); - public: - X11SalFrame( SalFrame* pParent, ULONG nSalFrameStyle, SystemParentData* pSystemParent = NULL ); - virtual ~X11SalFrame(); -@@ -261,6 +265,7 @@ - virtual void SetBackgroundBitmap( SalBitmap* pBitmap ); - - virtual void SetScreenNumber( unsigned int ); -+ virtual void SetWMClass( const rtl::OUString &rWMClass ); - - // shaped system windows - // set clip region to none (-> rectangular windows, normal state) -diff -ru vcl/unx/source/window/salframe.cxx vcl/unx/source/window/salframe.cxx ---- vcl/unx/source/window/salframe.cxx 2010-10-18 12:39:42.000000000 +0100 -+++ vcl/unx/source/window/salframe.cxx 2010-10-22 14:23:44.000000000 +0100 -@@ -542,11 +542,9 @@ - a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_TAKE_FOCUS ); - XSetWMProtocols( GetXDisplay(), GetShellWindow(), a, n ); - -- XClassHint* pClass = XAllocClassHint(); -- pClass->res_name = const_cast(X11SalData::getFrameResName()); -- pClass->res_class = const_cast(X11SalData::getFrameClassName()); -- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass ); -- XFree( pClass ); -+ // force wm class hint -+ mnExtStyle = ~0; -+ SetExtendedFrameStyle( 0 ); - - XSizeHints* pHints = XAllocSizeHints(); - pHints->flags = PWinGravity | PPosition; -@@ -849,13 +847,7 @@ - if( nStyle != mnExtStyle && ! IsChildWindow() ) - { - mnExtStyle = nStyle; -- -- XClassHint* pClass = XAllocClassHint(); -- rtl::OString aResHint = X11SalData::getFrameResName( mnExtStyle ); -- pClass->res_name = const_cast(aResHint.getStr()); -- pClass->res_class = const_cast(X11SalData::getFrameClassName()); -- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass ); -- XFree( pClass ); -+ updateWMClass(); - } - } - -@@ -2192,6 +2184,30 @@ - } - } - -+void X11SalFrame::SetWMClass( const rtl::OUString &rWMClass ) -+{ -+ if( rWMClass != m_sWMClass && ! IsChildWindow() ) -+ { -+ m_sWMClass = rWMClass; -+ updateWMClass(); -+ } -+} -+ -+void X11SalFrame::updateWMClass() -+{ -+ XClassHint* pClass = XAllocClassHint(); -+ rtl::OString aResName = X11SalData::getFrameResName( mnExtStyle ); -+ pClass->res_name = const_cast(aResName.getStr()); -+ -+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US); -+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName(); -+ -+ pClass->res_class = const_cast(pResClass); -+ XSetClassHint( GetXDisplay(), GetShellWindow(), pClass ); -+ XFree( pClass ); -+} -+ -+ - // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - - void X11SalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen ) -diff -ru vcl/win/inc/salframe.h vcl/win/inc/salframe.h ---- vcl/win/inc/salframe.h 2010-10-14 21:43:21.000000000 +0100 -+++ vcl/win/inc/salframe.h 2010-10-22 13:26:23.000000000 +0100 -@@ -141,6 +141,7 @@ - virtual bool SetPluginParent( SystemParentData* pNewParent ); - virtual void SetBackgroundBitmap( SalBitmap* ); - virtual void SetScreenNumber( unsigned int ); -+ virtual void SetWMClass( const rtl::OUString &rWMClass ); - virtual void ResetClipRegion(); - virtual void BeginSetClipRegion( ULONG nRects ); - virtual void UnionClipRegion( long nX, long nY, long nWidth, long nHeight ); -diff -ru vcl/win/source/window/salframe.cxx vcl/win/source/window/salframe.cxx ---- vcl/win/source/window/salframe.cxx 2010-10-14 21:43:21.000000000 +0100 -+++ vcl/win/source/window/salframe.cxx 2010-10-22 13:18:05.000000000 +0100 -@@ -2036,6 +2036,10 @@ - } - } - -+void WinSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ ) -+{ -+} -+ - // ----------------------------------------------------------------------- - - void WinSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay ) diff --git a/libreoffice.spec b/libreoffice.spec index c5932a5..74823f6 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -81,27 +81,18 @@ BuildRequires: jakarta-commons-lang, poppler-devel, fontpackages-devel, junit4 BuildRequires: pentaho-reporting-flow-engine, libXinerama-devel, mythes-devel BuildRequires: silgraphite-devel, libwpg-devel, libwps-devel, vigra-devel -Patch1: openoffice.org-2.0.1.rhXXXXXX.extensions.defaulttoevo2.patch -Patch2: openoffice.org-1.9.123.ooo53397.prelinkoptimize.desktop.patch -Patch3: openoffice.org-2.0.2.rh188467.printingdefaults.patch -Patch4: openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch -Patch5: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch -Patch6: openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch -Patch7: openoffice.org-2.2.0.gccXXXXX.solenv.javaregistration.patch -Patch8: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch -Patch9: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch -Patch10: openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch -Patch11: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch -Patch12: openoffice.org-3.3.0.ooo108637.sfx2.uisavedir.patch -Patch13: openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch -Patch14: openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch -Patch15: openoffice.org-3.3.0.ooo113273.desktop.resolvelinks.patch -Patch16: libreoffice-buildfix.patch -Patch17: libreoffice-xdg632229.gnomeshell.patch -Patch18: 0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch -Patch19: 0001-abort-doesn-t-gain-us-anything-here.patch -Patch20: 0001-latest-libX11-changed-header-guards.patch -Patch21: turn-script-providers-into-extensions.patch +Patch1: openoffice.org-1.9.123.ooo53397.prelinkoptimize.desktop.patch +Patch2: openoffice.org-2.0.2.rh188467.printingdefaults.patch +Patch3: openoffice.org-2.4.0.ooo86080.unopkg.bodge.patch +Patch4: openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch +Patch5: openoffice.org-2.2.0.gccXXXXX.solenv.javaregistration.patch +Patch6: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch +Patch7: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch +Patch8: openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch +Patch9: openoffice.org-3.1.1.ooo105784.vcl.sniffscriptforsubs.patch +Patch10: openoffice.org-3.3.0.ooo108637.sfx2.uisavedir.patch +Patch11: openoffice.org-3.3.0.ooo113273.desktop.resolvelinks.patch +Patch12: turn-script-providers-into-extensions.patch %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %define instdir %{_libdir} @@ -699,27 +690,18 @@ rm -rf l10n/source/kid mv -f redhat.soc extras/source/palettes/standard.soc cp -p %{SOURCE19} extras/source/database/evolocal.odb cp -p %{SOURCE20} external/unowinreg/unowinreg.dll -%patch1 -p1 -b .rhXXXXXX.extensions.defaulttoevo2.patch -%patch2 -p1 -b .ooo53397.prelinkoptimize.desktop.patch -%patch3 -p1 -%patch4 -p1 -b .ooo7065.sw.titlepagedialog.patch -%patch5 -p1 -b .ooo86080.unopkg.bodge.patch -%patch6 -p1 -b .ooo88341.sc.verticalboxes.patch -%patch7 -p0 -b .gccXXXXX.solenv.javaregistration.patch -%patch8 -p1 -b .oooXXXXX.solenv.allowmissing.patch -%patch9 -p0 -b .ooo101274.opening-a-directory.patch -%patch10 -p0 -b .ooo102061.sc.cellanchoring.patch -%patch11 -p0 -b .ooo105784.vcl.sniffscriptforsubs.patch -%patch12 -p1 -b .ooo108637.sfx2.uisavedir.patch -%patch13 -p1 -b .ooo108846.sfx2.qstartfixes.patch -%patch14 -p0 -b .ooo107490.cppu.lifecycle.patch -%patch15 -p0 -b .ooo113273.desktop.resolvelinks.patch -%patch16 -p1 -b .libreoffice-buildfix.patch -%patch17 -p0 -b .xdg632229.gnomeshell.patch -%patch18 -p1 -b .strcpy-cannot-be-used-with-overlapping-src-and-dest -%patch19 -p1 -b .abort-doesn-t-gain-us-anything-here.patch -%patch20 -p1 -b .latest-libX11-changed-header-guards.patch -%patch21 -p1 -b .turn-script-providers-into-extensions.patch +%patch1 -p1 -b .ooo53397.prelinkoptimize.desktop.patch +%patch2 -p1 +%patch3 -p1 -b .ooo86080.unopkg.bodge.patch +%patch4 -p1 -b .ooo88341.sc.verticalboxes.patch +%patch5 -p0 -b .gccXXXXX.solenv.javaregistration.patch +%patch6 -p1 -b .oooXXXXX.solenv.allowmissing.patch +%patch7 -p0 -b .ooo101274.opening-a-directory.patch +%patch8 -p0 -b .ooo102061.sc.cellanchoring.patch +%patch9 -p0 -b .ooo105784.vcl.sniffscriptforsubs.patch +%patch10 -p1 -b .ooo108637.sfx2.uisavedir.patch +%patch11 -p0 -b .ooo113273.desktop.resolvelinks.patch +%patch12 -p1 -b .turn-script-providers-into-extensions.patch touch scripting/source/pyprov/delzip touch scripting/util/provider/beanshell/delzip touch scripting/util/provider/javascript/delzip @@ -2022,6 +2004,15 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %changelog * Thu Nov 18 2010 Caolán McNamara - true - -+ -+ -+ EvolutionLocal -+ -+ -+ Personal -+ -+ -+ -+ -+ -+ title,full_name,family_name,org,addr_line1,addr_line2,city,state,zip,country,home_phone,business_phone,email_1, -+ -+ -+ -+ 0 -+ -+ -+ EvolutionLocal -+ -+ -+ Personal -+ -+ -+ -+ - - true - ---- openoffice.org/extras/source/database/makefile.mk.bakj 2005-03-16 18:49:33.251075928 +0530 -+++ openoffice.org/extras/source/database/makefile.mk 2005-03-16 18:50:38.651285353 +0530 -@@ -72,8 +72,8 @@ - - ZIP1TARGET = $(DATABASE_USER_TARGET) - --ZIP1LIST = biblio.odb -- -+ZIP1LIST = biblio.odb \ -+ evolocal.odb - ZIP2TARGET = $(DATABASE_USER_BIBLIO_TARGET) - - ZIP2LIST = biblio.dbf biblio.dbt ---- openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu.bakj 2005-03-16 18:51:43.777536725 +0530 -+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 2005-03-16 18:52:51.471404727 +0530 -@@ -161,6 +161,14 @@ - Bibliography - - -+ -+ -+ $(userurl)/database/evolocal.odb -+ -+ -+ EvolutionLocal -+ -+ - - - ---- openoffice.org.orig/extensions/source/abpilot/abspilot.cxx 19 Dec 2005 17:26:24 -0000 1.13 -+++ openoffice.org/extensions/source/abpilot/abspilot.cxx 16 Feb 2006 12:45:38 -0000 -@@ -124,12 +124,8 @@ - // some initial settings - #ifdef MACOSX - m_aSettings.eType = AST_MACAB; --#elif WITH_MOZILLA --#ifdef UNX -- m_aSettings.eType = AST_MORK; --#else -- m_aSettings.eType = AST_OE; --#endif -+#elif UNX -+ m_aSettings.eType = AST_EVOLUTION; - #else - m_aSettings.eType = AST_OTHER; - #endif diff --git a/openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch b/openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch deleted file mode 100644 index 24fd96d..0000000 --- a/openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch +++ /dev/null @@ -1,1136 +0,0 @@ -Index: inc/cmdid.h -=================================================================== -RCS file: /cvs/sw/sw/inc/cmdid.h,v -retrieving revision 1.72 -diff -u -r1.72 cmdid.h ---- openoffice.org.orig/sw/inc/cmdid.h 27 Jun 2007 13:12:47 -0000 1.72 -+++ openoffice.org/sw/inc/cmdid.h 10 Jul 2007 12:54:59 -0000 -@@ -539,6 +539,8 @@ - - #define FN_SET_PAGE_STYLE (FN_FORMAT + 93) /* Anwenden Seitenv. */ - -+#define FN_FORMAT_TITLEPAGE_DLG (FN_FORMAT + 98) /* Title Page */ -+ - - #define FN_TABLE_REP (FN_FORMAT + 99) /* TableRepresentation */ - #define FN_CONVERT_TEXT_TABLE (FN_FORMAT + 100) /* Konvertierung Text <-> Tabelle */ -Index: inc/globals.hrc -=================================================================== -RCS file: /cvs/sw/sw/inc/globals.hrc,v -retrieving revision 1.16 -diff -u -r1.16 globals.hrc ---- openoffice.org.orig/sw/inc/globals.hrc 2 May 2006 15:13:43 -0000 1.16 -+++ openoffice.org/sw/inc/globals.hrc 10 Jul 2007 12:55:08 -0000 -@@ -282,7 +282,9 @@ - #define TP_SECTION_INDENTS (RC_GLOBALS_BEGIN + 102) - #define TP_OPTCOMPATIBILITY_PAGE (RC_GLOBALS_BEGIN + 103) - #define TP_MAILCONFIG (RC_GLOBALS_BEGIN + 104) --//maximum: RC_GLOBALS_BEGIN + 119 -+#define TP_TITLEPAGE (RC_GLOBALS_BEGIN + 105) -+//maximum: RC_GLOBALS_BEGIN + 120 -+ - - #if STR_DOC_STAT > RC_GLOBALS_END - #error Resource-Id Ueberlauf in #file, #line -@@ -294,4 +296,5 @@ - #define SID_WRT_SHELL (RC_GLOBALS_BEGIN + 117) - - #define DLG_LINE_NUMBERING (RC_GLOBALS_BEGIN + 118) -+#define DLG_TITLEPAGE (RC_GLOBALS_BEGIN + 119) - #endif // _GLOBALS_HRC -Index: inc/helpid.h -=================================================================== -RCS file: /cvs/sw/sw/inc/helpid.h,v -retrieving revision 1.30 -diff -u -r1.30 helpid.h ---- openoffice.org.orig/sw/inc/helpid.h 2 Jan 2007 16:45:16 -0000 1.30 -+++ openoffice.org/sw/inc/helpid.h 10 Jul 2007 12:55:09 -0000 -@@ -986,3 +986,4 @@ - #define HID_MM_HEADER_12 (HID_BASE + 2279) - #define HID_MM_HEADER_13 (HID_BASE + 2280) - -+#define HID_TITLEPAGE (HID_BASE + 2281) -Index: inc/rcid.hrc -=================================================================== -RCS file: /cvs/sw/sw/inc/rcid.hrc,v -retrieving revision 1.12 -diff -u -r1.12 rcid.hrc ---- openoffice.org.orig/sw/inc/rcid.hrc 22 May 2007 16:20:20 -0000 1.12 -+++ openoffice.org/sw/inc/rcid.hrc 10 Jul 2007 12:55:14 -0000 -@@ -135,7 +135,7 @@ - - // globale Ressourcen - #define RC_GLOBALS_BEGIN RC_GLOBALS --#define RC_GLOBALS_END (RC_GLOBALS_BEGIN + 119) -+#define RC_GLOBALS_END (RC_GLOBALS_BEGIN + 120) - - // Format-Vorlagen - #define RC_FMTUI_BEGIN RC_FMTUI -Index: inc/swabstdlg.hxx -=================================================================== -RCS file: /cvs/sw/sw/inc/swabstdlg.hxx,v -retrieving revision 1.13 -diff -u -r1.13 swabstdlg.hxx ---- openoffice.org.orig/sw/inc/swabstdlg.hxx 26 Apr 2007 08:48:16 -0000 1.13 -+++ openoffice.org/sw/inc/swabstdlg.hxx 10 Jul 2007 12:55:16 -0000 -@@ -477,6 +477,7 @@ - SwField* pField, BOOL bNextButton = FALSE ) = 0; //add for SwFldInputDlg - virtual AbstractInsFootNoteDlg* CreateInsFootNoteDlg( int nResId, - Window * pParent, SwWrtShell &rSh, BOOL bEd = FALSE) = 0; //add for SwInsFootNoteDlg -+ virtual VclAbstractDialog* CreateTitlePageDlg ( Window * pParent ) = 0; - virtual VclAbstractDialog * CreateVclSwViewDialog( int nResId, - SwView& rView, BOOL bCol = FALSE ) = 0; //add for SwInsRowColDlg, SwLineNumberingDlg - virtual AbstractInsertGrfRulerDlg* CreateInsertGrfRulerDlg( int nResId, -Index: sdi/_basesh.sdi -=================================================================== -RCS file: /cvs/sw/sw/sdi/_basesh.sdi,v -retrieving revision 1.16 -diff -u -r1.16 _basesh.sdi ---- openoffice.org.orig/sw/sdi/_basesh.sdi 2 May 2006 15:13:56 -0000 1.16 -+++ openoffice.org/sw/sdi/_basesh.sdi 10 Jul 2007 12:55:36 -0000 -@@ -250,6 +250,12 @@ - DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; - ] - -+ FN_FORMAT_TITLEPAGE_DLG // status(final|play) -+ [ -+ ExecMethod = ExecDlg ; -+ DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; -+ ] -+ - FN_FORMAT_PAGE_COLUMN_DLG // status(final|play) - [ - ExecMethod = ExecDlg ; -Index: sdi/swriter.sdi -=================================================================== -RCS file: /cvs/sw/sw/sdi/swriter.sdi,v -retrieving revision 1.66 -diff -u -r1.66 swriter.sdi ---- openoffice.org.orig/sw/sdi/swriter.sdi 27 Jun 2007 13:16:04 -0000 1.66 -+++ openoffice.org/sw/sdi/swriter.sdi 10 Jul 2007 12:57:02 -0000 -@@ -6330,6 +6330,31 @@ - ] - - //-------------------------------------------------------------------------- -+SfxVoidItem TitlePageDialog FN_FORMAT_TITLEPAGE_DLG -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = TRUE, -+ ReadOnlyDoc = FALSE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerItem; -+ Asynchron; -+ -+ /* config: */ -+ AccelConfig = TRUE, -+ MenuConfig = TRUE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = TRUE, -+ GroupId = GID_FORMAT; -+] -+ -+//-------------------------------------------------------------------------- - SfxVoidItem PageDown FN_PAGEDOWN - () - [ -Index: source/ui/dialog/swdlgfact.cxx -=================================================================== -RCS file: /cvs/sw/sw/source/ui/dialog/swdlgfact.cxx,v -retrieving revision 1.13 -diff -u -r1.13 swdlgfact.cxx ---- openoffice.org.orig/sw/source/ui/dialog/swdlgfact.cxx 26 Apr 2007 09:06:20 -0000 1.13 -+++ openoffice.org/sw/source/ui/dialog/swdlgfact.cxx 10 Jul 2007 13:05:50 -0000 -@@ -97,6 +97,7 @@ - #include //add for SwInsTableDlg - #include //add for SwJavaEditDialog - #include //add for SwLineNumberingDlg -+#include //add for SwTitlePageDlg - #include //add for SwMailMergeDlg, SwMailMergeCreateFromDlg, SwMailMergeFieldConnectionsDlg - #include //add for SwMergeTblDlg - #include //add for SwMultiTOXMarkDlg -@@ -1357,6 +1358,14 @@ - return 0; - } - -+VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateTitlePageDlg ( Window *pParent ) -+{ -+ Dialog* pDlg = new SwTitlePageDlg( pParent ); -+ if ( pDlg ) -+ return new VclAbstractDialog_Impl( pDlg ); -+ return 0; -+} -+ - VclAbstractDialog * SwAbstractDialogFactory_Impl::CreateVclSwViewDialog( int nResId, - SwView& rView, BOOL /*bCol*/ ) //add for SwInsRowColDlg, SwLineNumberingDlg - { -Index: source/ui/dialog/swdlgfact.hxx -=================================================================== -RCS file: /cvs/sw/sw/source/ui/dialog/swdlgfact.hxx,v -retrieving revision 1.9 -diff -u -r1.9 swdlgfact.hxx ---- openoffice.org.orig/sw/source/ui/dialog/swdlgfact.hxx 26 Apr 2007 09:06:34 -0000 1.9 -+++ openoffice.org/sw/source/ui/dialog/swdlgfact.hxx 10 Jul 2007 13:05:50 -0000 -@@ -532,6 +532,7 @@ - SwField* pField, BOOL bNextButton = FALSE ); //add for SwFldInputDlg - virtual AbstractInsFootNoteDlg* CreateInsFootNoteDlg( int nResId, - Window * pParent, SwWrtShell &rSh, BOOL bEd = FALSE); //add for SwInsFootNoteDlg -+ virtual VclAbstractDialog * CreateTitlePageDlg ( Window * pParent ); - virtual VclAbstractDialog * CreateVclSwViewDialog( int nResId, - SwView& rView, BOOL bCol = FALSE ); //add for SwInsRowColDlg, SwLineNumberingDlg - virtual AbstractInsertGrfRulerDlg* CreateInsertGrfRulerDlg( int nResId, -Index: source/ui/inc/swmn_tmpl.hrc -=================================================================== -RCS file: /cvs/sw/sw/source/ui/inc/swmn_tmpl.hrc,v -retrieving revision 1.13 -diff -u -r1.13 swmn_tmpl.hrc ---- openoffice.org.orig/sw/source/ui/inc/swmn_tmpl.hrc 27 Jun 2007 13:25:09 -0000 1.13 -+++ openoffice.org/sw/source/ui/inc/swmn_tmpl.hrc 10 Jul 2007 13:08:19 -0000 -@@ -67,8 +67,13 @@ - Identifier = FN_FORMAT_PAGE_DLG ; \ - HelpID = FN_FORMAT_PAGE_DLG ; \ - Text [ en-US ] = "Pa~ge..." ; \ -- }; -- -+ };\ -+ MenuItem\ -+ {\ -+ Identifier = FN_FORMAT_TITLEPAGE_DLG ; \ -+ HelpID = FN_FORMAT_TITLEPAGE_DLG ; \ -+ Text [ en-US ] = "~Title Page..." ; \ -+ }; - - #define MN_TEXT_ATTR\ - MenuItem\ -Index: source/ui/misc/makefile.mk -=================================================================== -RCS file: /cvs/sw/sw/source/ui/misc/makefile.mk,v -retrieving revision 1.12 -diff -u -r1.12 makefile.mk ---- openoffice.org.orig/sw/source/ui/misc/makefile.mk 9 Sep 2005 10:35:47 -0000 1.12 -+++ openoffice.org/sw/source/ui/misc/makefile.mk 10 Jul 2007 13:09:42 -0000 -@@ -56,7 +56,8 @@ - pgfnote.src \ - pggrid.src \ - redlndlg.src \ -- srtdlg.src -+ srtdlg.src \ -+ titlepage.src - - EXCEPTIONSFILES = \ - $(SLO)$/glossary.obj \ -@@ -76,6 +77,7 @@ - $(SLO)$/insfnote.obj \ - $(SLO)$/insrule.obj \ - $(SLO)$/linenum.obj \ -+ $(SLO)$/titlepage.obj \ - $(SLO)$/num.obj \ - $(SLO)$/numberingtypelistbox.obj \ - $(SLO)$/outline.obj \ -Index: source/ui/shells/basesh.cxx -=================================================================== -RCS file: /cvs/sw/sw/source/ui/shells/basesh.cxx,v -retrieving revision 1.81 -diff -u -r1.81 basesh.cxx ---- openoffice.org.orig/sw/source/ui/shells/basesh.cxx 10 May 2007 16:22:02 -0000 1.81 -+++ openoffice.org/sw/source/ui/shells/basesh.cxx 10 Jul 2007 13:10:07 -0000 -@@ -2546,6 +2546,14 @@ - - switch ( nSlot ) - { -+ case FN_FORMAT_TITLEPAGE_DLG: -+ { -+ SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); -+ VclAbstractDialog* pDlg = pFact->CreateTitlePageDlg( pMDI ); -+ pDlg->Execute(); -+ delete pDlg; -+ } -+ break; - case FN_FORMAT_PAGE_COLUMN_DLG: - case FN_FORMAT_PAGE_DLG: - { -Index: uiconfig/swriter/menubar/menubar.xml -=================================================================== -RCS file: /cvs/sw/sw/uiconfig/swriter/menubar/menubar.xml,v -retrieving revision 1.28 -diff -u -r1.28 menubar.xml ---- openoffice.org.orig/sw/uiconfig/swriter/menubar/menubar.xml 29 May 2007 14:49:53 -0000 1.28 -+++ openoffice.org/sw/uiconfig/swriter/menubar/menubar.xml 10 Jul 2007 13:13:00 -0000 -@@ -217,6 +217,7 @@ - - - -+ - - - -Index: util/makefile.mk -=================================================================== -RCS file: /cvs/sw/sw/util/makefile.mk,v -retrieving revision 1.61 -diff -u -r1.61 makefile.mk ---- openoffice.org.orig/sw/util/makefile.mk 22 May 2007 16:41:25 -0000 1.61 -+++ openoffice.org/sw/util/makefile.mk 10 Jul 2007 13:13:05 -0000 -@@ -263,6 +263,7 @@ - $(SLO)$/instable.obj \ - $(SLO)$/insrule.obj \ - $(SLO)$/javaedit.obj \ -+ $(SLO)$/titlepage.obj \ - $(SLO)$/linenum.obj \ - $(SLO)$/mailmrge.obj \ - $(SLO)$/multmrk.obj \ -diff -ru openoffice.org/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu openoffice.org/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu ---- openoffice.org.orig/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu 2007-07-10 14:35:38.000000000 +0100 -+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu 2007-07-09 12:03:44.000000000 +0100 -@@ -802,6 +802,11 @@ - ~Page... - - -+ -+ -+ Title Page... -+ -+ - - - Co~lumns... ---- /dev/null 2008-10-28 16:28:18.200260089 +0000 -+++ openoffice.org.orig/sw/source/ui/inc/titlepage.hxx 2008-11-13 12:48:59.000000000 +0000 -@@ -0,0 +1,129 @@ -+/************************************************************************* -+ * -+ * OpenOffice.org - a multi-platform office productivity suite -+ * -+ * $RCSfile$ -+ * -+ * $Revision$ -+ * -+ * last change: $Author$ $Date$ -+ * -+ * The Contents of this file are made available subject to -+ * the terms of GNU Lesser General Public License Version 2.1. -+ * -+ * -+ * GNU Lesser General Public License Version 2.1 -+ * ============================================= -+ * Copyright 2005 by Sun Microsystems, Inc. -+ * 901 San Antonio Road, Palo Alto, CA 94303, USA -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License version 2.1, as published by the Free Software Foundation. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ ************************************************************************/ -+#ifndef _SWTITLEPAGE_HXX -+#define _SWTITLEPAGE_HXX -+ -+#ifndef _BASEDLGS_HXX //autogen -+#include -+#endif -+ -+#ifndef _SFXTABDLG_HXX //autogen -+#include -+#endif -+ -+#ifndef _SV_FIXED_HXX //autogen -+#include -+#endif -+ -+#ifndef _SV_FIELD_HXX //autogen -+#include -+#endif -+#ifndef _NUMBERINGTYPELISTBOX_HXX -+#include -+#endif -+ -+#ifndef _LSTBOX_HXX //autogen -+#include -+#endif -+ -+class Window; -+class SfxItemSet; -+class SwView; -+class SwWrtShell; -+class SwPageDesc; -+ -+/*-------------------------------------------------------------------- -+ Beschreibung: SingleTabDialog -+ --------------------------------------------------------------------*/ -+ -+class SwTitlePageDlg : public SfxModalDialog -+{ -+private: -+ FixedLine aMakeInsertFL; -+ RadioButton aUseExistingPagesRB; -+ RadioButton aInsertNewPagesRB; -+ FixedText aPageCountFT; -+ NumericField aPageCountNF; -+ FixedText aPagePagesFT; -+ -+ FixedText aPageStartFT; -+ RadioButton aDocumentStartRB; -+ RadioButton aPageStartRB; -+ NumericField aPageStartNF; -+ -+ FixedLine aNumberingFL; -+ CheckBox aRestartNumberingCB; -+ FixedText aRestartNumberingFT; -+ NumericField aRestartNumberingNF; -+ CheckBox aSetPageNumberCB; -+ FixedText aSetPageNumberFT; -+ NumericField aSetPageNumberNF; -+ -+ FixedLine aPagePropertiesFL; -+ ListBox aPagePropertiesLB; -+ PushButton aPagePropertiesPB; -+ -+ FixedLine aBottomFL; -+ OKButton aOkPB; -+ CancelButton aCancelPB; -+ HelpButton aHelpPB; -+ -+ SwWrtShell *mpSh; -+ -+ const SwFmtPageDesc *mpPageFmtDesc; -+ -+ SwPageDesc *mpTitleDesc; -+ const SwPageDesc *mpIndexDesc; -+ const SwPageDesc *mpNormalDesc; -+ -+ void FillList(); -+ -+ USHORT GetInsertPosition() const; -+ -+ DECL_LINK( OKHdl, Button * ); -+ DECL_LINK( EditHdl, Button * ); -+ DECL_LINK( RestartNumberingHdl, CheckBox* ); -+ DECL_LINK( SetPageNumberHdl, CheckBox* ); -+ DECL_LINK( UpHdl, NumericField * ); -+ DECL_LINK( DownHdl, NumericField * ); -+ DECL_LINK( StartPageHdl, RadioButton * ); -+public: -+ SwTitlePageDlg( Window *pParent ); -+ ~SwTitlePageDlg(); -+}; -+ -+#endif -+ -+/* vi:set tabstop=4 shiftwidth=4 expandtab: */ ---- /dev/null 2008-10-28 16:28:18.200260089 +0000 -+++ openoffice.org/sw/source/ui/misc/titlepage.src 2008-11-13 12:03:28.000000000 +0000 -@@ -0,0 +1,260 @@ -+/************************************************************************* -+ * -+ * OpenOffice.org - a multi-platform office productivity suite -+ * -+ * $RCSfile$ -+ * -+ * $Revision$ -+ * -+ * last change: $Author$ $Date$ -+ * -+ * The Contents of this file are made available subject to -+ * the terms of GNU Lesser General Public License Version 2.1. -+ * -+ * -+ * GNU Lesser General Public License Version 2.1 -+ * ============================================= -+ * Copyright 2005 by Sun Microsystems, Inc. -+ * 901 San Antonio Road, Palo Alto, CA 94303, USA -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License version 2.1, as published by the Free Software Foundation. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ ************************************************************************/ -+/* StarView ressource file */ -+ -+#ifndef _SFX_HRC -+#include -+#endif -+#ifndef _SVX_DIALOGS_HRC -+#include -+#endif -+#include "globals.hrc" -+#include "misc.hrc" -+#include "titlepage.hrc" -+#include "helpid.h" -+/**************************************************************************/ -+/* */ -+/**************************************************************************/ -+ModalDialog DLG_TITLEPAGE -+{ -+ HelpID = HID_TITLEPAGE ; -+ OutputSize = TRUE ; -+ SVLook = TRUE ; -+ Size = MAP_APPFONT ( 216 , 201 ) ; -+ Text [ en-US ] = "Title Pages" ; -+ Moveable = TRUE ; -+ -+ FixedLine FL_MAKEINSERT -+ { -+ Pos = MAP_APPFONT ( 6 , 5 ) ; -+ Size = MAP_APPFONT ( 204 , 8 ) ; -+ Text [ en-US ] = "Make Title Pages" ; -+ Text [ x-comment ] = " "; -+ }; -+ RadioButton RB_USE_EXISTING_PAGES -+ { -+ Pos = MAP_APPFONT ( 12 , 18 ) ; -+ Size = MAP_APPFONT ( 150 , 10 ) ; -+ Text [ en-US ] = "Convert existing pages to title pages" ; -+ TabStop = TRUE ; -+ Check = TRUE ; -+ Text [ x-comment ] = " "; -+ }; -+ RadioButton RB_INSERT_NEW_PAGES -+ { -+ Pos = MAP_APPFONT ( 12 , 34 ) ; -+ Size = MAP_APPFONT ( 150 , 10 ) ; -+ Text [ en-US ] = "Insert new title pages" ; -+ Text [ x-comment ] = " "; -+ }; -+ FixedText FT_PAGE_COUNT -+ { -+ Pos = MAP_APPFONT ( 12 , 50 ) ; -+ Size = MAP_APPFONT ( 80 , 8 ) ; -+ Text [ en-US ] = "Number of title pages" ; -+ Text [ x-comment ] = " "; -+ }; -+ NumericField NF_PAGE_COUNT -+ { -+ Pos = MAP_APPFONT ( 80 , 50 ) ; -+ Size = MAP_APPFONT ( 30 , 12 ) ; -+ Border = TRUE ; -+ TabStop = TRUE ; -+ Left = TRUE ; -+ Repeat = TRUE ; -+ Spin = TRUE ; -+ Minimum = 1 ; -+ Maximum = 65535; -+ First = 1 ; -+ Last = 65535; -+ SpinSize = 1 ; -+ }; -+ FixedText FT_PAGE_PAGES -+ { -+ Pos = MAP_APPFONT ( 116 , 50 ) ; -+ Size = MAP_APPFONT ( 80 , 10 ) ; -+ Text [ en-US ] = "pages" ; -+ Text [ x-comment ] = " "; -+ }; -+ FixedText FT_PAGE_START -+ { -+ Pos = MAP_APPFONT ( 12 , 66 ) ; -+ Size = MAP_APPFONT ( 58 , 8 ) ; -+ Text [ en-US ] = "Place title pages at" ; -+ Text [ x-comment ] = " "; -+ }; -+ RadioButton RB_DOCUMENT_START -+ { -+ Pos = MAP_APPFONT ( 70 , 66 ) ; -+ Size = MAP_APPFONT ( 80 , 10 ) ; -+ Text [ en-US ] = "Document Start" ; -+ TabStop = TRUE ; -+ Check = TRUE ; -+ Text [ x-comment ] = " "; -+ }; -+ RadioButton RB_PAGE_START -+ { -+ Pos = MAP_APPFONT ( 70 , 78 ) ; -+ Size = MAP_APPFONT ( 30 , 10 ) ; -+ Text [ en-US ] = "Page" ; -+ Text [ x-comment ] = " "; -+ }; -+ NumericField NF_PAGE_START -+ { -+ Pos = MAP_APPFONT ( 95 , 78 ) ; -+ Size = MAP_APPFONT ( 30 , 12 ) ; -+ Border = TRUE ; -+ TabStop = TRUE ; -+ Left = TRUE ; -+ Repeat = TRUE ; -+ Spin = TRUE ; -+ Minimum = 1 ; -+ Maximum = 65535; -+ First = 1 ; -+ Last = 65535; -+ SpinSize = 1 ; -+ }; -+ FixedLine FL_NUMBERING -+ { -+ Pos = MAP_APPFONT ( 6 , 98 ) ; -+ Size = MAP_APPFONT ( 204 , 8 ) ; -+ Text [ en-US ] = "Page Numbering" ; -+ Text [ x-comment ] = " "; -+ }; -+ CheckBox CB_RESTART_NUMBERING -+ { -+ Pos = MAP_APPFONT ( 12, 111 ) ; -+ Size = MAP_APPFONT ( 150 , 10 ) ; -+ TabStop = TRUE ; -+ Text [ en-US ] = "Reset Page Numbering after title pages" ; -+ Text [ x-comment ] = " "; -+ }; -+ FixedText FT_RESTART_NUMBERING -+ { -+ Pos = MAP_APPFONT ( 140 , 111 ) ; -+ Size = MAP_APPFONT ( 50 , 10 ) ; -+ Text [ en-US ] = "Page Number" ; -+ Text [ x-comment ] = " "; -+ }; -+ NumericField NF_RESTART_NUMBERING -+ { -+ Pos = MAP_APPFONT ( 180 , 111 ) ; -+ Size = MAP_APPFONT ( 30 , 12 ) ; -+ Border = TRUE ; -+ TabStop = TRUE ; -+ Left = TRUE ; -+ Repeat = TRUE ; -+ Spin = TRUE ; -+ Minimum = 1 ; -+ Maximum = 65535; -+ First = 1 ; -+ Last = 65535; -+ SpinSize = 1 ; -+ }; -+ CheckBox CB_SET_PAGE_NUMBER -+ { -+ Pos = MAP_APPFONT ( 12 , 125 ) ; -+ Size = MAP_APPFONT ( 150 , 10 ) ; -+ TabStop = TRUE ; -+ Text [ en-US ] = "Set Page Number for first title page" ; -+ Text [ x-comment ] = " "; -+ }; -+ FixedText FT_SET_PAGE_NUMBER -+ { -+ Pos = MAP_APPFONT ( 140 , 125 ) ; -+ Size = MAP_APPFONT ( 50 , 10 ) ; -+ Text [ en-US ] = "Page Number" ; -+ Text [ x-comment ] = " "; -+ }; -+ NumericField NF_SET_PAGE_NUMBER -+ { -+ Pos = MAP_APPFONT ( 180 , 125 ) ; -+ Size = MAP_APPFONT ( 30 , 12 ) ; -+ Border = TRUE ; -+ TabStop = TRUE ; -+ Left = TRUE ; -+ Repeat = TRUE ; -+ Spin = TRUE ; -+ Minimum = 1 ; -+ Maximum = 65535; -+ First = 1 ; -+ Last = 65535; -+ SpinSize = 1 ; -+ }; -+ FixedLine FL_PAGE_PROPERTIES -+ { -+ Pos = MAP_APPFONT ( 6 , 141 ) ; -+ Size = MAP_APPFONT ( 204 , 8 ) ; -+ Text [ en-US ] = "Edit Page Properties" ; -+ Text [ x-comment ] = " "; -+ }; -+ ListBox LB_PAGE_PROPERTIES -+ { -+ Border = TRUE ; -+ Pos = MAP_APPFONT ( 12 , 154 ) ; -+ Size = MAP_APPFONT ( 150 , 80 ) ; -+ TabStop = TRUE ; -+ DropDown = TRUE ; -+ CurPos = 0 ; -+ }; -+ PushButton PB_PAGE_PROPERTIES -+ { -+ Pos = MAP_APPFONT ( 170 , 154 ) ; -+ Size = MAP_APPFONT ( 30 , 12 ) ; -+ Text [ en-US ] = "Edit..." ; -+ }; -+ FixedLine FL_BOTTOM -+ { -+ Pos = MAP_APPFONT ( 6 , 170 ) ; -+ Size = MAP_APPFONT ( 204 , 8 ) ; -+ }; -+ OKButton PB_OK -+ { -+ Pos = MAP_APPFONT ( 54 , 181 ) ; -+ Size = MAP_APPFONT ( 50 , 14 ) ; -+ DefButton = TRUE ; -+ }; -+ CancelButton PB_CANCEL -+ { -+ Pos = MAP_APPFONT ( 107 , 181 ) ; -+ Size = MAP_APPFONT ( 50 , 14 ) ; -+ DefButton = TRUE ; -+ }; -+ HelpButton PB_HELP -+ { -+ Pos = MAP_APPFONT ( 160 , 181 ) ; -+ Size = MAP_APPFONT ( 50 , 14 ) ; -+ }; -+}; ---- /dev/null 2008-10-28 16:28:18.200260089 +0000 -+++ openoffice.org/sw/source/ui/misc/titlepage.cxx 2008-11-13 12:58:11.000000000 +0000 -@@ -0,0 +1,375 @@ -+/************************************************************************* -+ * -+ * OpenOffice.org - a multi-platform office productivity suite -+ * -+ * $RCSfile$ -+ * -+ * $Revision$ -+ * -+ * last change: $Author$ $Date$ -+ * -+ * The Contents of this file are made available subject to -+ * the terms of GNU Lesser General Public License Version 2.1. -+ * -+ * -+ * GNU Lesser General Public License Version 2.1 -+ * ============================================= -+ * Copyright 2005 by Sun Microsystems, Inc. -+ * 901 San Antonio Road, Palo Alto, CA 94303, USA -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License version 2.1, as published by the Free Software Foundation. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ ************************************************************************/ -+ -+// MARKER(update_precomp.py): autogen include statement, do not remove -+#include "precompiled_sw.hxx" -+ -+#ifdef SW_DLLIMPLEMENTATION -+#undef SW_DLLIMPLEMENTATION -+#endif -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "fldbas.hxx" -+#include "lineinfo.hxx" -+#include "globals.hrc" -+#include "titlepage.hrc" -+#include "titlepage.hxx" -+#include "uitool.hxx" -+#include "fmtpdsc.hxx" -+#include "pagedesc.hxx" -+ -+#include -+ -+namespace -+{ -+ bool lcl_GetPageDesc(SwWrtShell *pSh, USHORT &rPageNo, const SwFmtPageDesc **ppPageFmtDesc) -+ { -+ bool bRet = false; -+ SfxItemSet aSet( pSh->GetAttrPool(), RES_PAGEDESC, RES_PAGEDESC ); -+ if (pSh->GetCurAttr( aSet )) -+ { -+ const SfxPoolItem* pItem(0); -+ if (SFX_ITEM_SET == aSet.GetItemState( RES_PAGEDESC, TRUE, &pItem ) && pItem) -+ { -+ rPageNo = ((const SwFmtPageDesc *)pItem)->GetNumOffset(); -+ if (ppPageFmtDesc) -+ (*ppPageFmtDesc) = (const SwFmtPageDesc *)(pItem->Clone()); -+ bRet = true; -+ } -+ } -+ return bRet; -+ } -+ -+ bool lcl_SkipNPages(SwWrtShell *pSh, USHORT nNoPages) -+ { -+ bool bAllOk = true; -+ for (USHORT nI = 0; nI < nNoPages && bAllOk; ++nI) -+ bAllOk = pSh->SttNxtPg(); -+ return bAllOk; -+ } -+ -+ void lcl_ChangePage(SwWrtShell *pSh, USHORT nNewNumber, -+ const SwPageDesc *pNewDesc) -+ { -+ const USHORT nCurIdx = pSh->GetCurPageDesc(); -+ const SwPageDesc &rCurrentDesc = pSh->GetPageDesc( nCurIdx ); -+ -+ const SwFmtPageDesc *pPageFmtDesc(0); -+ USHORT nDontCare; -+ lcl_GetPageDesc(pSh, nDontCare, &pPageFmtDesc); -+ -+ //If we want a new number then set it, otherwise reuse the existing one -+ USHORT nPgNo = nNewNumber ? -+ nNewNumber : ( pPageFmtDesc ? pPageFmtDesc->GetNumOffset() : 0 ); -+ -+ //If we want a new descriptior then set it, otherwise reuse the existing one -+ if (!pNewDesc) -+ { -+ SwFmtPageDesc aPageFmtDesc(pPageFmtDesc ? *pPageFmtDesc : &rCurrentDesc); -+ if (nPgNo) aPageFmtDesc.SetNumOffset(nPgNo); -+ pSh->SetAttr(aPageFmtDesc); -+ } -+ else -+ { -+ SwFmtPageDesc aPageFmtDesc(pNewDesc); -+ if (nPgNo) aPageFmtDesc.SetNumOffset(nPgNo); -+ pSh->SetAttr(aPageFmtDesc); -+ } -+ -+ delete pPageFmtDesc; -+ } -+ -+ void lcl_PushCursor(SwWrtShell *pSh) -+ { -+ pSh->LockView( TRUE ); -+ pSh->StartAllAction(); -+ pSh->SwCrsrShell::Push(); -+ } -+ -+ void lcl_PopCursor(SwWrtShell *pSh) -+ { -+ pSh->SwCrsrShell::Pop( FALSE ); -+ pSh->EndAllAction(); -+ pSh->LockView( FALSE ); -+ } -+ -+ USHORT lcl_GetCurrentPage(SwWrtShell *pSh) -+ { -+ String sDummy; -+ USHORT nPhyNum=1, nVirtNum=1; -+ pSh->GetPageNumber(0, true, nPhyNum, nVirtNum, sDummy); -+ return nPhyNum; -+ } -+} -+ -+/* -+ * Only include the Index page in the list if the page count implies one -+ * to reduce confusing things -+ */ -+void SwTitlePageDlg::FillList() -+{ -+ USHORT nTitlePages = aPageCountNF.GetValue(); -+ aPagePropertiesLB.Clear(); -+ if (mpTitleDesc) -+ aPagePropertiesLB.InsertEntry(mpTitleDesc->GetName()); -+ if (nTitlePages > 1 && mpIndexDesc) -+ aPagePropertiesLB.InsertEntry(mpIndexDesc->GetName()); -+ if (mpNormalDesc) -+ aPagePropertiesLB.InsertEntry(mpNormalDesc->GetName()); -+ aPagePropertiesLB.SelectEntryPos(0); -+} -+ -+/*-------------------------------------------------------------------- -+ Beschreibung: -+ --------------------------------------------------------------------*/ -+ -+USHORT SwTitlePageDlg::GetInsertPosition() const -+{ -+ USHORT nPage = 1; -+ if (aPageStartNF.IsEnabled()) -+ nPage = aPageStartNF.GetValue(); -+ return nPage; -+} -+ -+SwTitlePageDlg::SwTitlePageDlg( Window *pParent ) : -+ SfxModalDialog( pParent, SW_RES(DLG_TITLEPAGE) ), -+#pragma warning (disable : 4355) -+ aMakeInsertFL ( this, SW_RES( FL_MAKEINSERT )), -+ aUseExistingPagesRB ( this, SW_RES( RB_USE_EXISTING_PAGES )), -+ aInsertNewPagesRB ( this, SW_RES( RB_INSERT_NEW_PAGES )), -+ aPageCountFT ( this, SW_RES( FT_PAGE_COUNT )), -+ aPageCountNF ( this, SW_RES( NF_PAGE_COUNT )), -+ aPagePagesFT ( this, SW_RES( FT_PAGE_PAGES )), -+ aPageStartFT ( this, SW_RES( FT_PAGE_START )), -+ aDocumentStartRB ( this, SW_RES( RB_DOCUMENT_START )), -+ aPageStartRB ( this, SW_RES( RB_PAGE_START )), -+ aPageStartNF ( this, SW_RES( NF_PAGE_START )), -+ aNumberingFL ( this, SW_RES( FL_NUMBERING )), -+ aRestartNumberingCB ( this, SW_RES( CB_RESTART_NUMBERING )), -+ aRestartNumberingFT ( this, SW_RES( FT_RESTART_NUMBERING )), -+ aRestartNumberingNF ( this, SW_RES( NF_RESTART_NUMBERING )), -+ aSetPageNumberCB ( this, SW_RES( CB_SET_PAGE_NUMBER )), -+ aSetPageNumberFT ( this, SW_RES( FT_SET_PAGE_NUMBER )), -+ aSetPageNumberNF ( this, SW_RES( NF_SET_PAGE_NUMBER )), -+ aPagePropertiesFL ( this, SW_RES( FL_PAGE_PROPERTIES )), -+ aPagePropertiesLB ( this, SW_RES( LB_PAGE_PROPERTIES )), -+ aPagePropertiesPB ( this, SW_RES( PB_PAGE_PROPERTIES )), -+ aBottomFL ( this, SW_RES( FL_BOTTOM )), -+ aOkPB ( this, SW_RES( PB_OK )), -+ aCancelPB ( this, SW_RES( PB_CANCEL )), -+ aHelpPB ( this, SW_RES( PB_HELP )), -+ mpPageFmtDesc (0) -+#pragma warning (default : 4355) -+{ -+ FreeResource(); -+ -+ aOkPB.SetClickHdl(LINK(this, SwTitlePageDlg, OKHdl)); -+ aRestartNumberingCB.SetClickHdl(LINK(this, SwTitlePageDlg, RestartNumberingHdl)); -+ aSetPageNumberCB.SetClickHdl(LINK(this, SwTitlePageDlg, SetPageNumberHdl)); -+ -+ USHORT nSetPage = 1; -+ USHORT nResetPage = 1; -+ USHORT nTitlePages = 1; -+ mpSh = ::GetActiveView()->GetWrtShellPtr(); -+ lcl_PushCursor(mpSh); -+ -+ SwView& rView = mpSh->GetView(); -+ rView.InvalidateRulerPos(); -+ -+ bool bMaybeResetNumbering = false; -+ -+ mpTitleDesc = mpSh->GetPageDescFromPool(RES_POOLPAGE_FIRST); -+ mpIndexDesc = mpSh->GetPageDescFromPool(RES_POOLPAGE_REGISTER); -+ mpNormalDesc = mpSh->GetPageDescFromPool(RES_POOLPAGE_STANDARD); -+ -+ mpSh->SttDoc(); -+ if (lcl_GetPageDesc( mpSh, nSetPage, &mpPageFmtDesc )) -+ { -+ if (mpPageFmtDesc->GetPageDesc() == mpTitleDesc) -+ { -+ while (mpSh->SttNxtPg()) -+ { -+ const USHORT nCurIdx = mpSh->GetCurPageDesc(); -+ const SwPageDesc &rPageDesc = mpSh->GetPageDesc( nCurIdx ); -+ -+ if (mpIndexDesc != &rPageDesc) -+ { -+ mpNormalDesc = &rPageDesc; -+ bMaybeResetNumbering = lcl_GetPageDesc(mpSh, nResetPage, NULL); -+ break; -+ } -+ ++nTitlePages; -+ } -+ } -+ } -+ lcl_PopCursor(mpSh); -+ -+ aUseExistingPagesRB.Check(); -+ aPageCountNF.SetValue(nTitlePages); -+ aPageCountNF.SetUpHdl(LINK(this, SwTitlePageDlg, UpHdl)); -+ aPageCountNF.SetDownHdl(LINK(this, SwTitlePageDlg, DownHdl)); -+ -+ aDocumentStartRB.Check(); -+ aPageStartNF.Enable(false); -+ aPageStartNF.SetValue(lcl_GetCurrentPage(mpSh)); -+ Link aStartPageHdl = LINK(this, SwTitlePageDlg, StartPageHdl); -+ aDocumentStartRB.SetClickHdl(aStartPageHdl); -+ aPageStartRB.SetClickHdl(aStartPageHdl); -+ -+ if (bMaybeResetNumbering && nResetPage > 0) -+ { -+ aRestartNumberingCB.Check(); -+ aRestartNumberingNF.SetValue(nResetPage); -+ } -+ aRestartNumberingNF.Enable(aRestartNumberingCB.IsChecked()); -+ -+ aSetPageNumberNF.SetValue(nSetPage); -+ if (nSetPage > 1) -+ aSetPageNumberCB.Check(); -+ aSetPageNumberNF.Enable(aSetPageNumberCB.IsChecked()); -+ -+ FillList(); -+ aPagePropertiesPB.SetClickHdl(LINK(this, SwTitlePageDlg, EditHdl)); -+} -+ -+IMPL_LINK(SwTitlePageDlg, UpHdl, NumericField *, EMPTYARG) -+{ -+ if (aPageCountNF.GetValue() == 2) -+ FillList(); -+ return 0; -+} -+ -+IMPL_LINK(SwTitlePageDlg, DownHdl, NumericField *, EMPTYARG) -+{ -+ if (aPageCountNF.GetValue() == 1) -+ FillList(); -+ return 0; -+} -+ -+IMPL_LINK(SwTitlePageDlg, RestartNumberingHdl, CheckBox*, EMPTYARG) -+{ -+ aRestartNumberingNF.Enable(aRestartNumberingCB.IsChecked()); -+ return 0; -+} -+ -+IMPL_LINK(SwTitlePageDlg, SetPageNumberHdl, CheckBox*, EMPTYARG) -+{ -+ aSetPageNumberNF.Enable(aSetPageNumberCB.IsChecked()); -+ return 0; -+} -+ -+IMPL_LINK(SwTitlePageDlg, StartPageHdl, RadioButton*, EMPTYARG) -+{ -+ aPageStartNF.Enable(aPageStartRB.IsChecked()); -+ return 0; -+} -+ -+__EXPORT SwTitlePageDlg::~SwTitlePageDlg() -+{ -+ delete mpPageFmtDesc; -+} -+ -+IMPL_LINK( SwTitlePageDlg, EditHdl, Button *, /*pBtn*/ ) -+{ -+ SwView& rView = mpSh->GetView(); -+ rView.GetDocShell()->FormatPage(aPagePropertiesLB.GetSelectEntry(), false, mpSh); -+ rView.InvalidateRulerPos(); -+ -+ return 0; -+} -+ -+IMPL_LINK( SwTitlePageDlg, OKHdl, Button *, /*pBtn*/ ) -+{ -+ lcl_PushCursor(mpSh); -+ -+ mpSh->StartUndo(); -+ -+ SwFmtPageDesc aTitleDesc(mpTitleDesc); -+ -+ if (aSetPageNumberCB.IsChecked()) -+ aTitleDesc.SetNumOffset(aSetPageNumberNF.GetValue()); -+ else if (mpPageFmtDesc) -+ aTitleDesc.SetNumOffset(mpPageFmtDesc->GetNumOffset()); -+ -+ USHORT nNoPages = aPageCountNF.GetValue(); -+ if (!aUseExistingPagesRB.IsChecked()) -+ { -+ mpSh->GotoPage(GetInsertPosition(), false); -+ for (USHORT nI=0; nI < nNoPages; ++nI) -+ mpSh->InsertPageBreak(); -+ } -+ -+ mpSh->GotoPage(GetInsertPosition(), false); -+ for (USHORT nI=1; nI < nNoPages; ++nI) -+ { -+ if (mpSh->SttNxtPg()) -+ lcl_ChangePage(mpSh, 0, mpIndexDesc); -+ } -+ -+ mpSh->GotoPage(GetInsertPosition(), false); -+ mpSh->SetAttr(aTitleDesc); -+ -+ if (nNoPages > 1 && mpSh->GotoPage(GetInsertPosition() + nNoPages, false)) -+ { -+ SwFmtPageDesc aPageFmtDesc(mpNormalDesc); -+ mpSh->SetAttr(aPageFmtDesc); -+ } -+ -+ if (aRestartNumberingCB.IsChecked() || nNoPages > 1) -+ { -+ USHORT nPgNo = aRestartNumberingCB.IsChecked() ? aRestartNumberingNF.GetValue() : 0; -+ const SwPageDesc *pNewDesc = nNoPages > 1 ? mpNormalDesc : 0; -+ mpSh->GotoPage(GetInsertPosition() + nNoPages, false); -+ lcl_ChangePage(mpSh, nPgNo, pNewDesc); -+ } -+ -+ mpSh->EndUndo(); -+ lcl_PopCursor(mpSh); -+ if (!aUseExistingPagesRB.IsChecked()) -+ mpSh->GotoPage(GetInsertPosition(), false); -+ EndDialog( RET_OK ); -+ return 0; -+} -+ -+/* vi:set tabstop=4 shiftwidth=4 expandtab: */ ---- /dev/null 2008-10-28 16:28:18.200260089 +0000 -+++ openoffice.org/sw/source/ui/misc/titlepage.hrc 2008-11-13 10:21:32.000000000 +0000 -@@ -0,0 +1,58 @@ -+/************************************************************************* -+ * -+ * OpenOffice.org - a multi-platform office productivity suite -+ * -+ * $RCSfile$ -+ * -+ * $Revision$ -+ * -+ * last change: $Author$ $Date$ -+ * -+ * The Contents of this file are made available subject to -+ * the terms of GNU Lesser General Public License Version 2.1. -+ * -+ * -+ * GNU Lesser General Public License Version 2.1 -+ * ============================================= -+ * Copyright 2005 by Sun Microsystems, Inc. -+ * 901 San Antonio Road, Palo Alto, CA 94303, USA -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License version 2.1, as published by the Free Software Foundation. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ ************************************************************************/ -+#define FL_MAKEINSERT 1 -+#define RB_USE_EXISTING_PAGES 2 -+#define RB_INSERT_NEW_PAGES 3 -+#define FT_PAGE_COUNT 4 -+#define NF_PAGE_COUNT 5 -+#define FT_PAGE_PAGES 6 -+#define FT_PAGE_START 7 -+#define RB_DOCUMENT_START 8 -+#define RB_PAGE_START 9 -+#define NF_PAGE_START 10 -+#define FL_NUMBERING 11 -+#define CB_RESTART_NUMBERING 12 -+#define FT_RESTART_NUMBERING 13 -+#define NF_RESTART_NUMBERING 14 -+#define CB_SET_PAGE_NUMBER 15 -+#define FT_SET_PAGE_NUMBER 16 -+#define NF_SET_PAGE_NUMBER 17 -+#define FL_PAGE_PROPERTIES 18 -+#define LB_PAGE_PROPERTIES 19 -+#define PB_PAGE_PROPERTIES 20 -+#define FL_BOTTOM 21 -+#define PB_OK 22 -+#define PB_CANCEL 23 -+#define PB_HELP 24 diff --git a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch index 82ebb2d..5dabc48 100644 --- a/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch +++ b/openoffice.org-3.0.0.ooo88341.sc.verticalboxes.patch @@ -20,7 +20,7 @@ retrieving revision 1.54.216.1 diff -u -r1.54.216.1 output2.cxx --- openoffice.org.orig/sc/source/ui/view/output2.cxx 18 Jan 2008 12:02:36 -0000 1.54.216.1 +++ openoffice.org/sc/source/ui/view/output2.cxx 16 Apr 2008 12:19:34 -0000 -@@ -2378,6 +2378,22 @@ +@@ -2369,6 +2369,22 @@ } @@ -43,7 +43,7 @@ diff -u -r1.54.216.1 output2.cxx void ScOutputData::DrawEdit(BOOL bPixelToLogic) { vcl::PDFExtOutDevData* pPDFData = PTR_CAST( vcl::PDFExtOutDevData, pDev->GetExtOutDevData() ); -@@ -2892,13 +2908,8 @@ +@@ -2878,13 +2894,8 @@ (ScMergeAttr*)&pPattern->GetItem(ATTR_MERGE); BOOL bMerged = pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1; @@ -59,26 +59,27 @@ diff -u -r1.54.216.1 output2.cxx bClip = TRUE; else bSimClip = TRUE; -@@ -2948,6 +2959,18 @@ - #endif +@@ -2920,6 +2931,19 @@ + } Rectangle aLogicClip; + if ( -+ ((nAttrRotate == 9000) || (nAttrRotate == 27000)) && -+ (!(aAlignParam.meOrient==SVX_ORIENTATION_STANDARD && !aAlignParam.mbAsianVertical)) && -+ (!(bClip || bSimClip)) -+ ) -+ { -+ if (UseNormalClip(nCellY, pCondSet)) -+ bClip = TRUE; -+ else -+ bSimClip = TRUE; -+ } ++ ((nAttrRotate == 9000) || (nAttrRotate == 27000)) && ++ (!(aAlignParam.meOrient==SVX_ORIENTATION_STANDARD && ++ !aAlignParam.mbAsianVertical)) && ++ (!(bClip || bSimClip)) ++ ) ++ { ++ if (UseNormalClip(nCellY, pCondSet)) ++ bClip = TRUE; ++ else ++ bSimClip = TRUE; ++ } + if (bClip || bSimClip) { // Clip marks are already handled in GetOutputArea -@@ -3776,11 +3799,21 @@ +@@ -3734,11 +3758,21 @@ else { // bei gedrehtem Text ist Standard zentriert diff --git a/openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch b/openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch index b01288d..d1f7e01 100644 --- a/openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch +++ b/openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch @@ -955,7 +955,7 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeImportHelper.cxx sc/source/filte diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml/XMLTableShapeResizer.cxx --- sc.orig/source/filter/xml/XMLTableShapeResizer.cxx 2009-06-04 12:39:13.000000000 +0100 +++ sc/source/filter/xml/XMLTableShapeResizer.cxx 2009-06-04 15:27:39.000000000 +0100 -@@ -51,38 +51,38 @@ +@@ -49,38 +49,38 @@ using ::std::vector; using ::rtl::OUString; @@ -963,7 +963,7 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml +ScMyOLEFixer::ScMyOLEFixer(ScXMLImport& rTempImport) : rImport(rTempImport), aShapes(), - pCollection(NULL) + pCollection(NULL) { } @@ -975,13 +975,13 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml -sal_Bool ScMyShapeResizer::IsOLE(uno::Reference< drawing::XShape >& rShape) const +sal_Bool ScMyOLEFixer::IsOLE(uno::Reference< drawing::XShape >& rShape) { - return rShape->getShapeType().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OLE2Shape"))); + return rShape->getShapeType().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.OLE2Shape"))); } -void ScMyShapeResizer::CreateChartListener(ScDocument* pDoc, +void ScMyOLEFixer::CreateChartListener(ScDocument* pDoc, - const rtl::OUString& rName, -- const rtl::OUString* pRangeList) + const rtl::OUString& rName, +- const rtl::OUString* pRangeList) + const rtl::OUString& rRangeList) { - if (!pDoc || !pRangeList) @@ -1003,27 +1003,29 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml if (!aRangeStr.getLength()) { pDoc->AddOLEObjectToCollection(rName); -@@ -112,271 +112,45 @@ +@@ -116,272 +116,45 @@ } } -void ScMyShapeResizer::AddShape(uno::Reference & rShape, -- rtl::OUString* pRangeList, -- table::CellAddress& rStartAddress, table::CellAddress& rEndAddress, -- sal_Int32 nEndX, sal_Int32 nEndY) +- rtl::OUString* pRangeList, +- table::CellAddress& rStartAddress, table::CellAddress& rEndAddress, +- sal_Int32 nEndX, sal_Int32 nEndY) +void ScMyOLEFixer::AddOLE(uno::Reference & rShape, -+ const rtl::OUString &rRangeList) ++ const rtl::OUString &rRangeList) { -- ScMyToResizeShape aShape; -+ ScMyToFixupOLE aShape; - aShape.xShape.set(rShape); -- aShape.pRangeList = pRangeList; -- aShape.aEndCell = rEndAddress; -- aShape.aStartCell = rStartAddress; -- aShape.nEndY = nEndY; -- aShape.nEndX = nEndX; -+ aShape.sRangeList = rRangeList; - aShapes.push_back(aShape); +- ScMyToResizeShape aShape; +- aShape.xShape.set(rShape); +- aShape.pRangeList = pRangeList; +- aShape.aEndCell = rEndAddress; +- aShape.aStartCell = rStartAddress; +- aShape.nEndY = nEndY; +- aShape.nEndX = nEndX; +- aShapes.push_back(aShape); ++ ScMyToFixupOLE aShape; ++ aShape.xShape.set(rShape); ++ aShape.sRangeList = rRangeList; ++ aShapes.push_back(aShape); } -void ScMyShapeResizer::GetNewShapeSizePos(ScDocument* pDoc, const Rectangle& rStartRect, @@ -1031,124 +1033,124 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml - awt::Point& rPoint, awt::Size& rSize, - sal_Int32& rEndX, sal_Int32& rEndY) const -{ -- awt::Point aRefPoint; +- awt::Point aRefPoint; - BOOL bNegativePage(pDoc->IsNegativePage(rEndCell.Sheet)); - if (bNegativePage) - aRefPoint.X = rStartRect.Right(); - else -- aRefPoint.X = rStartRect.Left(); -- aRefPoint.Y = rStartRect.Top(); -- Rectangle aRect(pDoc->GetMMRect( -- static_cast(rEndCell.Column), static_cast(rEndCell.Row), -- static_cast(rEndCell.Column), static_cast(rEndCell.Row), rEndCell.Sheet )); +- aRefPoint.X = rStartRect.Left(); +- aRefPoint.Y = rStartRect.Top(); +- Rectangle aRect(pDoc->GetMMRect( +- static_cast(rEndCell.Column), static_cast(rEndCell.Row), +- static_cast(rEndCell.Column), static_cast(rEndCell.Row), rEndCell.Sheet )); - if (bNegativePage) - rEndX = -rEndX + aRect.Right(); - else -- rEndX += aRect.Left(); -- rEndY += aRect.Top(); -- rPoint.X += aRefPoint.X; +- rEndX += aRect.Left(); +- rEndY += aRect.Top(); +- rPoint.X += aRefPoint.X; - if (bNegativePage) - { -- if (rPoint.X < rStartRect.Left()) -- rPoint.X = rStartRect.Left() + 2; // increment by 2 100th_mm because the cellwidth is internal in twips +- if (rPoint.X < rStartRect.Left()) +- rPoint.X = rStartRect.Left() + 2; // increment by 2 100th_mm because the cellwidth is internal in twips - } - else - { -- if (rPoint.X > rStartRect.Right()) -- rPoint.X = rStartRect.Right() - 2; // decrement by 2 100th_mm because the cellwidth is internal in twips +- if (rPoint.X > rStartRect.Right()) +- rPoint.X = rStartRect.Right() - 2; // decrement by 2 100th_mm because the cellwidth is internal in twips - } -- rPoint.Y += aRefPoint.Y; -- if (rPoint.Y > rStartRect.Bottom()) -- rPoint.Y = rStartRect.Bottom() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips +- rPoint.Y += aRefPoint.Y; +- if (rPoint.Y > rStartRect.Bottom()) +- rPoint.Y = rStartRect.Bottom() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips - if (bNegativePage) - { - rSize.Width = -(rEndX - rPoint.X); - } - else -- rSize.Width = rEndX - rPoint.X; -- rSize.Height = rEndY - rPoint.Y; +- rSize.Width = rEndX - rPoint.X; +- rSize.Height = rEndY - rPoint.Y; -} - -void ScMyShapeResizer::ResizeShapes() -+void ScMyOLEFixer::FixupOLEs() ++void ScMyOLEFixer::FixupOLEs { - if (!aShapes.empty() && rImport.GetModel().is()) - { -- rtl::OUString sRowHeight(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLHGT)); - rtl::OUString sPersistName (RTL_CONSTASCII_USTRINGPARAM("PersistName")); -- rtl::OUString sCaptionPoint( RTL_CONSTASCII_USTRINGPARAM( "CaptionPoint" )); + if (!aShapes.empty() && rImport.GetModel().is()) + { +- rtl::OUString sRowHeight(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLHGT)); + rtl::OUString sPersistName (RTL_CONSTASCII_USTRINGPARAM("PersistName")); +- rtl::OUString sCaptionPoint( RTL_CONSTASCII_USTRINGPARAM( "CaptionPoint" )); - rtl::OUString sConnectorShape( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.ConnectorShape") ); - rtl::OUString sCaptionShape( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.CaptionShape") ); - rtl::OUString sStartShape(RTL_CONSTASCII_USTRINGPARAM("StartShape")); - rtl::OUString sEndShape(RTL_CONSTASCII_USTRINGPARAM("EndShape")); - rtl::OUString sStartPosition(RTL_CONSTASCII_USTRINGPARAM("StartPosition")); - rtl::OUString sEndPosition(RTL_CONSTASCII_USTRINGPARAM("EndPosition")); -- uno::Reference xTableRow; -- uno::Reference xSheet; -- uno::Reference xTableRows; -- sal_Int32 nOldRow(-1); -- sal_Int32 nOldSheet(-1); -- ScMyToResizeShapes::iterator aItr(aShapes.begin()); -- ScMyToResizeShapes::iterator aEndItr(aShapes.end()); -- uno::Reference xSpreadDoc( rImport.GetModel(), uno::UNO_QUERY ); -- if ( xSpreadDoc.is() ) -+ ScMyToFixupOLEs::iterator aItr(aShapes.begin()); -+ ScMyToFixupOLEs::iterator aEndItr(aShapes.end()); -+ ScDocument* pDoc(rImport.GetDocument()); +- uno::Reference xTableRow; +- uno::Reference xSheet; +- uno::Reference xTableRows; +- sal_Int32 nOldRow(-1); +- sal_Int32 nOldSheet(-1); +- ScMyToResizeShapes::iterator aItr(aShapes.begin()); +- ScMyToResizeShapes::iterator aEndItr(aShapes.end()); +- uno::Reference xSpreadDoc( rImport.GetModel(), uno::UNO_QUERY ); +- if ( xSpreadDoc.is() ) ++ ScMyToFixupOLEs::iterator aItr(aShapes.begin()); ++ ScMyToFixupOLEs::iterator aEndItr(aShapes.end()); ++ ScDocument* pDoc(rImport.GetDocument()); + -+ rImport.LockSolarMutex(); ++ rImport.LockSolarMutex(); + -+ while (aItr != aEndItr) - { -- uno::Reference xIndex( xSpreadDoc->getSheets(), uno::UNO_QUERY ); -- ScDocument* pDoc(rImport.GetDocument()); -- if ( pDoc && xIndex.is() ) ++ while (aItr != aEndItr) + { +- uno::Reference xIndex( xSpreadDoc->getSheets(), uno::UNO_QUERY ); +- ScDocument* pDoc(rImport.GetDocument()); +- if ( pDoc && xIndex.is() ) + // #i78086# also call CreateChartListener for invalid position (anchored to sheet) -+ if (!IsOLE(aItr->xShape)) ++ if (!IsOLE(aItr->xShape)) + DBG_ERROR("Only OLEs should be in here now"); + -+ if (IsOLE(aItr->xShape)) - { -- rImport.LockSolarMutex(); -- while (aItr != aEndItr) -- { ++ if (IsOLE(aItr->xShape)) + { +- rImport.LockSolarMutex(); +- while (aItr != aEndItr) +- { - // #i78086# invalid cell position is used to call CreateChartListener only - if ( aItr->aEndCell.Sheet >= 0 ) - { -- if ((nOldSheet != aItr->aEndCell.Sheet) || !xSheet.is()) -- { -- nOldSheet = aItr->aEndCell.Sheet; +- if ((nOldSheet != aItr->aEndCell.Sheet) || !xSheet.is()) +- { +- nOldSheet = aItr->aEndCell.Sheet; - xSheet.set(xIndex->getByIndex(nOldSheet), uno::UNO_QUERY); -- if (xSheet.is()) -- { -- uno::Reference xColumnRowRange (xSheet, uno::UNO_QUERY); -- if (xColumnRowRange.is()) -- xTableRows = xColumnRowRange->getRows(); -- } -- } -- if (xTableRows.is()) -- { -- if (nOldRow != aItr->aEndCell.Row || !xTableRow.is()) -- { -- nOldRow = aItr->aEndCell.Row; -- xTableRows->getByIndex(nOldRow) >>= xTableRow; -- } -- if (xTableRow.is()) -- { -- uno::Reference xRowProperties(xTableRow, uno::UNO_QUERY); -- if (xRowProperties.is()) -- { -- sal_Int32 nHeight; -- if (xRowProperties->getPropertyValue(sRowHeight) >>= nHeight) -- { -- Rectangle aRec = pDoc->GetMMRect(static_cast(aItr->aStartCell.Column), static_cast(aItr->aStartCell.Row), -- static_cast(aItr->aStartCell.Column), static_cast(aItr->aStartCell.Row), aItr->aStartCell.Sheet); -- awt::Point aPoint(aItr->xShape->getPosition()); -- awt::Size aSize(aItr->xShape->getSize()); +- if (xSheet.is()) +- { +- uno::Reference xColumnRowRange (xSheet, uno::UNO_QUERY); +- if (xColumnRowRange.is()) +- xTableRows = xColumnRowRange->getRows(); +- } +- } +- if (xTableRows.is()) +- { +- if (nOldRow != aItr->aEndCell.Row || !xTableRow.is()) +- { +- nOldRow = aItr->aEndCell.Row; +- xTableRows->getByIndex(nOldRow) >>= xTableRow; +- } +- if (xTableRow.is()) +- { +- uno::Reference xRowProperties(xTableRow, uno::UNO_QUERY); +- if (xRowProperties.is()) +- { +- sal_Int32 nHeight; +- if (xRowProperties->getPropertyValue(sRowHeight) >>= nHeight) +- { +- Rectangle aRec = pDoc->GetMMRect(static_cast(aItr->aStartCell.Column), static_cast(aItr->aStartCell.Row), +- static_cast(aItr->aStartCell.Column), static_cast(aItr->aStartCell.Row), aItr->aStartCell.Sheet); +- awt::Point aPoint(aItr->xShape->getPosition()); +- awt::Size aSize(aItr->xShape->getSize()); - if (pDoc->IsNegativePage(static_cast(nOldSheet))) - aPoint.X += aSize.Width; -- if (aItr->nEndY >= 0 && aItr->nEndX >= 0) -- { +- if (aItr->nEndY >= 0 && aItr->nEndX >= 0) +- { - if (aItr->xShape->getShapeType().equals(sConnectorShape)) - { - //#103122#; handle connected Connectorshapes @@ -1159,12 +1161,12 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml - uno::Reference xEndShape(xShapeProps->getPropertyValue( sEndShape ), uno::UNO_QUERY); - if (!xStartShape.is() && !xEndShape.is()) - { -- awt::Size aOldSize(aSize); +- awt::Size aOldSize(aSize); - GetNewShapeSizePos(pDoc, aRec, aItr->aEndCell, aPoint, aSize, aItr->nEndX, aItr->nEndY); -- aItr->xShape->setPosition(aPoint); -- if( (aSize.Width != aOldSize.Width) || -- (aSize.Height != aOldSize.Height) ) -- aItr->xShape->setSize(aSize); +- aItr->xShape->setPosition(aPoint); +- if( (aSize.Width != aOldSize.Width) || +- (aSize.Height != aOldSize.Height) ) +- aItr->xShape->setSize(aSize); - } - else if (xStartShape.is() && xEndShape.is()) - { @@ -1197,111 +1199,111 @@ diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml - } - else - { -- awt::Size aOldSize(aSize); +- awt::Size aOldSize(aSize); - GetNewShapeSizePos(pDoc, aRec, aItr->aEndCell, aPoint, aSize, aItr->nEndX, aItr->nEndY); - if (pDoc->IsNegativePage(static_cast(nOldSheet))) - aPoint.X -= aSize.Width; -- aItr->xShape->setPosition(aPoint); -- if( (aSize.Width != aOldSize.Width) || -- (aSize.Height != aOldSize.Height) ) -- aItr->xShape->setSize(aSize); +- aItr->xShape->setPosition(aPoint); +- if( (aSize.Width != aOldSize.Width) || +- (aSize.Height != aOldSize.Height) ) +- aItr->xShape->setSize(aSize); - } -- } -- else -- { -- if (aItr->xShape->getShapeType().equals(sCaptionShape)) -- { -- Rectangle aRectangle(aPoint.X, aPoint.Y, aPoint.X + aSize.Width, aPoint.Y + aSize.Height); +- } +- else +- { +- if (aItr->xShape->getShapeType().equals(sCaptionShape)) +- { +- Rectangle aRectangle(aPoint.X, aPoint.Y, aPoint.X + aSize.Width, aPoint.Y + aSize.Height); - -- awt::Point aCaptionPoint; -- uno::Reference< beans::XPropertySet > xShapeProps(aItr->xShape, uno::UNO_QUERY); -- if (xShapeProps.is()) -- { -- try -- { -- xShapeProps->getPropertyValue( sCaptionPoint ) >>= aCaptionPoint; -- } -- catch ( uno::Exception& ) -- { -- DBG_ERROR("This Captionshape has no CaptionPoint property."); -- } -- } -- Point aCorePoint(aPoint.X, aPoint.Y); -- Point aCoreCaptionPoint(aCaptionPoint.X, aCaptionPoint.Y); -- aCoreCaptionPoint += aCorePoint; -- aRectangle.Union(Rectangle(aCoreCaptionPoint, aCoreCaptionPoint)); +- awt::Point aCaptionPoint; +- uno::Reference< beans::XPropertySet > xShapeProps(aItr->xShape, uno::UNO_QUERY); +- if (xShapeProps.is()) +- { +- try +- { +- xShapeProps->getPropertyValue( sCaptionPoint ) >>= aCaptionPoint; +- } +- catch ( uno::Exception& ) +- { +- DBG_ERROR("This Captionshape has no CaptionPoint property."); +- } +- } +- Point aCorePoint(aPoint.X, aPoint.Y); +- Point aCoreCaptionPoint(aCaptionPoint.X, aCaptionPoint.Y); +- aCoreCaptionPoint += aCorePoint; +- aRectangle.Union(Rectangle(aCoreCaptionPoint, aCoreCaptionPoint)); - -- Point aBeforeRightBottomPoint(aRectangle.BottomRight()); +- Point aBeforeRightBottomPoint(aRectangle.BottomRight()); - -- aRectangle += aRec.TopLeft(); -- if (aRectangle.Left() > aRec.Right()) -- aRectangle -= (Point(aRectangle.Left() - aRec.Right() + 2, 0)); -- if (aRectangle.Top() > aRec.Bottom()) -- aRectangle -= (Point(0, aRectangle.Top() - aRec.Bottom() + 2)); +- aRectangle += aRec.TopLeft(); +- if (aRectangle.Left() > aRec.Right()) +- aRectangle -= (Point(aRectangle.Left() - aRec.Right() + 2, 0)); +- if (aRectangle.Top() > aRec.Bottom()) +- aRectangle -= (Point(0, aRectangle.Top() - aRec.Bottom() + 2)); - -- Point aDifferencePoint(aRectangle.BottomRight() - aBeforeRightBottomPoint); -- aPoint.X += aDifferencePoint.X(); -- aPoint.Y += aDifferencePoint.Y(); +- Point aDifferencePoint(aRectangle.BottomRight() - aBeforeRightBottomPoint); +- aPoint.X += aDifferencePoint.X(); +- aPoint.Y += aDifferencePoint.Y(); - -- aItr->xShape->setPosition(aPoint); -- } -- else -- { -- // #96159# it is possible, that shapes have a negative position -- // this is now handled here -- DBG_ERROR("no or negative end address of this shape"); -- awt::Point aRefPoint; -- aRefPoint.X = aRec.Left(); -- aRefPoint.Y = aRec.Top(); -- aPoint.X += aRefPoint.X; -- if (aPoint.X > aRec.Right()) -- aPoint.X = aRec.Right() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips -- aPoint.Y += aRefPoint.Y; -- if (aPoint.Y > aRec.Bottom()) -- aPoint.Y = aRec.Bottom() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips -- aItr->xShape->setPosition(aPoint); -- } -- } -- } -- } -- } -- } -- else -- { -- DBG_ERROR("something wents wrong"); -- } +- aItr->xShape->setPosition(aPoint); +- } +- else +- { +- // #96159# it is possible, that shapes have a negative position +- // this is now handled here +- DBG_ERROR("no or negative end address of this shape"); +- awt::Point aRefPoint; +- aRefPoint.X = aRec.Left(); +- aRefPoint.Y = aRec.Top(); +- aPoint.X += aRefPoint.X; +- if (aPoint.X > aRec.Right()) +- aPoint.X = aRec.Right() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips +- aPoint.Y += aRefPoint.Y; +- if (aPoint.Y > aRec.Bottom()) +- aPoint.Y = aRec.Bottom() - 2; // decrement by 2 100th_mm because the cellheight is internal in twips +- aItr->xShape->setPosition(aPoint); +- } +- } +- } +- } +- } +- } +- else +- { +- DBG_ERROR("something wents wrong"); +- } - } - // #i78086# call CreateChartListener also for invalid position (anchored to sheet) -- if (IsOLE(aItr->xShape)) -- { -- uno::Reference < beans::XPropertySet > xShapeProps ( aItr->xShape, uno::UNO_QUERY ); -- uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo()); +- if (IsOLE(aItr->xShape)) +- { +- uno::Reference < beans::XPropertySet > xShapeProps ( aItr->xShape, uno::UNO_QUERY ); +- uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo()); - rtl::OUString sName; -- if (xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) && +- if (xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) && - (xShapeProps->getPropertyValue(sPersistName) >>= sName)) -- CreateChartListener(pDoc, sName, aItr->pRangeList); -- } -- if (aItr->pRangeList) -- delete aItr->pRangeList; -- aItr = aShapes.erase(aItr); -- } -- rImport.UnlockSolarMutex(); +- CreateChartListener(pDoc, sName, aItr->pRangeList); +- } +- if (aItr->pRangeList) +- delete aItr->pRangeList; +- aItr = aShapes.erase(aItr); +- } +- rImport.UnlockSolarMutex(); -// if (pCollection) -// pDoc->SetChartListenerCollection(pCollection); -+ uno::Reference < beans::XPropertySet > xShapeProps ( aItr->xShape, uno::UNO_QUERY ); -+ uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo()); -+ rtl::OUString sName; -+ -+ if (pDoc && xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) && -+ (xShapeProps->getPropertyValue(sPersistName) >>= sName)) -+ CreateChartListener(pDoc, sName, aItr->sRangeList); - } -+ aItr = aShapes.erase(aItr); - } ++ uno::Reference < beans::XPropertySet > xShapeProps ( aItr->xShape, uno::UNO_QUERY ); ++ uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo()); + -+ rImport.UnlockSolarMutex(); - } ++ rtl::OUString sName; ++ if (pDoc && xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) && +++ (xShapeProps->getPropertyValue(sPersistName) >>= sName)) ++ CreateChartListener(pDoc, sName, aItr->sRangeList); + } ++ aItr = aShapes.erase(aItr); + } ++ rImport.UnlockSolarMutex(); + } } + diff -ru sc.orig/source/filter/xml/XMLTableShapeResizer.hxx sc/source/filter/xml/XMLTableShapeResizer.hxx --- sc.orig/source/filter/xml/XMLTableShapeResizer.hxx 2009-06-04 12:39:13.000000000 +0100 +++ sc/source/filter/xml/XMLTableShapeResizer.hxx 2009-06-04 15:22:38.000000000 +0100 diff --git a/openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch b/openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch deleted file mode 100644 index c455b03..0000000 --- a/openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff -r 3c24aa9a7810 desktop/source/app/cmdlineargs.cxx ---- a/desktop/source/app/cmdlineargs.cxx Sat Jan 23 16:31:03 2010 +0000 -+++ b/desktop/source/app/cmdlineargs.cxx Tue Feb 02 13:59:39 2010 +0000 -@@ -396,7 +396,7 @@ - } - else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-quickstart" )) == sal_True ) - { --#if defined(WNT) || defined(OS2) || defined(QUARTZ) -+#if defined(ENABLE_QUICKSTART_APPLET) - SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_True ); - #endif - SetBoolParam_Impl( CMD_BOOLPARAM_NOQUICKSTART, sal_False ); -diff -r 3c24aa9a7810 desktop/source/app/makefile.mk ---- a/desktop/source/app/makefile.mk Sat Jan 23 16:31:03 2010 +0000 -+++ b/desktop/source/app/makefile.mk Tue Feb 02 13:59:39 2010 +0000 -@@ -53,6 +53,10 @@ - # DEPLOYMENTMISCLIB = -ldeploymentmisc$(DLLPOSTFIX) - # .ENDIF - -+.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" || "$(GUIBASE)"=="aqua" || "$(ENABLE_SYSTRAY_GTK)"=="TRUE" -+CFLAGS+=-DENABLE_QUICKSTART_APPLET -+.ENDIF -+ - SHL1TARGET = sofficeapp - SHL1OBJS = \ - $(SLO)$/app.obj \ -diff -r 3c24aa9a7810 sfx2/source/appl/shutdownicon.cxx ---- a/sfx2/source/appl/shutdownicon.cxx Sat Jan 23 16:31:03 2010 +0000 -+++ b/sfx2/source/appl/shutdownicon.cxx Tue Feb 02 13:59:39 2010 +0000 -@@ -555,8 +555,8 @@ - return; - - // always remove ourselves as listener -+ pInst->m_bListenForTermination = true; - xDesktop->removeTerminateListener( pInst ); -- pInst->m_bListenForTermination = true; - - // terminate desktop only if no tasks exist - Reference< XFramesSupplier > xSupplier( xDesktop, UNO_QUERY ); -diff -r 3c24aa9a7810 sfx2/source/appl/shutdowniconunx.cxx ---- a/sfx2/source/appl/shutdowniconunx.cxx Sat Jan 23 16:31:03 2010 +0000 -+++ b/sfx2/source/appl/shutdowniconunx.cxx Tue Feb 02 13:59:39 2010 +0000 -@@ -39,6 +39,7 @@ - static EggTrayIcon *pTrayIcon; - static GtkWidget *pExitMenuItem = NULL; - static GtkWidget *pOpenMenuItem = NULL; -+static GtkWidget *pDisableMenuItem = NULL; - - static void open_url_cb( GtkWidget *, gpointer data ) - { -@@ -67,8 +68,10 @@ - static void exit_quickstarter_cb( GtkWidget * ) - { - egg_tray_icon_cancel_message (pTrayIcon, 1 ); -- ShutdownIcon::getInstance()->terminateDesktop(); - plugin_shutdown_sys_tray(); -+ //terminate may cause this .so to be unloaded. So we must be hands off -+ //all calls into this .so after this call -+ ShutdownIcon::terminateDesktop(); - } - - static void menu_deactivate_cb( GtkWidget *pMenu ) -@@ -265,7 +268,7 @@ - pMenuItem = gtk_separator_menu_item_new(); - gtk_menu_shell_append( pMenuShell, pMenuItem ); - -- (void) add_image_menu_item -+ pDisableMenuItem = add_image_menu_item - ( pMenuShell, GTK_STOCK_CLOSE, - pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH_UNX ), - G_CALLBACK( systray_disable_cb ) ); -@@ -289,6 +292,7 @@ - bool bModal = ShutdownIcon::bModalMode; - gtk_widget_set_sensitive( pExitMenuItem, !bModal); - gtk_widget_set_sensitive( pOpenMenuItem, !bModal); -+ gtk_widget_set_sensitive( pDisableMenuItem, !bModal); - } - - extern "C" { -@@ -404,6 +409,7 @@ - pTrayIcon = NULL; - pExitMenuItem = NULL; - pOpenMenuItem = NULL; -+ pDisableMenuItem = NULL; - } - - #endif // ENABLE_QUICKSTART_APPLET diff --git a/openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch b/openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch deleted file mode 100644 index 9916bd3..0000000 --- a/openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch +++ /dev/null @@ -1,644 +0,0 @@ ---- cppu/source/threadpool/jobqueue.cxx 2008-04-11 11:33:02.000000000 +0100 -+++ cppu/source/threadpool/jobqueue.cxx 2009-12-02 16:14:26.000000000 +0000 -@@ -45,6 +45,7 @@ - m_cndWait( osl_createCondition() ) - { - osl_resetCondition( m_cndWait ); -+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance(); - } - - JobQueue::~JobQueue() -@@ -71,7 +72,7 @@ - { - // synchronize with the dispose calls - MutexGuard guard( m_mutex ); -- if( DisposedCallerAdmin::getInstance()->isDisposed( nDisposeId ) ) -+ if( m_DisposedCallerAdmin->isDisposed( nDisposeId ) ) - { - return 0; - } ---- cppu/source/threadpool/jobqueue.hxx 2008-04-11 11:33:18.000000000 +0100 -+++ cppu/source/threadpool/jobqueue.hxx 2009-12-02 16:15:49.000000000 +0000 -@@ -37,6 +37,8 @@ - #include - #include - -+#include -+ - namespace cppu_threadpool - { - extern "C" typedef void (SAL_CALL RequestFun)(void *); -@@ -51,6 +53,9 @@ - - typedef ::std::list < sal_Int64 > CallStackList; - -+ class DisposedCallerAdmin; -+ typedef boost::shared_ptr DisposedCallerAdminHolder; -+ - class JobQueue - { - public: -@@ -76,6 +81,7 @@ - sal_Int32 m_nToDo; - sal_Bool m_bSuspended; - oslCondition m_cndWait; -+ DisposedCallerAdminHolder m_DisposedCallerAdmin; - }; - } - ---- cppu/source/threadpool/thread.cxx 2008-04-11 11:34:00.000000000 +0100 -+++ cppu/source/threadpool/thread.cxx 2009-12-03 16:15:02.000000000 +0000 -@@ -31,6 +31,8 @@ - #include - #include - -+#include -+ - #include "thread.hxx" - #include "jobqueue.hxx" - #include "threadpool.hxx" -@@ -98,20 +100,17 @@ - } while( pCurrent ); - } - -- ThreadAdmin* ThreadAdmin::getInstance() -+ struct theThreadAdmin : public rtl::StaticWithInit< ThreadAdminHolder, theThreadAdmin > - { -- static ThreadAdmin *pThreadAdmin = 0; -- if( ! pThreadAdmin ) -- { -- MutexGuard guard( Mutex::getGlobalMutex() ); -- if( ! pThreadAdmin ) -- { -- static ThreadAdmin admin; -- pThreadAdmin = &admin; -- } -+ ThreadAdminHolder operator () () { -+ ThreadAdminHolder aRet(new ThreadAdmin()); -+ return aRet; - } -- return pThreadAdmin; -+ }; - -+ ThreadAdminHolder& ThreadAdmin::getInstance() -+ { -+ return theThreadAdmin::get(); - } - - // ---------------------------------------------------------------------------------- -@@ -119,12 +118,13 @@ - const ByteSequence &aThreadId, - sal_Bool bAsynchron ) - : m_thread( 0 ) -+ , m_aThreadAdmin( ThreadAdmin::getInstance() ) - , m_pQueue( pQueue ) - , m_aThreadId( aThreadId ) - , m_bAsynchron( bAsynchron ) - , m_bDeleteSelf( sal_True ) - { -- ThreadAdmin::getInstance()->add( this ); -+ m_aThreadAdmin->add( this ); - } - - -@@ -166,7 +166,7 @@ - - void ORequestThread::onTerminated() - { -- ThreadAdmin::getInstance()->remove( this ); -+ m_aThreadAdmin->remove( this ); - if( m_bDeleteSelf ) - { - delete this; -@@ -175,6 +175,8 @@ - - void ORequestThread::run() - { -+ ThreadPoolHolder theThreadPool = cppu_threadpool::ThreadPool::getInstance(); -+ - while ( m_pQueue ) - { - if( ! m_bAsynchron ) -@@ -197,7 +199,7 @@ - - if( m_pQueue->isEmpty() ) - { -- ThreadPool::getInstance()->revokeQueue( m_aThreadId , m_bAsynchron ); -+ theThreadPool->revokeQueue( m_aThreadId , m_bAsynchron ); - // Note : revokeQueue might have failed because m_pQueue.isEmpty() - // may be false (race). - } -@@ -211,7 +213,7 @@ - uno_releaseIdFromCurrentThread(); - } - -- cppu_threadpool::ThreadPool::getInstance()->waitInPool( this ); -+ theThreadPool->waitInPool( this ); - } - } - } ---- cppu/source/threadpool/thread.hxx 2008-04-11 11:34:18.000000000 +0100 -+++ cppu/source/threadpool/thread.hxx 2009-12-02 15:58:34.000000000 +0000 -@@ -37,6 +37,8 @@ - namespace cppu_threadpool { - - class JobQueue; -+ class ThreadAdmin; -+ typedef boost::shared_ptr ThreadAdminHolder; - - //----------------------------------------- - // private thread class for the threadpool -@@ -61,6 +63,7 @@ - - private: - oslThread m_thread; -+ ThreadAdminHolder m_aThreadAdmin; - JobQueue *m_pQueue; - ::rtl::ByteSequence m_aThreadId; - sal_Bool m_bAsynchron; -@@ -71,7 +74,7 @@ - { - public: - ~ThreadAdmin (); -- static ThreadAdmin *getInstance(); -+ static ThreadAdminHolder &getInstance(); - void add( ORequestThread * ); - void remove( ORequestThread * ); - void join(); ---- cppu/source/threadpool/threadpool.cxx 2008-04-11 11:34:54.000000000 +0100 -+++ cppu/source/threadpool/threadpool.cxx 2009-12-03 16:14:56.000000000 +0000 -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include - -@@ -44,19 +45,17 @@ - - namespace cppu_threadpool - { -- DisposedCallerAdmin *DisposedCallerAdmin::getInstance() -+ struct theDisposedCallerAdmin : -+ public rtl::StaticWithInit< DisposedCallerAdminHolder, theDisposedCallerAdmin > - { -- static DisposedCallerAdmin *pDisposedCallerAdmin = 0; -- if( ! pDisposedCallerAdmin ) -- { -- MutexGuard guard( Mutex::getGlobalMutex() ); -- if( ! pDisposedCallerAdmin ) -- { -- static DisposedCallerAdmin admin; -- pDisposedCallerAdmin = &admin; -- } -+ DisposedCallerAdminHolder operator () () { -+ return DisposedCallerAdminHolder(new DisposedCallerAdmin()); - } -- return pDisposedCallerAdmin; -+ }; -+ -+ DisposedCallerAdminHolder DisposedCallerAdmin::getInstance() -+ { -+ return theDisposedCallerAdmin::get(); - } - - DisposedCallerAdmin::~DisposedCallerAdmin() -@@ -107,6 +106,21 @@ - - - //------------------------------------------------------------------------------- -+ -+ struct theThreadPool : -+ public rtl::StaticWithInit< ThreadPoolHolder, theThreadPool > -+ { -+ ThreadPoolHolder operator () () { -+ ThreadPoolHolder aRet(new ThreadPool()); -+ return aRet; -+ } -+ }; -+ -+ ThreadPool::ThreadPool() -+ { -+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance(); -+ } -+ - ThreadPool::~ThreadPool() - { - #if OSL_DEBUG_LEVEL > 1 -@@ -116,19 +130,9 @@ - } - #endif - } -- ThreadPool *ThreadPool::getInstance() -+ ThreadPoolHolder ThreadPool::getInstance() - { -- static ThreadPool *pThreadPool = 0; -- if( ! pThreadPool ) -- { -- MutexGuard guard( Mutex::getGlobalMutex() ); -- if( ! pThreadPool ) -- { -- static ThreadPool pool; -- pThreadPool = &pool; -- } -- } -- return pThreadPool; -+ return theThreadPool::get(); - } - - -@@ -136,7 +140,7 @@ - { - if( nDisposeId ) - { -- DisposedCallerAdmin::getInstance()->dispose( nDisposeId ); -+ m_DisposedCallerAdmin->dispose( nDisposeId ); - - MutexGuard guard( m_mutex ); - for( ThreadIdHashMap::iterator ii = m_mapQueue.begin() ; -@@ -171,7 +175,7 @@ - - void ThreadPool::stopDisposing( sal_Int64 nDisposeId ) - { -- DisposedCallerAdmin::getInstance()->stopDisposing( nDisposeId ); -+ m_DisposedCallerAdmin->stopDisposing( nDisposeId ); - } - - /****************** -@@ -400,7 +404,7 @@ - - - --typedef ::std::hash_set< uno_ThreadPool, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet; -+typedef ::std::hash_map< uno_ThreadPool, ThreadPoolHolder, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet; - - static ThreadpoolHashSet *g_pThreadpoolHashSet; - -@@ -420,7 +424,7 @@ - - // Just ensure that the handle is unique in the process (via heap) - uno_ThreadPool h = new struct _uno_ThreadPool; -- g_pThreadpoolHashSet->insert( h ); -+ g_pThreadpoolHashSet->insert( ThreadpoolHashSet::value_type(h, ThreadPool::getInstance()) ); - return h; - } - ---- cppu/source/threadpool/threadpool.hxx 2008-04-11 11:35:13.000000000 +0100 -+++ cppu/source/threadpool/threadpool.hxx 2009-12-02 16:12:13.000000000 +0000 -@@ -33,6 +33,8 @@ - - #include - -+#include -+ - #include "jobqueue.hxx" - - -@@ -78,13 +80,16 @@ - }; - - typedef ::std::list < struct ::cppu_threadpool::WaitingThread * > WaitingThreadList; -+ -+ class DisposedCallerAdmin; -+ typedef boost::shared_ptr DisposedCallerAdminHolder; - - class DisposedCallerAdmin - { - public: - ~DisposedCallerAdmin(); - -- static DisposedCallerAdmin *getInstance(); -+ static DisposedCallerAdminHolder getInstance(); - - void dispose( sal_Int64 nDisposeId ); - void stopDisposing( sal_Int64 nDisposeId ); -@@ -95,11 +100,15 @@ - DisposedCallerList m_lst; - }; - -+ class ThreadPool; -+ typedef boost::shared_ptr ThreadPoolHolder; -+ - class ThreadPool - { - public: -+ ThreadPool(); - ~ThreadPool(); -- static ThreadPool *getInstance(); -+ static ThreadPoolHolder getInstance(); - - void dispose( sal_Int64 nDisposeId ); - void stopDisposing( sal_Int64 nDisposeId ); -@@ -127,6 +136,8 @@ - - ::osl::Mutex m_mutexWaitingThreadList; - WaitingThreadList m_lstThreads; -+ -+ DisposedCallerAdminHolder m_DisposedCallerAdmin; - }; - - } // end namespace cppu_threadpool ---- cppu/source/uno/lbenv.cxx 2009-02-12 10:18:09.000000000 +0000 -+++ cppu/source/uno/lbenv.cxx 2009-12-03 16:14:26.000000000 +0000 -@@ -142,6 +142,7 @@ - ::osl::Mutex mutex; - OUString2EnvironmentMap aName2EnvMap; - -+ EnvironmentsData() : isDisposing(false) {} - ~EnvironmentsData(); - - inline void getEnvironment( -@@ -150,6 +151,8 @@ - inline void getRegisteredEnvironments( - uno_Environment *** pppEnvs, sal_Int32 * pnLen, - uno_memAlloc memAlloc, const OUString & rEnvDcp ); -+ -+ bool isDisposing; - }; - - namespace -@@ -598,9 +601,14 @@ - *ppHardEnv = 0; - } - -+ EnvironmentsData & rData = theEnvironmentsData::get(); -+ -+ if (rData.isDisposing) -+ return; -+ - uno_DefaultEnvironment * that = (uno_DefaultEnvironment *)pEnv; - { -- ::osl::MutexGuard guard( theEnvironmentsData::get().mutex ); -+ ::osl::MutexGuard guard( rData.mutex ); - if (1 == ::osl_incrementInterlockedCount( &that->nRef )) // is dead - { - that->nRef = 0; -@@ -917,6 +925,7 @@ - EnvironmentsData::~EnvironmentsData() - { - ::osl::MutexGuard guard( mutex ); -+ isDisposing = true; - - for ( OUString2EnvironmentMap::const_iterator iPos( aName2EnvMap.begin() ); - iPos != aName2EnvMap.end(); ++iPos ) ---- cppu/util/target.pmk 2008-04-11 12:07:15.000000000 +0100 -+++ cppu/util/target.pmk 2009-12-02 15:50:08.000000000 +0000 -@@ -55,12 +55,3 @@ - .ENDIF - - .ENDIF -- --# other stuff -- --.IF "$(cppu_no_leak)" == "" --.IF "$(bndchk)" == "" --CFLAGS += -DCPPU_LEAK_STATIC_DATA --.ENDIF --.ENDIF -- ---- package/inc/ZipPackageFolder.hxx 2010-06-22 11:49:17.000000000 +0100 -+++ package/inc/ZipPackageFolder.hxx 2010-06-22 12:50:26.000000000 +0100 -@@ -53,8 +53,6 @@ - ::com::sun::star::container::XEnumerationAccess - > - { -- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId; -- - protected: - ContentHash maContents; - const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory; -@@ -82,10 +80,7 @@ - throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - - static void copyZipEntry( ZipEntry &rDest, const ZipEntry &rSource); -- static ::com::sun::star::uno::Sequence < sal_Int8 > static_getImplementationId() -- { -- return aImplementationId; -- } -+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId(); - - void setPackageFormat_Impl( sal_Int32 nFormat ) { m_nFormat = nFormat; } - void setRemoveOnInsertMode_Impl( sal_Bool bRemove ) { this->mbAllowRemoveOnInsert = bRemove; } ---- package/source/xstor/owriteablestream.cxx 2010-06-22 11:49:15.000000000 +0100 -+++ package/source/xstor/owriteablestream.cxx 2010-06-22 12:13:20.000000000 +0100 -@@ -53,6 +53,7 @@ - - #include - #include -+#include - - // since the copying uses 32000 blocks usually, it makes sense to have a smaller size - #define MAX_STORCACHE_SIZE 30000 -@@ -2169,25 +2170,14 @@ - return m_pData->m_pTypeCollection->getTypes() ; - } - -+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; } -+ - //----------------------------------------------- - uno::Sequence< sal_Int8 > SAL_CALL OWriteStream::getImplementationId() - throw( uno::RuntimeException ) - { -- static ::cppu::OImplementationId* pID = NULL ; -- -- if ( pID == NULL ) -- { -- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ; -- -- if ( pID == NULL ) -- { -- static ::cppu::OImplementationId aID( sal_False ) ; -- pID = &aID ; -- } -- } -- -- return pID->getImplementationId() ; -- -+ ::cppu::OImplementationId &rId = lcl_ImplId::get(); -+ return rId.getImplementationId(); - } - - //----------------------------------------------- ---- package/source/xstor/xstorage.cxx 2010-06-22 11:49:15.000000000 +0100 -+++ package/source/xstor/xstorage.cxx 2010-06-22 12:11:45.000000000 +0100 -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -2367,25 +2368,14 @@ - return m_pData->m_pTypeCollection->getTypes() ; - } - -+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; } -+ - //----------------------------------------------- - uno::Sequence< sal_Int8 > SAL_CALL OStorage::getImplementationId() - throw( uno::RuntimeException ) - { -- static ::cppu::OImplementationId* pID = NULL ; -- -- if ( pID == NULL ) -- { -- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ; -- -- if ( pID == NULL ) -- { -- static ::cppu::OImplementationId aID( sal_False ) ; -- pID = &aID ; -- } -- } -- -- return pID->getImplementationId() ; -- -+ ::cppu::OImplementationId &rID = lcl_ImplId::get(); -+ return rID.getImplementationId(); - } - - //____________________________________________________________________________________________________ ---- package/source/zippackage/ZipPackage.cxx 2010-06-22 11:49:16.000000000 +0100 -+++ package/source/zippackage/ZipPackage.cxx 2010-06-22 12:12:00.000000000 +0100 -@@ -68,6 +68,7 @@ - #include - #include - #include -+#include - #include - #include - #include "com/sun/star/io/XAsyncOutputMonitor.hpp" -@@ -1585,21 +1586,14 @@ - static_getSupportedServiceNames()); - } - -+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; } -+ - // XUnoTunnel - Sequence< sal_Int8 > ZipPackage::getUnoTunnelImplementationId( void ) - throw (RuntimeException) - { -- static ::cppu::OImplementationId * pId = 0; -- if (! pId) -- { -- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); -- if (! pId) -- { -- static ::cppu::OImplementationId aId; -- pId = &aId; -- } -- } -- return pId->getImplementationId(); -+ ::cppu::OImplementationId &rId = lcl_ImplId::get(); -+ return rId.getImplementationId(); - } - - sal_Int64 SAL_CALL ZipPackage::getSomething( const Sequence< sal_Int8 >& aIdentifier ) ---- package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 11:49:16.000000000 +0100 -+++ package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 12:50:00.000000000 +0100 -@@ -43,6 +43,7 @@ - #include - #include - #include -+#include - #include - - using namespace com::sun::star::packages::zip::ZipConstants; -@@ -59,7 +60,7 @@ - using namespace ::com::sun::star; - using vos::ORef; - --Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > (); -+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; } - - ZipPackageFolder::ZipPackageFolder ( const Reference< XMultiServiceFactory >& xFactory, - sal_Int32 nFormat, -@@ -80,10 +81,9 @@ - aEntry.nCompressedSize = 0; - aEntry.nSize = 0; - aEntry.nOffset = -1; -- if ( !aImplementationId.getLength() ) -- { -- aImplementationId = getImplementationId(); -- } -+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get(); -+ if ( !rCachedImplId.getLength() ) -+ rCachedImplId = getImplementationId(); - } - - -@@ -187,6 +187,11 @@ - rDest.nExtraLen = rSource.nExtraLen; - } - -+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageFolder::static_getImplementationId() -+{ -+ return lcl_CachedImplId::get(); -+} -+ - // XNameContainer - void SAL_CALL ZipPackageFolder::insertByName( const OUString& aName, const Any& aElement ) - throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException) ---- package/source/zippackage/ZipPackageStream.cxx 2010-06-22 11:49:16.000000000 +0100 -+++ package/source/zippackage/ZipPackageStream.cxx 2010-06-22 12:53:32.000000000 +0100 -@@ -45,6 +45,8 @@ - #include - #include - -+#include -+ - #include - - using namespace com::sun::star::packages::zip::ZipConstants; -@@ -55,8 +57,12 @@ - using namespace cppu; - using namespace rtl; - --Sequence < sal_Int8 > ZipPackageStream::aImplementationId = Sequence < sal_Int8 > (); -+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; } - -+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageStream::static_getImplementationId() -+{ -+ return lcl_CachedImplId::get(); -+} - - ZipPackageStream::ZipPackageStream ( ZipPackage & rNewPackage, - const Reference< XMultiServiceFactory >& xFactory, -@@ -91,10 +97,9 @@ - aEntry.nPathLen = -1; - aEntry.nExtraLen = -1; - -- if ( !aImplementationId.getLength() ) -- { -- aImplementationId = getImplementationId(); -- } -+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get(); -+ if ( !rCachedImplId.getLength() ) -+ rCachedImplId = getImplementationId(); - } - - ZipPackageStream::~ZipPackageStream( void ) ---- package/source/zippackage/ZipPackageStream.hxx 2010-06-22 11:49:16.000000000 +0100 -+++ package/source/zippackage/ZipPackageStream.hxx 2010-06-22 12:51:18.000000000 +0100 -@@ -55,7 +55,6 @@ - ::com::sun::star::packages::XDataSinkEncrSupport - > - { -- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId; - protected: - com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xStream; - const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory; -@@ -146,10 +145,7 @@ - ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getRawData() - throw(::com::sun::star::uno::RuntimeException); - -- static ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId() -- { -- return aImplementationId; -- } -+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId(); - - // XActiveDataSink - virtual void SAL_CALL setInputStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& aStream ) diff --git a/turn-script-providers-into-extensions.patch b/turn-script-providers-into-extensions.patch index a698a7d..6fb1c08 100644 --- a/turn-script-providers-into-extensions.patch +++ b/turn-script-providers-into-extensions.patch @@ -49,12 +49,13 @@ diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python index e586876..0876b53 100644 --- a/scp2/source/python/file_python.scp +++ b/scp2/source/python/file_python.scp -@@ -104,16 +104,6 @@ End +@@ -104,18 +104,6 @@ #endif #endif -// Scripting Framework Python script proxy - +-#ifndef AIX -File gid_File_Py_Pythonscript - TXT_FILE_BODY; - Dir = gid_Dir_Program; @@ -62,6 +63,7 @@ index e586876..0876b53 100644 - RegistryID = gid_Starregistry_Services_Rdb; - Styles = (PACKED,UNO_COMPONENT); -End +-#endif - //Scripting Framework Python example scripts