summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@gnome.org>2006-11-13 12:21:50 +0000
committernobody <nobody@gnome.org>2006-11-13 12:21:50 +0000
commit4345ebd6790c57095aec36a3e7bbfc676ea06c9e (patch)
tree757743ceec633e4a9ffe7d38952e0a75634e29fc
parent1abb7b0080fb8f9615462154f1c2ddb213772bd1 (diff)
This commit was manufactured by cvs2svn to create tagOOO_BUILD_2_0_4_5
'OOO_BUILD_2_0_4_5'.
-rw-r--r--distro-configs/Debian.conf.in1
-rw-r--r--etc/test.list283
-rw-r--r--patches/scsolver/scsolver-source-ui-basedlg-cxx.diff66
-rw-r--r--patches/scsolver/scsolver-source-ui-dialog-cxx.diff83
-rw-r--r--patches/src680/buildfix-hsqldb-1-8-0-7.diff36
-rw-r--r--patches/src680/sd.sal_uInt32_aslong.diff16
-rw-r--r--patches/vba/sc-source-ui-vba-vbarange-cxx.diff196
-rw-r--r--patches/vba/vba-accent-in-module.diff14
-rw-r--r--patches/vba/vba-support-export-palette.diff5
-rw-r--r--scratch/scsolver/source/inc/xcalc.hxx6
-rw-r--r--scratch/scsolver/source/ui/optiondlg.cxx54
11 files changed, 566 insertions, 194 deletions
diff --git a/distro-configs/Debian.conf.in b/distro-configs/Debian.conf.in
index db7f24ea8..fedfc3248 100644
--- a/distro-configs/Debian.conf.in
+++ b/distro-configs/Debian.conf.in
@@ -2,6 +2,7 @@
--enable-libsn
--disable-fontooo
--with-system-expat
+--with-system-odbc-headers
--with-system-nas
--with-system-curl
--with-system-sane-header
diff --git a/etc/test.list b/etc/test.list
index 7992a51fe..25301b8c8 100644
--- a/etc/test.list
+++ b/etc/test.list
@@ -1,185 +1,226 @@
-# Tests started by Sun QA for OOo-2.0.3 on 17 May, 2006
-# See http://qa.openoffice.org/qatesttool/all_tests_ooo203.html
+# Tests started by Sun QA for OOo-2.0.4 on 30 August, 2006
+# See http://qa.openoffice.org/qatesttool/all_tests_ooo204.html
framework/first/first.bas
framework/first/topten.bas
+framework/basic/f_basic_basicdocuments.bas
+framework/basic/f_basic_extensions.bas
+framework/basic/f_basic_first.bas
+framework/basic/f_basic_formcontrols.bas
+framework/basic/f_basic_library_export_import.bas
+framework/basic/f_basic_meta-inf.bas
+framework/basic/f_basic_modules.bas
+framework/basic/f_basic_package_export_import.bas
+framework/basic/f_basic_protected_libraries.bas
+framework/basic/f_basic_spectemplate.bas
+framework/basic/f_basic_usertemplate.bas
+framework/basic/f_java_load_applets.bas
+framework/basic/f_scripting_addpkg.bas
+framework/basic/f_scripting_basics.bas
+framework/basic/f_scripting_organizers.bas
+framework/extras/extras_autotext.bas
+framework/extras/extras_drawobjects.bas
+framework/extras/extras_fonts.bas
+framework/extras/extras_labels.bas
+framework/extras/extras_sampleopen.bas
+framework/extras/extras_samplepreview.bas
+framework/extras/extras_tableautoformat.bas
+framework/extras/extras_templateopen.bas
+framework/extras/extras_templatepreview.bas
+framework/filedlg/filedlg_accented_foldernames.bas
+framework/filedlg/filedlg_attributes.bas
+framework/filedlg/filedlg_autocompletion.bas
+framework/filedlg/filedlg_cjkchars.bas
+framework/filedlg/filedlg_dialogtest.bas
+framework/filedlg/filedlg_filenames1.bas
+framework/filedlg/filedlg_filenames2.bas
+framework/filedlg/filedlg_filenames3.bas
+framework/filedlg/filedlg_folders.bas
+framework/filedlg/filedlg_passwords.bas
+framework/help/help_bookmarks.bas
+framework/help/help_compare_apps.bas
+framework/level1/f_function_toolbar_behavior.bas
framework/level1/f_lvl1_loadsave.bas
+framework/level1/f_lvl1_ole.bas
+framework/level1/f_lvl1_tools.bas
framework/level2/CJK/CJK_FeatureSwitch.bas
framework/level2/CJK/CJK_GridLayout.bas
framework/level2/CJK/CJK_RubyDialogueProposal.bas
framework/level2/CJK/NewSortingAlgorithmForJapanese.bas
-framework/update/f_updt_help.bas
-framework/update/f_updt_templates.bas
-framework/update/f_updt_toolbars.bas
-framework/update/f_updt_spadmin.bas
-framework/basic/f_scripting_basics.bas
-framework/update/f_updt_firsttimewizard.bas
+framework/options/f_opt_loadsave.bas
+framework/options/f_opt_ooo.bas
+framework/security/f_sec_broken_signature.bas
+framework/security/f_sec_certification_dialogs.bas
+framework/security/f_sec_certified_docs.bas
+framework/security/f_sec_evilmacro.bas
+framework/security/f_sec_incorrect_password.bas
+framework/security/f_sec_macrosecurity.bas
+framework/security/f_sec_recommend_password.bas
framework/update/f_updt_agendawizard.bas
-framework/basic/f_basic_first.bas
+framework/update/f_updt_autotext.bas
framework/update/f_updt_basic.bas
framework/update/f_updt_basicorganizer.bas
-framework/update/f_updt_presentationwizard.bas
+framework/update/f_updt_customize.bas
framework/update/f_updt_documentconverter.bas
framework/update/f_updt_euroconverter.bas
-framework/update/f_updt_wizard_webpage.bas
+framework/update/f_updt_faxwizard.bas
+framework/update/f_updt_firsttimewizard.bas
+framework/update/f_updt_help.bas
+framework/update/f_updt_letterwizard.bas
+framework/update/f_updt_optionitems.bas
+framework/update/f_updt_pkgmgr.bas
+framework/update/f_updt_presentationwizard.bas
framework/update/f_updt_scriptnames.bas
-framework/update/f_updt_autotext.bas
-framework/update/f_updt_customize.bas
-framework/filedlg/filedlg_attributes.bas
-framework/filedlg/filedlg_autocompletion.bas
-framework/filedlg/filedlg_dialogtest.bas
-framework/extras/extras_drawobjects.bas
-framework/basic/f_basic_modules.bas
+framework/update/f_updt_spadmin.bas
+framework/update/f_updt_templates.bas
+framework/update/f_updt_toolbars.bas
framework/update/f_updt_windowfuncs.bas
-framework/basic/f_scripting_addpkg.bas
-framework/security/f_sec_recommend_password.bas
-framework/basic/f_scripting_organizers.bas
-framework/help/help_search.bas
-framework/basic/f_basic_usertemplate.bas
-framework/basic/f_basic_package_export_import.bas
-framework/filedlg/filedlg_filenames1.bas
-framework/filedlg/filedlg_filenames2.bas
-framework/filedlg/filedlg_filenames3.bas
-framework/extras/extras_fonts.bas
-framework/extras/extras_labels.bas
-framework/extras/extras_samplepreview.bas
-framework/extras/extras_tableautoformat.bas
-framework/extras/extras_templatepreview.bas
-framework/update/f_updt_pkgmgr.bas
-framework/basic/f_basic_formcontrols.bas
-framework/level1/f_lvl1_tools.bas
-framework/security/f_sec_incorrect_password.bas
-framework/security/f_sec_certified_docs.bas
-framework/basic/f_basic_basicdocuments.bas
-framework/help/help_compare_apps.bas
-framework/basic/f_java_load_applets.bas
-framework/basic/f_basic_library_export_import.bas
-framework/security/f_sec_certification_dialogs.bas
-framework/help/help_compare_content.bas
-framework/help/help_bookmarks.bas
-framework/filedlg/filedlg_folders.bas
-framework/filedlg/filedlg_cjkchars.bas
-framework/extras/extras_autotext.bas
-framework/options/f_opt_ooo.bas
-framework/options/f_opt_loadsave.bas
-framework/filedlg/filedlg_passwords.bas
-writer/update/ma_updt.bas
-writer/update/w_updt.bas
-writer/update/ww_updt.bas
-writer/level1/w_redlining.bas
-writer/level1/w_insertgraphic.bas
-writer/level1/w_stylist.bas
+framework/update/f_updt_wizard_webpage.bas
writer/level1/w_autotext.bas
-writer/level1/w_formatparagraph.bas
-writer/level1/w_formatpage.bas
-writer/level1/w_clipbrd.bas
-writer/level1/w_opt.bas
-writer/level1/w_search.bas
-writer/level1/w_navigator.bas
-writer/level1/w_spellcheck.bas
writer/level1/w_calculate.bas
-writer/level1/w_numbering.bas
+writer/level1/w_clipbrd.bas
+writer/level1/w_dropdownLB.bas
+writer/level1/w_fontwork.bas
writer/level1/w_formatcharacter.bas
+writer/level1/w_formatpage.bas
+writer/level1/w_formatparagraph.bas
writer/level1/w_hyphenation.bas
-writer/loadsave/w_filter.bas
-writer/level1/w_dropdownLB.bas
-writer/loadsave/w_exp_xml2.bas
-writer/loadsave/w_imp_xml2.bas
-writer/loadsave/w_layout_regression.bas
+writer/level1/w_insertgraphic.bas
+writer/level1/w_issuezilla_regression.bas
+writer/level1/w_navigator.bas
+writer/level1/w_numbering.bas
+writer/level1/w_opt.bas
+writer/level1/w_redlining.bas
+writer/level1/w_search.bas
+writer/level1/w_section.bas
+writer/level1/w_shortcuts.bas
writer/level1/w_sorting.bas
+writer/level1/w_spellcheck.bas
+writer/level1/w_stylist.bas
+writer/level1/w_table.bas
+writer/level1/ww_opt.bas
writer/loadsave/w_exp_bin.bas
writer/loadsave/w_exp_xml1.bas
+writer/loadsave/w_exp_xml2.bas
+writer/loadsave/w_filter.bas
writer/loadsave/w_imp_bin.bas
writer/loadsave/w_imp_xml1.bas
-writer/level1/w_shortcuts.bas
-calc/update/c_updt.bas
+writer/loadsave/w_imp_xml2.bas
+writer/loadsave/w_layout_regression.bas
+writer/update/ma_updt.bas
+writer/update/w_updt.bas
+writer/update/ww_updt.bas
+calc/level1/c_lvl1.bas
+calc/level1/c_lvl1_filter_names.bas
+calc/loadsave/calc_import_general.bas
calc/options/c_opt.bas
-calc/special/keyboardaccessibility.bas
-calc/special/validity.bas
-calc/special/menu_2.bas
-calc/special/c_so7_pp1.bas
-calc/special/c_printrange.bas
-calc/special/c_namedrange.bas
calc/special/c_chinesetranslate.bas
-calc/level1/c_lvl1_filter_names.bas
+calc/special/c_clipboardtest.bas
+calc/special/c_namedrange.bas
+calc/special/c_printrange.bas
+calc/special/c_so7_pp1.bas
calc/special/fkt_test.bas
-chart/update/ch_updt.bas
+calc/special/keyboardaccessibility.bas
+calc/special/menu_2.bas
+calc/special/page_styles.bas
+calc/special/validity.bas
+calc/update/c_updt.bas
chart/level1/ch_lvl1.bas
chart/special/chart_types.bas
-graphics/update/gallery.bas
-graphics/update/i_updt_1.bas
-graphics/update/i_updt_2.bas
-graphics/level1/g_clipboard.bas
-graphics/level1/g_edit.bas
-graphics/level1/g_spellcheck.bas
-graphics/level1/g_toolbars.bas
-graphics/level1/i_shape.bas
+chart/update/ch_updt.bas
+spreadsheet/level1/c_lvl1_filter_names.bas
+spreadsheet/level2/c_namedrange.bas
+spreadsheet/level2/c_printrange.bas
+spreadsheet/level2/c_so7_pp1.bas
graphics/level1/d_export_graphic.bas
-graphics/level1/i_export_graphic.bas
-graphics/options/i_opt.bas
graphics/level1/g_accessability.bas
graphics/level1/g_area.bas
graphics/level1/g_arrangealign.bas
graphics/level1/g_autocorrection.bas
-graphics/level1/i_view.bas
+graphics/level1/g_character.bas
+graphics/level1/g_clipboard.bas
+graphics/level1/g_clipexport.bas
graphics/level1/g_convertto.bas
graphics/level1/g_crossfading.bas
-graphics/level1/i_slideshow.bas
graphics/level1/g_dimensions.bas
+graphics/level1/g_edit.bas
+graphics/level1/g_export_html.bas
graphics/level1/g_findreplace.bas
+graphics/level1/g_format.bas
graphics/level1/g_group.bas
graphics/level1/g_imagemap.bas
+graphics/level1/g_insert.bas
+graphics/level1/g_line.bas
graphics/level1/g_load_save.bas
+graphics/level1/g_mediaplayer.bas
graphics/level1/g_navigator.bas
+graphics/level1/g_ole.bas
+graphics/level1/g_paneview.bas
+graphics/level1/g_paragraph.bas
+graphics/level1/g_print.bas
+graphics/level1/g_shaddow.bas
graphics/level1/g_slidelayer.bas
+graphics/level1/g_spellcheck.bas
graphics/level1/g_stylist.bas
+graphics/level1/g_toolbars.bas
+graphics/level1/g_tools.bas
+graphics/level1/g_zoom.bas
graphics/level1/i_animation.bas
+graphics/level1/i_export_graphic.bas
graphics/level1/i_headerfooter.bas
-graphics/level1/g_ole.bas
-graphics/level1/g_paneview.bas
-graphics/level1/g_mediaplayer.bas
graphics/level1/i_pengine.bas
+graphics/level1/i_shape.bas
graphics/level1/i_slidecopy.bas
+graphics/level1/i_slideshow.bas
+graphics/level1/i_view.bas
+graphics/options/d_opt.bas
+graphics/options/i_opt.bas
+graphics/update/d_updt.bas
graphics/update/gallery2.bas
-graphics/level1/g_character.bas
-graphics/level1/g_clipexport.bas
-graphics/level1/g_export_html.bas
-graphics/level1/g_format.bas
-graphics/level1/g_insert.bas
-graphics/level1/g_line.bas
-graphics/level1/g_paragraph.bas
-graphics/level1/g_print.bas
-graphics/level1/g_tools.bas
-graphics/level1/g_zoom.bas
-graphics/level1/g_shaddow.bas
+graphics/update/gallery.bas
+graphics/update/i_updt_1.bas
+graphics/update/i_updt_2.bas
math/level1/m_lvl1.bas
-base/update/xforms_updt.bas
+math/update/m_updt.bas
+base/level1/controls/b_lvl1_Control_Autopilot.bas
+base/level1/controls/b_lvl1_Control_Calc.bas
+base/level1/controls/b_lvl1_Control_Clipboard.bas
+base/level1/controls/b_lvl1_Control_General.bas
+base/level1/controls/b_lvl1_Control_Several.bas
+base/level1/controls/b_lvl1_Grid_Control.bas
+base/level1/controls/b_lvl1_Property_Browser.bas
+base/level1/controls/b_lvl1_Text_Control.bas
+base/level1/datasources/b_lvl1_AdabasD.bas
base/level1/datasources/b_lvl1_Addressbook.bas
-base/level1/datasources/b_lvl1_RegisterDatabase.bas
base/level1/datasources/b_lvl1_ADO-Access.bas
-base/level1/datasources/b_lvl1_AdabasD.bas
+base/level1/datasources/b_lvl1_dBase.bas
+base/level1/datasources/b_lvl1_dBase_functions.bas
+base/level1/datasources/b_lvl1_hsqldb.bas
base/level1/datasources/b_lvl1_JDBC_MySQL.bas
+base/level1/datasources/b_lvl1_ODBC_MySQL.bas
+base/level1/datasources/b_lvl1_RegisterDatabase.bas
base/level1/datasources/b_lvl1_Spreadsheet.bas
base/level1/datasources/b_lvl1_Text.bas
-base/level1/datasources/b_lvl1_dBase.bas
-base/level1/datasources/b_lvl1_dBase_functions.bas
-base/level1/wizards/b_lvl1_Database_Wizard.bas
+base/level1/forms/b_lvl1_FormFilter.bas
+base/level1/forms/b_lvl1_Forms.bas
+base/level1/performance/b_lvl1_Performance_General.bas
base/level1/wizards/b_lvl1_Copy_Table_Autopilot.bas
+base/level1/wizards/b_lvl1_Database_Wizard.bas
base/level1/wizards/b_lvl1_FormAutopilot.bas
base/level1/wizards/b_lvl1_QueryAutopilot.bas
base/level1/wizards/b_lvl1_ReportAutopilot.bas
-base/level1/performance/b_lvl1_Performance_General.bas
-base/level1/controls/b_lvl1_Control_Autopilot.bas
-base/level1/controls/b_lvl1_Control_Clipboard.bas
+base/level1/wizards/b_lvl1_Table_Wizard.bas
base/level1/xforms/xf_lvl1_submission.bas
-xml/update/oasis_graphics_update.bas
+base/update/b_updt.bas
+base/update/xforms_updt.bas
xml/level1/calc_xml_7_export.bas
-xml/level1/draw_xml_7_export.bas
-xml/level1/impress_xml_7_export.bas
-xml/level1/math_xml_7_export.bas
xml/level1/c_datapilot_pagefields.bas
-xml/level1/docbook_losa.bas
+xml/level1/ch_xml_japanese_candlestick.bas
xml/level1/c_xml_print_scale.bas
-xml/level1/f_xml_save_ms_ole.bas
xml/level1/c_xml_scenario.bas
+xml/level1/docbook_losa.bas
+xml/level1/draw_xml_7_export.bas
+xml/level1/f_xml_save_ms_ole.bas
+xml/level1/impress_xml_7_export.bas
+xml/level1/math_xml_7_export.bas
xml/level1/writer_xml_7_export.bas
-xml/level1/ch_xml_japanese_candlestick.bas
+xml/update/oasis_graphics_update.bas
diff --git a/patches/scsolver/scsolver-source-ui-basedlg-cxx.diff b/patches/scsolver/scsolver-source-ui-basedlg-cxx.diff
index 694f8a3ea..0093727c7 100644
--- a/patches/scsolver/scsolver-source-ui-basedlg-cxx.diff
+++ b/patches/scsolver/scsolver-source-ui-basedlg-cxx.diff
@@ -1,6 +1,6 @@
--- /dev/null
+++ scsolver/source/ui/basedlg.cxx
-@@ -0,0 +1,897 @@
+@@ -0,0 +1,931 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to
@@ -61,6 +61,23 @@
+
+namespace scsolver {
+
++/**
++ * Dump all service names supported by this widget and
++ * terminate. This function is for debug purposes only, and
++ * should never be reached under normal circumstances.
++ */
++void lcl_dumpServiceNames( const Reference< uno::XInterface >& oWgt )
++{
++#ifdef DEBUG
++ Reference< lang::XServiceInfo > xSN( oWgt, UNO_QUERY );
++ Sequence< rtl::OUString > sSN = xSN->getSupportedServiceNames();
++ for ( int nIdx = 0; nIdx < sSN.getLength(); ++nIdx )
++ printOUStr( sSN[nIdx] );
++
++ OSL_ASSERT( !"No appropriate widget type got picked up!" );
++#endif
++}
++
+//--------------------------------------------------------------------------
+// BaseDialogImpl
+
@@ -122,9 +139,16 @@
+
+ template<typename ListenerT>
+ void registerListener( ListenerT* );
++
+ template<typename ListenerT>
+ void registerListener( const rtl::OUString &, ListenerT* );
+
++ void registerListener( TopWindowListener* p )
++ {
++ Reference<awt::XTopWindow> xTW(getDialog(), UNO_QUERY);
++ xTW->addTopWindowListener(p);
++ }
++
+ void registerListener( const Reference< uno::XInterface >&, ActionListener* );
+ void registerListener( const Reference< uno::XInterface >&, ItemListener* );
+ void registerListener( const Reference< uno::XInterface >&, FocusListener* );
@@ -132,6 +156,7 @@
+
+ template<typename ListenerT>
+ void unregisterListener( ListenerT* );
++
+ template<typename ListenerT>
+ void unregisterListener( const rtl::OUString &, ListenerT* );
+
@@ -140,6 +165,17 @@
+ void unregisterListener( const Reference< uno::XInterface >&, FocusListener* );
+ void unregisterListener( const Reference< uno::XInterface >&, MouseListener* );
+
++ void unregisterListener( const Reference<uno::XInterface>& oWgt, TopWindowListener* p )
++ {
++ Reference<awt::XTopWindow> xWnd(oWgt, UNO_QUERY);
++ if ( xWnd.is() )
++ {
++ xWnd->removeTopWindowListener( p );
++ return;
++ }
++ lcl_dumpServiceNames( oWgt );
++ }
++
+private:
+
+ SolverImpl* m_pSolverImpl;
@@ -180,13 +216,15 @@
+ xCtrl->setModel( xCtrlModel );
+
+ Reference< beans::XPropertySet > xPS( m_oDlgModel, UNO_QUERY );
-+ uno::Any aWidth, aHeight, aTitle;
++ uno::Any aWidth, aHeight, aTitle, aCloseable;
+ aWidth <<= nW;
+ aHeight <<= nH;
+ aTitle <<= sTitle;
++ aCloseable <<= static_cast<sal_Bool>(true);
+ xPS->setPropertyValue( ascii( "Width" ), aWidth );
+ xPS->setPropertyValue( ascii( "Height" ), aHeight );
+ xPS->setPropertyValue( ascii( "Title" ), aTitle );
++ xPS->setPropertyValue( ascii("Closeable"), aCloseable );
+}
+
+void BaseDialogImpl::setVisibleDefault( bool bVisible )
@@ -356,20 +394,6 @@
+ registerListener( getWidgetByName( sName ), p );
+}
+
-+/** Dump all service names supported by this widget and terminate. This
-+ function is for debug purposes only, and should never be reached under
-+ normal circumstances. */
-+void lcl_dumpServiceNames( const Reference< uno::XInterface >& oWgt )
-+{
-+#ifdef DEBUG
-+ Reference< lang::XServiceInfo > xSN( oWgt, UNO_QUERY );
-+ Sequence< rtl::OUString > sSN = xSN->getSupportedServiceNames();
-+ for ( int nIdx = 0; nIdx < sSN.getLength(); ++nIdx )
-+ printOUStr( sSN[nIdx] );
-+
-+ OSL_ASSERT( !"No appropriate widget type got picked up!" );
-+#endif
-+}
+
+void BaseDialogImpl::registerListener( const Reference< uno::XInterface >& oWgt, ActionListener* p )
+{
@@ -621,6 +645,11 @@
+ return m_pImpl->addRangeEdit( nX, nY, nW, nH, sEditName, sBtnName );
+}
+
++void BaseDialog::registerListener( TopWindowListener* p ) const
++{
++ m_pImpl->registerListener(p);
++}
++
+void BaseDialog::registerListener( FocusListener* p ) const
+{
+ m_pImpl->registerListener( p );
@@ -641,6 +670,11 @@
+ m_pImpl->registerListener( sName, p );
+}
+
++void BaseDialog::unregisterListener( TopWindowListener* p ) const
++{
++ m_pImpl->unregisterListener(p);
++}
++
+void BaseDialog::unregisterListener( FocusListener* p ) const
+{
+ m_pImpl->unregisterListener( p );
diff --git a/patches/scsolver/scsolver-source-ui-dialog-cxx.diff b/patches/scsolver/scsolver-source-ui-dialog-cxx.diff
index 33fec98db..8fd5929e6 100644
--- a/patches/scsolver/scsolver-source-ui-dialog-cxx.diff
+++ b/patches/scsolver/scsolver-source-ui-dialog-cxx.diff
@@ -1,6 +1,6 @@
--- /dev/null
+++ scsolver/source/ui/dialog.cxx
-@@ -0,0 +1,964 @@
+@@ -0,0 +1,987 @@
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to
@@ -52,22 +52,17 @@
+#include <com/sun/star/awt/XRadioButton.hpp>
+#include <com/sun/star/awt/XTextComponent.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
-+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/container/XNamed.hpp>
-+
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/frame/XNotifyingDispatch.hpp>
-+
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XServiceName.hpp>
-+
+#include <com/sun/star/sheet/XRangeSelection.hpp>
-+
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+#include <iostream>
@@ -79,17 +74,31 @@
+
+namespace scsolver {
+
-+//---------------------------------------------------------------------------
-+// class ConstDialog Definitions
-+
-+ConstEditDialog::ConstEditDialog( SolverImpl* p )
-+ : BaseDialog( p ),
-+ m_bIsChangeMode( false ),
-+ m_nConstraintId( 0 ),
-+ m_pOKListener( NULL ),
-+ m_pCancelListener( NULL ),
-+ m_pLeftRngListener( NULL ),
-+ m_pRightRngListener( NULL )
++/**
++ * Function object that defines action when a window close event
++ * is received (typically when the user clicks the "x" button on
++ * the title bar).
++ */
++class ConstDlgCloseAction : public SimpleActionObject
++{
++public:
++ virtual void execute(BaseDialog *dlg)
++ {
++ dlg->setVisible(false);
++ static_cast<ConstEditDialog*>(dlg)->reset();
++ }
++};
++
++ConstEditDialog::ConstEditDialog( SolverImpl* p ) :
++ BaseDialog(p),
++ m_bIsChangeMode(false),
++ m_nConstraintId(0),
++ m_pOKListener(NULL),
++ m_pCancelListener(NULL),
++ m_pLeftRngListener(NULL),
++ m_pRightRngListener(NULL),
++ m_pTopWindowListener(NULL),
++ m_pCloseAction( new ConstDlgCloseAction )
+{
+ initialize();
+}
@@ -119,6 +128,10 @@
+ m_pRightRngListener = new RngBtnListener( this, xRngSel, ascii( "editRight" ) );
+ m_pRightRngListener->setSingleCell( true );
+ registerListener( ascii( "btnRight" ), m_pRightRngListener );
++
++ m_pTopWindowListener = new TopWindowListener(this);
++ m_pTopWindowListener->setActionClosing(m_pCloseAction);
++ registerListener(m_pTopWindowListener);
+}
+
+void ConstEditDialog::unregisterListeners()
@@ -127,6 +140,7 @@
+ unregisterListener( ascii( "btnCancel" ), m_pCancelListener );
+ unregisterListener( ascii( "btnLeft" ), m_pLeftRngListener );
+ unregisterListener( ascii( "btnRight" ), m_pRightRngListener );
++ unregisterListener(m_pTopWindowListener);
+}
+
+void ConstEditDialog::initialize()
@@ -341,9 +355,22 @@
+ return true;
+}
+
++//-----------------------------------------------------------------
+
-+//---------------------------------------------------------------------------
-+// class SolverDialog Definitions
++/**
++ * Defines action when a window close event is received.
++ */
++class SolverDlgCloseAction : public SimpleActionObject
++{
++public:
++ virtual void execute(BaseDialog *dlg)
++ {
++ SolverDialog* p = static_cast<SolverDialog*>(dlg);
++ p->setVisible(false);
++ p->getConstEditDialog()->setVisible(false);
++ p->getConstEditDialog()->reset();
++ }
++};
+
+SolverDialog::SolverDialog( SolverImpl* p )
+ : BaseDialog( p ),
@@ -353,9 +380,9 @@
+ m_pSolveErrorDlg( NULL ),
+ m_pSolInfeasibleDlg( NULL ),
+ m_pSolFoundDlg( NULL ),
++ m_pTopWindowListener(NULL),
+ m_pTargetRngListener( NULL ),
+ m_pVarCellsRngListener( NULL ),
-+ m_pWindowMouseListener( NULL ),
+ m_pSolveListener( NULL ),
+ m_pOKListener( NULL ),
+ m_pSaveListener( NULL ),
@@ -366,8 +393,8 @@
+ m_pConstAddListener( NULL ),
+ m_pConstChangeListener( NULL ),
+ m_pConstDeleteListener( NULL ),
-+ m_pWindowFocusListener( NULL ),
-+ m_pConstListBoxListener( NULL )
++ m_pConstListBoxListener( NULL ),
++ m_pCloseAction( new SolverDlgCloseAction )
+{
+ initialize();
+}
@@ -428,7 +455,6 @@
+ addButton( 205, 30, 50, 15, ascii( "btnReset" ), getResStr(SCSOLVER_STR_BTN_RESET) );
+
+ p = addButton( 205, 50, 50, 15, ascii( "btnOptions" ), getResStr(SCSOLVER_STR_BTN_OPTIONS) );
-+ //p->setPropertyValue( "Enabled", aBool ); // disable Options button for now
+
+ addButton( 205, 90, 50, 15, ascii( "btnSave" ), getResStr(SCSOLVER_STR_BTN_SAVE_MODEL) );
+ addButton( 205, 110, 50, 15, ascii( "btnLoad" ), getResStr(SCSOLVER_STR_BTN_LOAD_MODEL) );
@@ -485,11 +511,9 @@
+ m_pConstListBoxListener = new ConstListBoxListener( this );
+ registerListener( ascii( "lbConstraint" ), m_pConstListBoxListener );
+
-+ m_pWindowFocusListener = new WindowFocusListener( this );
-+ registerListener( m_pWindowFocusListener );
-+
-+ m_pWindowMouseListener = new WindowMouseListener( this );
-+ registerListener( m_pWindowMouseListener );
++ m_pTopWindowListener = new TopWindowListener(this);
++ m_pTopWindowListener->setActionClosing(m_pCloseAction);
++ registerListener(m_pTopWindowListener);
+}
+
+void SolverDialog::unregisterListeners()
@@ -510,8 +534,7 @@
+ unregisterListener( ascii( "btnConstChange" ), m_pConstChangeListener );
+ unregisterListener( ascii( "btnConstDelete" ), m_pConstDeleteListener );
+ unregisterListener( ascii( "lbConstraint" ), m_pConstListBoxListener );
-+ unregisterListener( m_pWindowFocusListener );
-+ unregisterListener( m_pWindowMouseListener );
++ unregisterListener(m_pTopWindowListener);
+}
+
+void SolverDialog::setVisible( bool bVisible )
diff --git a/patches/src680/buildfix-hsqldb-1-8-0-7.diff b/patches/src680/buildfix-hsqldb-1-8-0-7.diff
new file mode 100644
index 000000000..ffe36271b
--- /dev/null
+++ b/patches/src680/buildfix-hsqldb-1-8-0-7.diff
@@ -0,0 +1,36 @@
+Index: com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java
+===================================================================
+RCS file: /cvs/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java,v
+retrieving revision 1.7
+diff -u -u -r1.7 StorageFileAccess.java
+--- connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java 8 Sep 2005 04:55:55 -0000 1.7
++++ connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java 28 Oct 2006 16:05:36 -0000
+@@ -80,16 +80,20 @@
+ return new NativeOutputStreamHelper(key,streamName);
+ }
+
+- public void removeElement(java.lang.String filename) throws java.util.NoSuchElementException, java.io.IOException {
+- if ( isStreamElement(key,filename) )
+- removeElement(key,filename);
++ public void removeElement(java.lang.String filename) throws java.util.NoSuchElementException {
++ try {
++ if ( isStreamElement(key,filename) )
++ removeElement(key,filename);
++ } catch (java.io.IOException e) {}
+ }
+
+- public void renameElement(java.lang.String oldName, java.lang.String newName) throws java.util.NoSuchElementException, java.io.IOException {
+- if ( isStreamElement(key,oldName) ){
+- removeElement(key,newName);
+- renameElement(key,oldName, newName);
+- }
++ public void renameElement(java.lang.String oldName, java.lang.String newName) throws java.util.NoSuchElementException {
++ try {
++ if ( isStreamElement(key,oldName) ){
++ removeElement(key,newName);
++ renameElement(key,oldName, newName);
++ }
++ } catch (java.io.IOException e) {}
+ }
+
+ public class FileSync implements FileAccess.FileSync
diff --git a/patches/src680/sd.sal_uInt32_aslong.diff b/patches/src680/sd.sal_uInt32_aslong.diff
new file mode 100644
index 000000000..75a9141c6
--- /dev/null
+++ b/patches/src680/sd.sal_uInt32_aslong.diff
@@ -0,0 +1,16 @@
+Index: source/ui/view/sdview.cxx
+===================================================================
+RCS file: /cvs/graphics/sd/source/ui/view/sdview.cxx,v
+retrieving revision 1.50
+diff -u -r1.50 sdview.cxx
+--- sd/source/ui/view/sdview.cxx 25 Jul 2006 11:53:13 -0000 1.50
++++ sd/source/ui/view/sdview.cxx 23 Oct 2006 09:22:38 -0000
+@@ -567,7 +567,7 @@
+ BOOL bSelected = FALSE;
+ BOOL bMasterPage = FALSE;
+ long nMark;
+- long nMarkMax = pMarkList->GetMarkCount() - 1;
++ long nMarkMax = long(pMarkList->GetMarkCount()) - 1;
+
+ for (nMark = nMarkMax; (nMark >= 0) && !bSelected; nMark--)
+ {
diff --git a/patches/vba/sc-source-ui-vba-vbarange-cxx.diff b/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
index 7eed24954..3b58e257f 100644
--- a/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
+++ b/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
@@ -1,6 +1,6 @@
--- /dev/null
+++ sc/source/ui/vba/vbarange.cxx
-@@ -0,0 +1,2953 @@
+@@ -0,0 +1,3117 @@
+#include <comphelper/processfactory.hxx>
+#include <sfx2/objsh.hxx>
+
@@ -14,6 +14,8 @@
+#include <com/sun/star/text/XTextRange.hpp>
+#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
++#include <com/sun/star/sheet/XSpreadsheetView.hpp>
++#include <com/sun/star/sheet/XCellRangeReferrer.hpp>
+#include <com/sun/star/sheet/XSheetCellRange.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/sheet/XSheetCellCursor.hpp>
@@ -61,6 +63,7 @@
+#include <org/openoffice/vba/Excel/XlSortDataOption.hpp>
+#include <org/openoffice/vba/Excel/XlDeleteShiftDirection.hpp>
+#include <org/openoffice/vba/Excel/XlReferenceStyle.hpp>
++#include <org/openoffice/vba/Excel/XlBordersIndex.hpp>
+
+
+#include <scitems.hxx>
@@ -102,6 +105,7 @@
+// end test includes
+
+using namespace ::org::openoffice;
++using namespace ::org::openoffice::vba::Excel;
+using namespace ::com::sun::star;
+
+// * 1 point = 1/72 inch = 20 twips
@@ -109,6 +113,9 @@
+// * 1 cm = 567 twips
+double lcl_hmmToPoints( double nVal ) { return ( (double)((nVal /1000 ) * 567 ) / 20 ); }
+double lcl_pointsToHmm( double nVal ) { return (double)( ( nVal * 20 ) / 567 ) * 1000; }
++
++static const sal_Int16 supportedIndexTable[] = { XlBordersIndex::xlEdgeLeft, XlBordersIndex::xlEdgeTop, XlBordersIndex::xlEdgeBottom, XlBordersIndex::xlEdgeRight, XlBordersIndex::xlDiagonalDown, XlBordersIndex::xlDiagonalUp, XlBordersIndex::xlInsideVertical, XlBordersIndex::xlInsideHorizontal };
++
+USHORT lcl_pointsToTwips( double nVal )
+{
+ nVal = nVal * static_cast<double>(20);
@@ -240,7 +247,8 @@
+ScDocShell* getDocShellFromRange( const uno::Reference< table::XCellRange >& xRange )
+{
+ // need the ScCellRangeObj to get docshell
-+ ScCellRangeObj* pUno = dynamic_cast< ScCellRangeObj* >( xRange.get() );
++ ScCellRangeObj* pUno = static_cast< ScCellRangeObj* >( xRange.get() );
++
+ if ( !pUno )
+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to access underlying uno range object" ) ), uno::Reference< uno::XInterface >() );
+ return pUno->GetDocShell();
@@ -811,16 +819,18 @@
+ USHORT nFlags = 0;
+ if ( !getCellRangesForAddress( nFlags, sAddress, pDocSh, aCellRanges, eConv ) )
+ throw uno::RuntimeException();
++
++ bool bTabFromReferrer = !( nFlags & SCA_TAB_3D );
++
+ for ( ScRange* pRange = aCellRanges.First() ; pRange; pRange = aCellRanges.Next() )
+ {
-+ bool bTabFromReferrer = !( nFlags & SCA_TAB_3D );
-+ pRange->aStart.SetCol( refRange.aStart.Col() + pRange->aStart.Col() );
-+ pRange->aStart.SetRow( refRange.aStart.Row() + pRange->aStart.Row() );
++ pRange->aStart.SetCol( refRange.aStart.Col() + pRange->aStart.Col() );
++ pRange->aStart.SetRow( refRange.aStart.Row() + pRange->aStart.Row() );
+ pRange->aStart.SetTab( bTabFromReferrer ? refRange.aStart.Tab() : pRange->aStart.Tab() );
-+ pRange->aEnd.SetCol( refRange.aStart.Col() + pRange->aEnd.Col() );
-+ pRange->aEnd.SetRow( refRange.aStart.Row() + pRange->aEnd.Row() );
++ pRange->aEnd.SetCol( refRange.aStart.Col() + pRange->aEnd.Col() );
++ pRange->aEnd.SetRow( refRange.aStart.Row() + pRange->aEnd.Row() );
+ pRange->aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab() : pRange->aEnd.Tab() );
-+ }
++ }
+
+ // Single range
+ if ( aCellRanges.First() == aCellRanges.Last() )
@@ -1911,6 +1921,12 @@
+uno::Reference< vba::XRange >
+ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2 ) throw (uno::RuntimeException)
+{
++ return Range( Cell1, Cell2, false );
++}
++uno::Reference< vba::XRange >
++ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2, bool bForceUseInpuRangeTab ) throw (uno::RuntimeException)
++
++{
+ RangeHelper thisRange( mxRange );
+ uno::Reference< table::XCellRange > xRanges = thisRange.getCellRangeFromSheet();
+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRanges, uno::UNO_QUERY_THROW );
@@ -1919,6 +1935,8 @@
+ xRanges->getCellRangeByPosition( getColumn()-1, getRow()-1,
+ xAddressable->getRangeAddress().EndColumn,
+ xAddressable->getRangeAddress().EndRow );
++ // xAddressable now for this range
++ xAddressable.set( xReferrer, uno::UNO_QUERY_THROW );
+
+
+ if( !Cell1.hasValue() )
@@ -1927,7 +1945,9 @@
+ uno::Reference< XInterface >() );
+
+ table::CellRangeAddress resultAddress;
++ table::CellRangeAddress parentRangeAddress = xAddressable->getRangeAddress();
+
++ ScRange aRange;
+ // Cell1 defined only
+ if ( !Cell2.hasValue() )
+ {
@@ -1952,13 +1972,49 @@
+ resultAddress.StartRow = ( cell1.StartRow < cell2.StartRow ) ? cell1.StartRow : cell2.StartRow;
+ resultAddress.EndColumn = ( cell1.EndColumn > cell2.EndColumn ) ? cell1.EndColumn : cell2.EndColumn;
+ resultAddress.EndRow = ( cell1.EndRow > cell2.EndRow ) ? cell1.EndRow : cell2.EndRow;
++ if ( bForceUseInpuRangeTab )
++ {
++ // this is a call from Application.Range( x,y )
++ // its possiblefor x or y to specify a different sheet from
++ // the current or active on ( but they must be the same )
++ if ( cell1.Sheet != cell2.Sheet )
++ throw uno::RuntimeException();
++ parentRangeAddress.Sheet = cell1.Sheet;
++ }
++ else
++ {
++ // this is not a call from Application.Range( x,y )
++ // if a different sheet from this range is specified it's
++ // an error
++ if ( parentRangeAddress.Sheet != cell1.Sheet
++ || parentRangeAddress.Sheet != cell2.Sheet
++ )
++ throw uno::RuntimeException();
++
++ }
++ ScUnoConversion::FillScRange( aRange, resultAddress );
+ }
-+ return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext,
-+ xReferrer->getCellRangeByPosition(
-+ resultAddress.StartColumn,
-+ resultAddress.StartRow,
-+ resultAddress.EndColumn,
-+ resultAddress.EndRow ) ) );
++ ScRange parentAddress;
++ ScUnoConversion::FillScRange( parentAddress, parentRangeAddress);
++ uno::Reference< table::XCellRange > xCellRange;
++ if ( aRange.aStart.Col() >= 0 && aRange.aStart.Row() >= 0 && aRange.aEnd.Col() >= 0 && aRange.aEnd.Row() >= 0 )
++ {
++ sal_Int32 nStartX = parentAddress.aStart.Col() + aRange.aStart.Col();
++ sal_Int32 nStartY = parentAddress.aStart.Row() + aRange.aStart.Row();
++ sal_Int32 nEndX = parentAddress.aStart.Col() + aRange.aEnd.Col();
++ sal_Int32 nEndY = parentAddress.aStart.Row() + aRange.aEnd.Row();
++
++ if ( nStartX <= nEndX && nEndX <= parentAddress.aEnd.Col() &&
++ nStartY <= nEndY && nEndY <= parentAddress.aEnd.Row() )
++ {
++ ScRange aNew( (SCCOL)nStartX, (SCROW)nStartY, parentAddress.aStart.Tab(),
++ (SCCOL)nEndX, (SCROW)nEndY, parentAddress.aEnd.Tab() );
++ xCellRange = new ScCellRangeObj( getDocShellFromRange( mxRange ), aNew );
++ }
++ }
++
++ return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext, xCellRange ) );
++
+}
+
+// Allow access to underlying openoffice uno api ( useful for debugging
@@ -2268,7 +2324,13 @@
+{
+ uno::Reference< table::XCellRange > xRanges( xDoc, uno::UNO_QUERY_THROW );
+ ScCellRangeObj* pRanges = dynamic_cast< ScCellRangeObj* >( xRanges.get() );
-+ ScAddress::Details dDetails( ScAddress::CONV_XL_A1, 0, 0 );
++ ScAddress::Convention eConv = ScAddress::CONV_XL_A1; // see if there is a match with a named range
++
++ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
++ ScDocShell* pDocSh = getDocShell( xModel );
++ eConv = pDocSh->GetDocument()->GetAddressConvention();
++
++ ScAddress::Details dDetails( eConv, 0, 0 );
+
+ uno::Reference< table::XCellRange > xRange;
+ if ( pRanges )
@@ -2732,7 +2794,7 @@
+uno::Reference< beans::XPropertySetInfo >
+ScVbaRange::getPropertySetInfo( ) throw (uno::RuntimeException)
+{
-+ uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
++ static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+
@@ -2890,6 +2952,53 @@
+ return m_Borders->Item( item );
+}
+
++uno::Any SAL_CALL
++ScVbaRange::BorderAround( const css::uno::Any& LineStyle, const css::uno::Any& Weight,
++ const css::uno::Any& ColorIndex, const css::uno::Any& Color ) throw (css::uno::RuntimeException)
++{
++ sal_Int32 nCount = m_Borders->getCount();
++ uno::Reference< vba::XBorders > xBorders( m_Borders, uno::UNO_QUERY_THROW);
++ for( sal_Int32 i = 0; i < nCount; i++ )
++ {
++ const sal_Int32 nLineType = supportedIndexTable[i];
++ switch( nLineType )
++ {
++ case XlBordersIndex::xlEdgeLeft:
++ case XlBordersIndex::xlEdgeTop:
++ case XlBordersIndex::xlEdgeBottom:
++ case XlBordersIndex::xlEdgeRight:
++ {
++ uno::Reference< vba::XBorder > xBorder( m_Borders->Item( uno::makeAny( nLineType ) ), uno::UNO_QUERY_THROW );
++ if( LineStyle.hasValue() )
++ {
++ xBorder->setLineStyle( LineStyle );
++ }
++ if( Weight.hasValue() )
++ {
++ xBorder->setWeight( Weight );
++ }
++ if( ColorIndex.hasValue() )
++ {
++ xBorder->setColorIndex( ColorIndex );
++ }
++ if( Color.hasValue() )
++ {
++ xBorder->setColor( Color );
++ }
++ break;
++ }
++ case XlBordersIndex::xlInsideVertical:
++ case XlBordersIndex::xlInsideHorizontal:
++ case XlBordersIndex::xlDiagonalDown:
++ case XlBordersIndex::xlDiagonalUp:
++ break;
++ default:
++ return uno::makeAny( sal_False );
++ }
++ }
++ return uno::makeAny( sal_True );
++}
++
+uno::Any SAL_CALL
+ScVbaRange::getRowHeight() throw (uno::RuntimeException)
+{
@@ -2954,3 +3063,58 @@
+ throw uno::RuntimeException( rtl::OUString::createFromAscii("General Error creating range - Unknown" ), uno::Reference< uno::XInterface >() );
+ return pUnoRangesBase;
+}
++
++// #TODO remove this ugly application processing
++// Process an application Range request e.g. 'Range("a1,b2,a4:b6")
++uno::Reference< vba::XRange >
++ScVbaRange::ApplicationRange( const uno::Reference< uno::XComponentContext >& xContext, const css::uno::Any &Cell1, const css::uno::Any &Cell2 ) throw (css::uno::RuntimeException)
++{
++ // Althought the documentation seems clear that Range without a
++ // qualifier then its a shortcut for ActiveSheet.Range
++ // however, similarly Application.Range is apparently also a
++ // shortcut for ActiveSheet.Range
++ // The is however a subtle behavioural difference I've come across
++ // wrt to named ranges.
++ // If a named range "test" exists { Sheet1!$A1 } and the active sheet
++ // is Sheet2 then the following will fail
++ // msgbox ActiveSheet.Range("test").Address ' failes
++ // msgbox WorkSheets("Sheet2").Range("test").Address
++ // but !!!
++ // msgbox Range("test").Address ' works
++ // msgbox Application.Range("test").Address ' works
++
++ // Single param Range
++ rtl::OUString sRangeName;
++ Cell1 >>= sRangeName;
++ if ( Cell1.hasValue() && !Cell2.hasValue() && sRangeName.getLength() )
++ {
++ const static rtl::OUString sNamedRanges( RTL_CONSTASCII_USTRINGPARAM("NamedRanges"));
++ uno::Reference< beans::XPropertySet > xPropSet( getCurrentDocument(), uno::UNO_QUERY_THROW );
++
++ uno::Reference< container::XNameAccess > xNamed( xPropSet->getPropertyValue( sNamedRanges ), uno::UNO_QUERY_THROW );
++ uno::Reference< sheet::XCellRangeReferrer > xReferrer;
++ try
++ {
++ xReferrer.set ( xNamed->getByName( sRangeName ), uno::UNO_QUERY );
++ }
++ catch( uno::Exception& e )
++ {
++ // do nothing
++ }
++ if ( xReferrer.is() )
++ {
++ uno::Reference< table::XCellRange > xRange = xReferrer->getReferredCells();
++ if ( xRange.is() )
++ {
++ uno::Reference< vba::XRange > xVbRange = new ScVbaRange( xContext, xRange );
++ return xVbRange;
++ }
++ }
++ }
++ uno::Reference< sheet::XSpreadsheetView > xView( getCurrentDocument()->getCurrentController(), uno::UNO_QUERY );
++ uno::Reference< table::XCellRange > xSheetRange( xView->getActiveSheet(), uno::UNO_QUERY_THROW );
++ ScVbaRange* pRange = new ScVbaRange( xContext, xSheetRange );
++ uno::Reference< vba::XRange > xVbSheetRange( pRange );
++ return pRange->Range( Cell1, Cell2, true );
++}
++
diff --git a/patches/vba/vba-accent-in-module.diff b/patches/vba/vba-accent-in-module.diff
new file mode 100644
index 000000000..a268f2325
--- /dev/null
+++ b/patches/vba/vba-accent-in-module.diff
@@ -0,0 +1,14 @@
+--- /data4/sles/ooo-build-LATEST-copy/ooo-build/build/ood680-m5/basic/source/classes/sbxmod.cxx 2006-10-19 11:56:13.000000000 +0100
++++ basic/source/classes/sbxmod.cxx 2006-10-23 11:20:09.000000000 +0100
+@@ -543,6 +543,11 @@ void SbModule::SetSource32( const ::rtl:
+ eCurTok = aTok.Next();
+ if( eCurTok == COMPATIBLE )
+ aTok.SetCompatible( true );
++ else if ( eCurTok == VBASUPPORT )
++ {
++ if( ( aTok.Next() == NUMBER ) && ( aTok.GetDbl()== 1 ) )
++ aTok.SetCompatible( true );
++ }
+ }
+ }
+ eLastTok = eCurTok;
diff --git a/patches/vba/vba-support-export-palette.diff b/patches/vba/vba-support-export-palette.diff
index 4feab0705..fafd2c264 100644
--- a/patches/vba/vba-support-export-palette.diff
+++ b/patches/vba/vba-support-export-palette.diff
@@ -23,7 +23,7 @@ retrieving revision 1.26
diff -u -p -r1.26 xistyle.cxx
--- sc/source/filter/excel/xistyle.cxx 13 Jan 2006 16:58:37 -0000 1.26
+++ sc/source/filter/excel/xistyle.cxx 13 Mar 2006 12:58:17 -0000
-@@ -136,11 +136,72 @@
+@@ -136,11 +136,71 @@
#include "root.hxx"
@@ -72,7 +72,7 @@ diff -u -p -r1.26 xistyle.cxx
+ if( SfxObjectShell* pDocShell = mrRoot.GetDocShell() )
+ {
+ // copy values in color palette
-+ sal_Int16 nColors = maColorTable.size() ? maColorTable.size() : GetColorCount();
++ sal_Int16 nColors = maColorTable.size();
+ ColorDataVec aColors;
+ aColors.resize( nColors );
+ for( sal_uInt16 nIndex = 0; nIndex < nColors; ++nIndex )
@@ -93,7 +93,6 @@ diff -u -p -r1.26 xistyle.cxx
- XclDefaultPalette( rRoot )
+ XclDefaultPalette( rRoot ), mrRoot( rRoot )
{
-+ ExportPalette();
}
ColorData XclImpPalette::GetColorData( sal_uInt16 nXclIndex ) const
diff --git a/scratch/scsolver/source/inc/xcalc.hxx b/scratch/scsolver/source/inc/xcalc.hxx
index a26783d60..bd9ab71de 100644
--- a/scratch/scsolver/source/inc/xcalc.hxx
+++ b/scratch/scsolver/source/inc/xcalc.hxx
@@ -119,8 +119,10 @@ public:
void setCellFormula( const table::CellAddress&, const rtl::OUString& ) const;
void setCellValue( const table::CellAddress&, double ) const;
- void disableCellUpdates();
- void enableCellUpdates();
+ void disableCellUpdates() const;
+ void enableCellUpdates() const;
+
+ void addMenuItem() const;
private:
Reference< uno::XComponentContext > m_xCC;
diff --git a/scratch/scsolver/source/ui/optiondlg.cxx b/scratch/scsolver/source/ui/optiondlg.cxx
index 278f841f9..2f576692b 100644
--- a/scratch/scsolver/source/ui/optiondlg.cxx
+++ b/scratch/scsolver/source/ui/optiondlg.cxx
@@ -37,6 +37,7 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
+using namespace std;
namespace scsolver {
@@ -63,9 +64,37 @@ public:
}
};
+/**
+ * Specifies the action to perform when the window closing event
+ * is received (typically when the user clicks the close button
+ * on the title bar).
+ */
+class OptionDlgWinCloseAction : public SimpleActionObject
+{
+public:
+ virtual void execute( BaseDialog *dlg )
+ {
+ dlg->close();
+ }
+};
+
+//-----------------------------------------------------------------
+
+struct OptionDialogImpl
+{
+ auto_ptr<ActionObject> pActionOK;
+ auto_ptr<SimpleActionObject> pActionWinClose;
+
+ TopWindowListener* pTopWinListener;
+ ActionListener* pOKListener;
+ CloseBtnListener* pCloseListener;
+};
+
+//-----------------------------------------------------------------
+
OptionDialog::OptionDialog( SolverImpl* p ) :
BaseDialog( p ),
- m_pActionOK( new OptionDlgOKAction )
+ m_pImpl( new OptionDialogImpl )
{
initialize();
}
@@ -100,16 +129,24 @@ void OptionDialog::initialize()
void OptionDialog::registerListeners()
{
- m_pOKListener = new ActionListener( this, m_pActionOK.get() );
- registerListener( ascii("btnOK"), m_pOKListener );
+ m_pImpl->pActionOK.reset( new OptionDlgOKAction );
+ m_pImpl->pOKListener = new ActionListener( this, m_pImpl->pActionOK.get() );
+ registerListener( ascii("btnOK"), m_pImpl->pOKListener );
- m_pCloseListener = new CloseBtnListener(this);
- registerListener( ascii("btnCancel"), m_pCloseListener );
+ m_pImpl->pCloseListener = new CloseBtnListener(this);
+ registerListener( ascii("btnCancel"), m_pImpl->pCloseListener );
+
+ m_pImpl->pActionWinClose.reset( new OptionDlgWinCloseAction );
+ m_pImpl->pTopWinListener = new TopWindowListener(this);
+ m_pImpl->pTopWinListener->setActionClosing(m_pImpl->pActionWinClose.get());
+ registerListener( m_pImpl->pTopWinListener );
}
void OptionDialog::unregisterListeners() throw()
{
- unregisterListener( ascii("btnCancel"), m_pCloseListener );
+ unregisterListener( ascii("btnOK"), m_pImpl->pOKListener );
+ unregisterListener( ascii("btnCancel"), m_pImpl->pCloseListener );
+ unregisterListener( m_pImpl->pTopWinListener );
}
bool OptionDialog::doneRangeSelection() const
@@ -117,6 +154,11 @@ bool OptionDialog::doneRangeSelection() const
return false;
}
+void OptionDialog::close()
+{
+ setVisible(false);
+}
+
const rtl::OUString OptionDialog::getDialogName() const
{
return ascii("OptionDialog");