[Libreoffice-commits] .: 76 commits - dbaccess/inc dbaccess/Library_dbu.mk dbaccess/qa dbaccess/source reportdesign/source
Jan Holesovsky
kendy at kemper.freedesktop.org
Fri May 27 12:14:49 PDT 2011
dbaccess/Library_dbu.mk | 1
dbaccess/inc/dbaccess_helpid.hrc | 1
dbaccess/qa/complex/dbaccess/Query.java | 49 +--
dbaccess/qa/complex/dbaccess/RowSet.java | 4
dbaccess/qa/complex/dbaccess/SingleSelectQueryComposer.java | 90 +++---
dbaccess/source/core/api/CacheSet.cxx | 15 +
dbaccess/source/core/api/CacheSet.hxx | 3
dbaccess/source/core/api/KeySet.cxx | 61 +++-
dbaccess/source/core/api/KeySet.hxx | 9
dbaccess/source/core/api/OptimisticSet.cxx | 5
dbaccess/source/core/api/OptimisticSet.hxx | 3
dbaccess/source/core/api/RowSet.cxx | 87 +++--
dbaccess/source/core/api/RowSetBase.cxx | 9
dbaccess/source/core/api/RowSetBase.hxx | 3
dbaccess/source/core/api/RowSetCache.cxx | 163 +++++++---
dbaccess/source/core/api/SingleSelectQueryComposer.cxx | 28 +
dbaccess/source/core/dataaccess/SharedConnection.cxx | 2
dbaccess/source/core/dataaccess/datasource.cxx | 2
dbaccess/source/core/misc/DatabaseDataProvider.cxx | 2
dbaccess/source/ui/app/AppController.cxx | 106 ++++---
dbaccess/source/ui/app/AppControllerGen.cxx | 1
dbaccess/source/ui/app/AppDetailView.cxx | 8
dbaccess/source/ui/app/app.src | 6
dbaccess/source/ui/app/closeveto.cxx | 180 ++++++++++++
dbaccess/source/ui/app/closeveto.hxx | 67 ++++
dbaccess/source/ui/browser/brwctrlr.cxx | 18 -
dbaccess/source/ui/browser/genericcontroller.cxx | 3
dbaccess/source/ui/browser/unodatbr.cxx | 58 ++-
dbaccess/source/ui/control/FieldDescControl.cxx | 30 --
dbaccess/source/ui/dlg/DbAdminImpl.cxx | 2
dbaccess/source/ui/dlg/advancedsettings.cxx | 33 +-
dbaccess/source/ui/dlg/advancedsettings.hrc | 1
dbaccess/source/ui/dlg/advancedsettings.hxx | 1
dbaccess/source/ui/dlg/advancedsettings.src | 17 -
dbaccess/source/ui/dlg/dbadmin.cxx | 2
dbaccess/source/ui/inc/dbu_qry.hrc | 4
dbaccess/source/ui/inc/dsitems.hxx | 3
dbaccess/source/ui/inc/dsmeta.hxx | 1
dbaccess/source/ui/misc/DExport.cxx | 3
dbaccess/source/ui/misc/databaseobjectview.cxx | 3
dbaccess/source/ui/misc/dsmeta.cxx | 1
dbaccess/source/ui/querydesign/QueryDesignView.cxx | 12
dbaccess/source/ui/querydesign/query.src | 8
dbaccess/source/ui/tabledesign/FieldDescriptions.cxx | 1
dbaccess/source/ui/tabledesign/TEditControl.cxx | 22 -
reportdesign/source/core/sdr/RptObject.cxx | 32 +-
reportdesign/source/ui/inc/ReportSection.hxx | 4
reportdesign/source/ui/inc/ReportWindow.hxx | 9
reportdesign/source/ui/inspection/GeometryHandler.cxx | 8
reportdesign/source/ui/misc/ColorListener.cxx | 16 -
reportdesign/source/ui/misc/UITools.cxx | 23 -
reportdesign/source/ui/report/DesignView.cxx | 5
reportdesign/source/ui/report/EndMarker.cxx | 5
reportdesign/source/ui/report/ReportController.cxx | 8
reportdesign/source/ui/report/ReportSection.cxx | 163 +++++-----
reportdesign/source/ui/report/ReportWindow.cxx | 14
reportdesign/source/ui/report/ScrollHelper.cxx | 2
reportdesign/source/ui/report/SectionView.cxx | 1
reportdesign/source/ui/report/SectionWindow.cxx | 29 +
reportdesign/source/ui/report/StartMarker.cxx | 17 -
reportdesign/source/ui/report/ViewsWindow.cxx | 78 ++++-
reportdesign/source/ui/report/dlgedfunc.cxx | 16 -
62 files changed, 1065 insertions(+), 493 deletions(-)
New commits:
commit 1b9d68febdb9b19e3255aa88b0b52bb3b5682669
Merge: 7c6061d... 5d3edf5...
Author: Jan Holesovsky <kendy at suse.cz>
Date: Fri May 27 20:49:14 2011 +0200
Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/base
commit 7c6061d701fb4c64ab998223fd4328435c23d994
Merge: 3152eef... 2452624...
Author: Jan Holesovsky <kendy at suse.cz>
Date: Fri May 27 20:39:17 2011 +0200
Merge remote-tracking branch 'origin/integration/dev300_m106'
Conflicts:
dbaccess/source/ui/app/makefile.mk
diff --cc dbaccess/Library_dbu.mk
index 68472cd,0000000..7f8c6db
mode 100644,000000..100644
--- a/dbaccess/Library_dbu.mk
+++ b/dbaccess/Library_dbu.mk
@@@ -1,320 -1,0 +1,321 @@@
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# David Tardon, Red Hat Inc. <dtardon at redhat.com>
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Major Contributor(s):
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Library_Library,dbu))
+
+$(eval $(call gb_Library_add_precompiled_header,dbu,$(SRCDIR)/dbaccess/inc/pch/precompiled_dbaccess))
+
+$(eval $(call gb_Library_set_include,dbu,\
+ $$(INCLUDE) \
+ -I$(realpath $(SRCDIR)/dbaccess/inc) \
+ -I$(realpath $(SRCDIR)/dbaccess/inc/pch) \
+ -I$(realpath $(SRCDIR)/dbaccess/source/inc) \
+ -I$(realpath $(SRCDIR)/dbaccess/source/ui/inc) \
+ -I$(WORKDIR)/inc/dbaccess \
+ -I$(OUTDIR)/inc \
+ -I$(OUTDIR)/inc/offuh \
+))
+
+$(eval $(call gb_Library_set_defs,dbu,\
+ $$(DEFS) \
+ -DDBACCESS_DLLIMPLEMENTATION \
+ $(if $(filter YES,$(SYSTEM_ODBC_HEADERS)),-DSYSTEM_ODBC_HEADERS) \
+))
+
+ifeq (,$(strip $(PROF_EDITION)))
+$(eval $(call gb_Library_set_defs,dbu,\
+ $$(DEFS) \
+ -DWINDOWS_VISTA_PSDK \
+))
+endif
+
+ifeq ($(GUI)$(COM),WNTGCC) # for adoint.h
+$(eval $(call gb_Library_set_cflags,dbu,\
+ $$(CFLAGS) \
+ -fpermissive \
+))
+endif
+
+$(eval $(call gb_Library_add_linked_libs,dbu,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ dba \
+ dbtools \
+ editeng \
+ fwe \
+ sal \
+ salhelper \
+ sfx \
+ sot \
+ svl \
+ svt \
+ svxcore \
+ svx \
+ tk \
+ tl \
+ ucbhelper \
+ utl \
+ vcl \
+ $(gb_STDLIBS) \
+))
+
+ifeq ($(GUI),WNT)
+$(eval $(call gb_Library_add_linked_libs,dbu,\
+ ole32 \
+ oleaut32 \
+ uuid \
+))
+endif
+
+$(eval $(call gb_Library_set_componentfile,dbu,dbaccess/util/dbu))
+
+$(eval $(call gb_Library_add_exception_objects,dbu,\
+ dbaccess/source/shared/dbu_reghelper \
+ dbaccess/source/ui/app/AppController \
+ dbaccess/source/ui/app/AppControllerDnD \
+ dbaccess/source/ui/app/AppControllerGen \
+ dbaccess/source/ui/app/AppDetailPageHelper \
+ dbaccess/source/ui/app/AppDetailView \
+ dbaccess/source/ui/app/AppIconControl \
+ dbaccess/source/ui/app/AppSwapWindow \
+ dbaccess/source/ui/app/AppTitleWindow \
+ dbaccess/source/ui/app/AppView \
++ dbaccess/source/ui/app/closeveto \
+ dbaccess/source/ui/app/subcomponentmanager \
+ dbaccess/source/ui/browser/AsyncronousLink \
+ dbaccess/source/ui/browser/brwctrlr \
+ dbaccess/source/ui/browser/brwview \
+ dbaccess/source/ui/browser/dataview \
+ dbaccess/source/ui/browser/dbexchange \
+ dbaccess/source/ui/browser/dbloader \
+ dbaccess/source/ui/browser/dbtreemodel \
+ dbaccess/source/ui/browser/dbtreeview \
+ dbaccess/source/ui/browser/dsbrowserDnD \
+ dbaccess/source/ui/browser/dsEntriesNoExp \
+ dbaccess/source/ui/browser/exsrcbrw \
+ dbaccess/source/ui/browser/formadapter \
+ dbaccess/source/ui/browser/genericcontroller \
+ dbaccess/source/ui/browser/sbagrid \
+ dbaccess/source/ui/browser/sbamultiplex \
+ dbaccess/source/ui/browser/unodatbr \
+ dbaccess/source/ui/control/charsetlistbox \
+ dbaccess/source/ui/control/ColumnControlWindow \
+ dbaccess/source/ui/control/curledit \
+ dbaccess/source/ui/control/dbtreelistbox \
+ dbaccess/source/ui/control/FieldDescControl \
+ dbaccess/source/ui/control/listviewitems \
+ dbaccess/source/ui/control/marktree \
+ dbaccess/source/ui/control/opendoccontrols \
+ dbaccess/source/ui/control/RelationControl \
+ dbaccess/source/ui/control/sqledit \
+ dbaccess/source/ui/control/SqlNameEdit \
+ dbaccess/source/ui/control/statusbarontroller \
+ dbaccess/source/ui/control/TableGrantCtrl \
+ dbaccess/source/ui/control/tabletree \
+ dbaccess/source/ui/control/toolboxcontroller \
+ dbaccess/source/ui/control/undosqledit \
+ dbaccess/source/ui/control/VertSplitView \
+ dbaccess/source/ui/dlg/AdabasStat \
+ dbaccess/source/ui/dlg/admincontrols \
+ dbaccess/source/ui/dlg/adminpages \
+ dbaccess/source/ui/dlg/adtabdlg \
+ dbaccess/source/ui/dlg/advancedsettings \
+ dbaccess/source/ui/dlg/CollectionView \
+ dbaccess/source/ui/dlg/ConnectionHelper \
+ dbaccess/source/ui/dlg/ConnectionPage \
+ dbaccess/source/ui/dlg/ConnectionPageSetup \
+ dbaccess/source/ui/dlg/dbadmin \
+ dbaccess/source/ui/dlg/DbAdminImpl \
+ dbaccess/source/ui/dlg/dbfindex \
+ dbaccess/source/ui/dlg/DBSetupConnectionPages \
+ dbaccess/source/ui/dlg/dbwiz \
+ dbaccess/source/ui/dlg/dbwizsetup \
+ dbaccess/source/ui/dlg/detailpages \
+ dbaccess/source/ui/dlg/directsql \
+ dbaccess/source/ui/dlg/dlgattr \
+ dbaccess/source/ui/dlg/dlgsave \
+ dbaccess/source/ui/dlg/dlgsize \
+ dbaccess/source/ui/dlg/DriverSettings \
+ dbaccess/source/ui/dlg/dsselect \
+ dbaccess/source/ui/dlg/finteraction \
+ dbaccess/source/ui/dlg/generalpage \
+ dbaccess/source/ui/dlg/indexdialog \
+ dbaccess/source/ui/dlg/indexfieldscontrol \
+ dbaccess/source/ui/dlg/odbcconfig \
+ dbaccess/source/ui/dlg/paramdialog \
+ dbaccess/source/ui/dlg/queryfilter \
+ dbaccess/source/ui/dlg/queryorder \
+ dbaccess/source/ui/dlg/RelationDlg \
+ dbaccess/source/ui/dlg/sqlmessage \
+ dbaccess/source/ui/dlg/tablespage \
+ dbaccess/source/ui/dlg/TablesSingleDlg \
+ dbaccess/source/ui/dlg/TextConnectionHelper \
+ dbaccess/source/ui/dlg/textconnectionsettings \
+ dbaccess/source/ui/dlg/UserAdmin \
+ dbaccess/source/ui/dlg/UserAdminDlg \
+ dbaccess/source/ui/misc/asyncmodaldialog \
+ dbaccess/source/ui/misc/charsets \
+ dbaccess/source/ui/misc/controllerframe \
+ dbaccess/source/ui/misc/databaseobjectview \
+ dbaccess/source/ui/misc/datasourceconnector \
+ dbaccess/source/ui/misc/dbaundomanager \
+ dbaccess/source/ui/misc/dbsubcomponentcontroller \
+ dbaccess/source/ui/misc/defaultobjectnamecheck \
+ dbaccess/source/ui/misc/DExport \
+ dbaccess/source/ui/misc/dsmeta \
+ dbaccess/source/ui/misc/HtmlReader \
+ dbaccess/source/ui/misc/imageprovider \
+ dbaccess/source/ui/misc/indexcollection \
+ dbaccess/source/ui/misc/linkeddocuments \
+ dbaccess/source/ui/misc/moduledbu \
+ dbaccess/source/ui/misc/propertysetitem \
+ dbaccess/source/ui/misc/propertystorage \
+ dbaccess/source/ui/misc/RowSetDrop \
+ dbaccess/source/ui/misc/RtfReader \
+ dbaccess/source/ui/misc/singledoccontroller \
+ dbaccess/source/ui/misc/stringlistitem \
+ dbaccess/source/ui/misc/TableCopyHelper \
+ dbaccess/source/ui/misc/TokenWriter \
+ dbaccess/source/ui/misc/ToolBoxHelper \
+ dbaccess/source/ui/misc/uiservices \
+ dbaccess/source/ui/misc/UITools \
+ dbaccess/source/ui/misc/WColumnSelect \
+ dbaccess/source/ui/misc/WCopyTable \
+ dbaccess/source/ui/misc/WCPage \
+ dbaccess/source/ui/misc/WExtendPages \
+ dbaccess/source/ui/misc/WNameMatch \
+ dbaccess/source/ui/misc/WTypeSelect \
+ dbaccess/source/ui/querydesign/ConnectionLine \
+ dbaccess/source/ui/querydesign/ConnectionLineAccess \
+ dbaccess/source/ui/querydesign/JAccess \
+ dbaccess/source/ui/querydesign/JoinController \
+ dbaccess/source/ui/querydesign/JoinDesignView \
+ dbaccess/source/ui/querydesign/JoinExchange \
+ dbaccess/source/ui/querydesign/JoinTableView \
+ dbaccess/source/ui/querydesign/QTableConnection \
+ dbaccess/source/ui/querydesign/QTableConnectionData \
+ dbaccess/source/ui/querydesign/QTableWindow \
+ dbaccess/source/ui/querydesign/QTableWindowData \
+ dbaccess/source/ui/querydesign/querycontainerwindow \
+ dbaccess/source/ui/querydesign/querycontroller \
+ dbaccess/source/ui/querydesign/QueryDesignView \
+ dbaccess/source/ui/querydesign/querydlg \
+ dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct \
+ dbaccess/source/ui/querydesign/QueryTabConnUndoAction \
+ dbaccess/source/ui/querydesign/QueryTableView \
+ dbaccess/source/ui/querydesign/QueryTabWinUndoAct \
+ dbaccess/source/ui/querydesign/QueryTextView \
+ dbaccess/source/ui/querydesign/queryview \
+ dbaccess/source/ui/querydesign/QueryViewSwitch \
+ dbaccess/source/ui/querydesign/SelectionBrowseBox \
+ dbaccess/source/ui/querydesign/TableConnection \
+ dbaccess/source/ui/querydesign/TableConnectionData \
+ dbaccess/source/ui/querydesign/TableFieldDescription \
+ dbaccess/source/ui/querydesign/TableWindow \
+ dbaccess/source/ui/querydesign/TableWindowAccess \
+ dbaccess/source/ui/querydesign/TableWindowData \
+ dbaccess/source/ui/querydesign/TableWindowListBox \
+ dbaccess/source/ui/querydesign/TableWindowTitle \
+ dbaccess/source/ui/relationdesign/RelationController \
+ dbaccess/source/ui/relationdesign/RelationDesignView \
+ dbaccess/source/ui/relationdesign/RelationTableView \
+ dbaccess/source/ui/relationdesign/RTableConnection \
+ dbaccess/source/ui/relationdesign/RTableConnectionData \
+ dbaccess/source/ui/tabledesign/FieldDescGenWin \
+ dbaccess/source/ui/tabledesign/FieldDescriptions \
+ dbaccess/source/ui/tabledesign/TableController \
+ dbaccess/source/ui/tabledesign/TableDesignControl \
+ dbaccess/source/ui/tabledesign/TableDesignHelpBar \
+ dbaccess/source/ui/tabledesign/TableDesignView \
+ dbaccess/source/ui/tabledesign/TableFieldControl \
+ dbaccess/source/ui/tabledesign/TableFieldDescWin \
+ dbaccess/source/ui/tabledesign/TableRow \
+ dbaccess/source/ui/tabledesign/TableRowExchange \
+ dbaccess/source/ui/tabledesign/TableUndo \
+ dbaccess/source/ui/tabledesign/TEditControl \
+ dbaccess/source/ui/uno/admindlg \
+ dbaccess/source/ui/uno/AdvancedSettingsDlg \
+ dbaccess/source/ui/uno/ColumnControl \
+ dbaccess/source/ui/uno/ColumnModel \
+ dbaccess/source/ui/uno/ColumnPeer \
+ dbaccess/source/ui/uno/composerdialogs \
+ dbaccess/source/ui/uno/dbinteraction \
+ dbaccess/source/ui/uno/DBTypeWizDlg \
+ dbaccess/source/ui/uno/DBTypeWizDlgSetup \
+ dbaccess/source/ui/uno/TableFilterDlg \
+ dbaccess/source/ui/uno/textconnectionsettings_uno \
+ dbaccess/source/ui/uno/unoadmin \
+ dbaccess/source/ui/uno/unoDirectSql \
+ dbaccess/source/ui/uno/unosqlmessage \
+ dbaccess/source/ui/uno/UserSettingsDlg \
+))
+
+$(eval $(call gb_Library_add_noexception_objects,dbu,\
+ dbaccess/source/shared/dbustrings \
+ dbaccess/source/ui/control/ScrollHelper \
+ dbaccess/source/ui/dlg/optionalboolitem \
+ dbaccess/source/ui/querydesign/ConnectionLineData \
+ dbaccess/source/ui/querydesign/TableFieldInfo \
+))
+
+ifeq ($(GUI),WNT)
+ifneq (,$(strip $(WINDOWS_VISTA_PSDK)))
+ifeq (,$(strip $(PROF_EDITION)))
+dbu_DISABLE_ADO := $(true)
+endif
+endif
+ifneq ($(dbu_DISABLE_ADO),$(true))
+$(eval $(call gb_Library_add_noexception_objects,dbu,\
+ dbaccess/source/ui/dlg/adodatalinks \
+))
+endif
+endif
+
+# workaround for issue http://qa.openoffice.org/issues/show_bug.cgi?id=102305 Linux specific
+ifeq ($(COM),GCC)
+$(eval $(call gb_Library_add_cxxobjects,dbu,\
+ dbaccess/source/ui/uno/copytablewizard \
+ , $(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILERNOOPTFLAGS) \
+))
+else
+$(eval $(call gb_Library_add_exception_objects,dbu,\
+ dbaccess/source/ui/uno/copytablewizard \
+))
+endif
+
+$(foreach object,\
+ dbaccess/source/ui/dlg/ConnectionHelper \
+ dbaccess/source/ui/dlg/ConnectionPage \
+ dbaccess/source/ui/dlg/ConnectionPageSetup \
+ dbaccess/source/ui/dlg/DBSetupConnectionPages \
+ dbaccess/source/ui/dlg/detailpages \
+ dbaccess/source/ui/dlg/tablespage \
+ dbaccess/source/ui/dlg/TextConnectionHelper \
+ ,$(eval $(call gb_CxxObject_get_target,$(object)) : $(WORKDIR)/inc/dbaccess/AutoControls.hrc))
+
+# vim: set noet ts=4 sw=4:
diff --cc dbaccess/source/core/api/RowSetCache.cxx
index 4fba5f4,403afc4..364bfbf
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@@ -267,6 -273,16 +273,16 @@@ ORowSetCache::ORowSetCache(const Refere
if(!bAllKeysFound )
{
+ if ( bBookmarkable )
- {
++ {
+ // here I know that we have a read only bookmarable cursor
+ _xRs->beforeFirst();
+ m_nPrivileges = Privilege::SELECT;
+ m_pCacheSet = new WrappedResultSet(i_nMaxRows);
+ m_xCacheSet = m_pCacheSet;
+ m_pCacheSet->construct(_xRs,i_sRowSetFilter);
+ return;
+ }
m_pCacheSet = new OStaticSet(i_nMaxRows);
m_xCacheSet = m_pCacheSet;
m_pCacheSet->construct(_xRs,i_sRowSetFilter);
@@@ -703,10 -740,22 +740,22 @@@ sal_Bool ORowSetCache::fillMatrix(sal_I
{
OSL_ENSURE(_nNewStartPos != _nNewEndPos,"ORowSetCache::fillMatrix: StartPos and EndPos can not be equal!");
// fill the whole window with new data
- ORowSetMatrix::iterator aIter = m_pMatrix->begin();
- sal_Bool bCheck = m_pCacheSet->absolute(_nNewStartPos); // -1 no need to
+ ORowSetMatrix::iterator aIter;
+ sal_Int32 i;
+ sal_Bool bCheck;
+ if ( _nNewStartPos == -1 )
+ {
+ aIter = m_pMatrix->begin() + m_nEndPos;
+ i = m_nEndPos+1;
+ }
+ else
+ {
+ aIter = m_pMatrix->begin();
+ i = _nNewStartPos;
+ }
+ bCheck = m_pCacheSet->absolute(i); // -1 no need to
+
-
+
- sal_Int32 i=_nNewStartPos;
for(;i<_nNewEndPos;++i,++aIter)
{
if(bCheck)
diff --cc dbaccess/source/ui/app/AppDetailView.cxx
index 37a2368,89b21d6..21fe3ca
--- a/dbaccess/source/ui/app/AppDetailView.cxx
+++ b/dbaccess/source/ui/app/AppDetailView.cxx
@@@ -367,6 -369,12 +369,12 @@@ OTasksWindow::OTasksWindow(Window* _pPa
m_aHelpText.SetHelpId(HID_APP_HELP_TEXT);
m_aDescription.SetHelpId(HID_APP_DESCRIPTION_TEXT);
m_aDescription.SetText(ModuleRes(STR_DESCRIPTION));
+
+ ImageProvider aImageProvider;
+ Image aFolderImage = aImageProvider.getFolderImage( DatabaseObject::FORM );
+ m_aCreation.SetDefaultCollapsedEntryBmp( aFolderImage );
+ m_aCreation.SetDefaultExpandedEntryBmp( aFolderImage );
-
++
ImplInitSettings(sal_True,sal_True,sal_True);
}
// -----------------------------------------------------------------------------
diff --cc dbaccess/source/ui/app/closeveto.cxx
index 0000000,936c769..558df26
mode 000000,100644..100644
--- a/dbaccess/source/ui/app/closeveto.cxx
+++ b/dbaccess/source/ui/app/closeveto.cxx
@@@ -1,0 -1,180 +1,180 @@@
+ /*************************************************************************
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+ #include "precompiled_dbaccess.hxx"
+
+ #include "closeveto.hxx"
+
+ /** === begin UNO includes === **/
+ #include <com/sun/star/util/XCloseable.hpp>
+ /** === end UNO includes === **/
+
+ #include <cppuhelper/implbase1.hxx>
+ #include <rtl/ref.hxx>
+ #include <tools/diagnose_ex.h>
+
+ //......................................................................................................................
+ namespace dbaui
+ {
+ //......................................................................................................................
+
+ /** === begin UNO using === **/
+ using ::com::sun::star::uno::Reference;
+ using ::com::sun::star::uno::XInterface;
+ using ::com::sun::star::uno::UNO_QUERY;
+ using ::com::sun::star::uno::UNO_QUERY_THROW;
+ using ::com::sun::star::uno::UNO_SET_THROW;
+ using ::com::sun::star::uno::Exception;
+ using ::com::sun::star::uno::RuntimeException;
+ using ::com::sun::star::uno::Any;
+ using ::com::sun::star::uno::makeAny;
+ using ::com::sun::star::uno::Sequence;
+ using ::com::sun::star::uno::Type;
+ using ::com::sun::star::util::XCloseable;
+ using ::com::sun::star::util::XCloseListener;
+ using ::com::sun::star::util::CloseVetoException;
+ using ::com::sun::star::lang::EventObject;
+ /** === end UNO using === **/
+
+ //==================================================================================================================
+ //= CloseListener_Impl
+ //==================================================================================================================
+ typedef ::cppu::WeakImplHelper1 < XCloseListener
+ > CloseListener_Base;
+ class DBACCESS_DLLPRIVATE CloseListener_Impl : public CloseListener_Base
+ {
+ public:
+ CloseListener_Impl()
+ :m_bHasOwnership( false )
+ {
+ }
+
+ // XCloseListener
+ virtual void SAL_CALL queryClosing( const EventObject& Source, ::sal_Bool GetsOwnership ) throw (CloseVetoException, RuntimeException);
+ virtual void SAL_CALL notifyClosing( const EventObject& Source ) throw (RuntimeException);
+
+ // XEventListener
+ virtual void SAL_CALL disposing( const EventObject& Source) throw (RuntimeException);
+
+ bool hasOwnership() const { return m_bHasOwnership; }
+
+ protected:
+ ~CloseListener_Impl()
+ {
+ }
+
+ private:
+ bool m_bHasOwnership;
+ };
+
+ //------------------------------------------------------------------------------------------------------------------
+ void SAL_CALL CloseListener_Impl::queryClosing( const EventObject& i_source, ::sal_Bool i_deliverOwnership ) throw (CloseVetoException, RuntimeException)
+ {
+ (void)i_source;
+
+ if ( !m_bHasOwnership )
+ m_bHasOwnership = i_deliverOwnership;
+
+ throw CloseVetoException();
+ }
-
++
+ //------------------------------------------------------------------------------------------------------------------
+ void SAL_CALL CloseListener_Impl::notifyClosing( const EventObject& i_source ) throw (RuntimeException)
+ {
+ (void)i_source;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ void SAL_CALL CloseListener_Impl::disposing( const EventObject& i_source ) throw (RuntimeException)
+ {
+ (void)i_source;
+ }
+
+ //==================================================================================================================
+ //= CloseVeto_Data
+ //==================================================================================================================
+ struct DBACCESS_DLLPRIVATE CloseVeto_Data
+ {
+ Reference< XCloseable > xCloseable;
+ ::rtl::Reference< CloseListener_Impl > pListener;
+ };
+
+ //==================================================================================================================
+ //= operations
+ //==================================================================================================================
+ namespace
+ {
+ //--------------------------------------------------------------------------------------------------------------
+ void lcl_init( CloseVeto_Data& i_data, const Reference< XInterface >& i_closeable )
+ {
+ i_data.xCloseable.set( i_closeable, UNO_QUERY );
+ ENSURE_OR_RETURN_VOID( i_data.xCloseable.is(), "CloseVeto: the component is not closeable!" );
+
+ i_data.pListener = new CloseListener_Impl;
+ i_data.xCloseable->addCloseListener( i_data.pListener.get() );
+ }
+
+ //--------------------------------------------------------------------------------------------------------------
+ void lcl_deinit( CloseVeto_Data& i_data )
+ {
+ if ( !i_data.xCloseable.is() )
+ return;
+
+ i_data.xCloseable->removeCloseListener( i_data.pListener.get() );
+ if ( i_data.pListener->hasOwnership() )
+ {
+ try
+ {
+ i_data.xCloseable->close( sal_True );
+ }
+ catch( const CloseVetoException& ) { }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ }
+ }
+ }
+ }
+
+ //==================================================================================================================
+ //= CloseVeto
+ //==================================================================================================================
+ //------------------------------------------------------------------------------------------------------------------
+ CloseVeto::CloseVeto( const Reference< XInterface >& i_closeable )
+ :m_pData( new CloseVeto_Data )
+ {
+ lcl_init( *m_pData, i_closeable );
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ CloseVeto::~CloseVeto()
+ {
+ lcl_deinit( *m_pData );
+ }
+
+ //......................................................................................................................
+ } // namespace dbaui
+ //......................................................................................................................
diff --cc dbaccess/source/ui/querydesign/QueryDesignView.cxx
index be56580,01b52bd..18bca37
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@@ -2405,9 -2412,10 +2412,10 @@@ namespac
{
OQueryController& rController = static_cast<OQueryController&>(_pView->getController());
::connectivity::OSQLParseNode* pGroupBy = pSelectRoot->getChild(3)->getChild(2)->getChild(2);
- OTableFieldDescRef aDragInfo = new OTableFieldDesc();
-
++
for( sal_uInt32 i=0 ; i < pGroupBy->count() && eOk == eErrorCode; ++i )
{
+ OTableFieldDescRef aDragInfo = new OTableFieldDesc();
::connectivity::OSQLParseNode* pParamRef = NULL;
::connectivity::OSQLParseNode* pArgument = pGroupBy->getChild( i );
if(SQL_ISRULE(pArgument,column_ref))
diff --cc reportdesign/source/ui/misc/ColorListener.cxx
index 4b77339,0909933..0b6f261
--- a/reportdesign/source/ui/misc/ColorListener.cxx
+++ b/reportdesign/source/ui/misc/ColorListener.cxx
@@@ -81,9 -81,12 +81,12 @@@ void OColorListener::DataChanged( cons
// -----------------------------------------------------------------------------
void OColorListener::setCollapsed(sal_Bool _bCollapsed)
{
- m_bCollapsed = _bCollapsed;
- if ( m_aCollapsedLink.IsSet() )
- m_aCollapsedLink.Call(this);
+ if ( m_bCollapsed != _bCollapsed )
+ {
- m_bCollapsed = _bCollapsed;
- if ( m_aCollapsedLink.IsSet() )
++ m_bCollapsed = _bCollapsed;
++ if ( m_aCollapsedLink.IsSet() )
+ m_aCollapsedLink.Call(this);
+ }
}
// -----------------------------------------------------------------------------
void OColorListener::setMarked(sal_Bool _bMark)
diff --cc reportdesign/source/ui/report/ReportSection.cxx
index 66b5658,0a6a5e9..746505b
--- a/reportdesign/source/ui/report/ReportSection.cxx
+++ b/reportdesign/source/ui/report/ReportSection.cxx
@@@ -538,78 -527,90 +527,90 @@@ void OReportSection::_propertyChanged(c
else
{
uno::Reference<report::XReportDefinition> xReportDefinition = m_xSection->getReportDefinition();
+ const sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_LEFTMARGIN);
+ const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
+ const sal_Int32 nPaperWidth = getStyleProperty<awt::Size>(xReportDefinition,PROPERTY_PAPERSIZE).Width;
-
++
if ( _rEvent.PropertyName == PROPERTY_LEFTMARGIN )
{
- const sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_LEFTMARGIN);
m_pPage->SetLftBorder(nLeftMargin);
}
else if ( _rEvent.PropertyName == PROPERTY_RIGHTMARGIN )
{
- const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
m_pPage->SetRgtBorder(nRightMargin);
}
-
- try
+ const Size aOldPageSize = m_pPage->GetSize();
+ sal_Int32 nNewHeight = 5*m_xSection->getHeight();
+ if ( aOldPageSize.Height() != nNewHeight || nPaperWidth != aOldPageSize.Width() )
{
- const sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_LEFTMARGIN);
- const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
- const sal_Int32 nPaperWidth = getStyleProperty<awt::Size>(xReportDefinition,PROPERTY_PAPERSIZE).Width;
- const sal_Int32 nCount = m_xSection->getCount();
- for (sal_Int32 i = 0; i < nCount; ++i)
+ m_pPage->SetSize( Size( nPaperWidth,nNewHeight) );
+ const Size aPageSize = m_pPage->GetSize();
+ m_pView->SetWorkArea( Rectangle( Point( nLeftMargin, 0), Size(aPageSize.Width() - nLeftMargin - nRightMargin,aPageSize.Height()) ) );
+ }
+ impl_adjustObjectSizePosition(nPaperWidth,nLeftMargin,nRightMargin);
+ m_pParent->Invalidate(INVALIDATE_UPDATE | INVALIDATE_TRANSPARENT);
+ }
- }
++ }
+ }
+ void OReportSection::impl_adjustObjectSizePosition(sal_Int32 i_nPaperWidth,sal_Int32 i_nLeftMargin,sal_Int32 i_nRightMargin)
+ {
+ try
+ {
+ sal_Int32 nRightBorder = i_nPaperWidth - i_nRightMargin;
+ const sal_Int32 nCount = m_xSection->getCount();
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ {
+ bool bChanged = false;
+ uno::Reference< report::XReportComponent> xReportComponent(m_xSection->getByIndex(i),uno::UNO_QUERY_THROW);
+ awt::Point aPos = xReportComponent->getPosition();
+ awt::Size aSize = xReportComponent->getSize();
+ SvxShape* pShape = SvxShape::getImplementation( xReportComponent );
+ SdrObject* pObject = pShape ? pShape->GetSdrObject() : NULL;
+ if ( pObject )
+ {
+ OObjectBase* pBase = dynamic_cast<OObjectBase*>(pObject);
+ pBase->EndListening(sal_False);
+ if ( aPos.X < i_nLeftMargin )
+ {
+ aPos.X = i_nLeftMargin;
+ bChanged = true;
+ }
+ if ( (aPos.X + aSize.Width) > nRightBorder )
{
- bool bChanged = false;
- uno::Reference< report::XReportComponent> xReportComponent(m_xSection->getByIndex(i),uno::UNO_QUERY_THROW);
- awt::Point aPos = xReportComponent->getPosition();
- awt::Size aSize = xReportComponent->getSize();
- SvxShape* pShape = SvxShape::getImplementation( xReportComponent );
- SdrObject* pObject = pShape ? pShape->GetSdrObject() : NULL;
- if ( pObject )
+ aPos.X = nRightBorder - aSize.Width;
+ if ( aPos.X < i_nLeftMargin )
{
- OObjectBase* pBase = dynamic_cast<OObjectBase*>(pObject);
- pBase->EndListening(sal_False);
- if ( aPos.X < nLeftMargin )
- {
- aPos.X = nLeftMargin;
- bChanged = true;
- }
- if ( (aPos.X + aSize.Width) > (nPaperWidth - nRightMargin) )
- {
- aPos.X = nPaperWidth - nRightMargin - aSize.Width;
- if ( aPos.X < nLeftMargin )
- {
- aSize.Width += aPos.X - nLeftMargin;
- aPos.X = nLeftMargin;
- // add listener around
- pBase->StartListening();
- xReportComponent->setSize(aSize);
- pBase->EndListening(sal_False);
- }
- bChanged = true;
- }
- if ( aPos.Y < 0 )
- aPos.Y = 0;
- if ( bChanged )
- {
- xReportComponent->setPosition(aPos);
- correctOverlapping(pObject,*this,false);
- Rectangle aRet(VCLPoint(xReportComponent->getPosition()),VCLSize(xReportComponent->getSize()));
- aRet.setHeight(aRet.getHeight() + 1);
- aRet.setWidth(aRet.getWidth() + 1);
- if ( m_xSection.is() && (static_cast<sal_uInt32>(aRet.getHeight() + aRet.Top()) > m_xSection->getHeight()) )
- m_xSection->setHeight(aRet.getHeight() + aRet.Top());
- }
+ aSize.Width += aPos.X - i_nLeftMargin;
+ aPos.X = i_nLeftMargin;
+ // add listener around
pBase->StartListening();
+ xReportComponent->setSize(aSize);
+ pBase->EndListening(sal_False);
}
+ bChanged = true;
}
+ if ( aPos.Y < 0 )
+ aPos.Y = 0;
+ if ( bChanged )
+ {
+ xReportComponent->setPosition(aPos);
+ correctOverlapping(pObject,*this,false);
+ Rectangle aRet(VCLPoint(xReportComponent->getPosition()),VCLSize(xReportComponent->getSize()));
+ aRet.setHeight(aRet.getHeight() + 1);
+ aRet.setWidth(aRet.getWidth() + 1);
+ if ( m_xSection.is() && (static_cast<sal_uInt32>(aRet.getHeight() + aRet.Top()) > m_xSection->getHeight()) )
+ m_xSection->setHeight(aRet.getHeight() + aRet.Top());
+
+ pObject->RecalcBoundRect();
+ }
+ pBase->StartListening();
}
- catch(uno::Exception)
- {
- OSL_FAIL("Exception caught: OReportSection::_propertyChanged(");
- }
-
- Resize();
}
}
+ catch(uno::Exception)
+ {
+ OSL_FAIL("Exception caught: OReportSection::_propertyChanged(");
+ }
}
//------------------------------------------------------------------------------
sal_Bool OReportSection::handleKeyEvent(const KeyEvent& _rEvent)
diff --cc reportdesign/source/ui/report/ReportWindow.cxx
index 41ff6ab,4710ba0..680b23a
--- a/reportdesign/source/ui/report/ReportWindow.cxx
+++ b/reportdesign/source/ui/report/ReportWindow.cxx
@@@ -436,6 -441,15 +441,15 @@@ sal_uInt16 OReportWindow::getZoomFactor
return nZoom;
}
+ // -----------------------------------------------------------------------------
+ void OReportWindow::_propertyChanged(const beans::PropertyChangeEvent& _rEvent) throw( uno::RuntimeException)
+ {
+ (void)_rEvent;
+ Resize();
+ m_aViewsWindow.Resize();
+ static sal_Int32 nIn = INVALIDATE_TRANSPARENT;
- Invalidate(nIn);
++ Invalidate(nIn);
+ }
//==================================================================
} //rptui
//==================================================================
diff --cc reportdesign/source/ui/report/ViewsWindow.cxx
index b2601e1,7858483..03b003d
--- a/reportdesign/source/ui/report/ViewsWindow.cxx
+++ b/reportdesign/source/ui/report/ViewsWindow.cxx
@@@ -246,8 -246,9 +246,9 @@@ void OViewsWindow::resize(const OSectio
if ( bSet )
{
impl_resizeSectionWindow(*pSectionWindow.get(),aStartPoint,bSet);
- pSectionWindow->Invalidate(INVALIDATE_NOERASE | INVALIDATE_NOCHILDREN | INVALIDATE_TRANSPARENT);
- pSectionWindow->getStartMarker().Invalidate(INVALIDATE_NOERASE | INVALIDATE_NOCHILDREN | INVALIDATE_TRANSPARENT );
+ static sal_Int32 nIn = INVALIDATE_UPDATE | INVALIDATE_TRANSPARENT;
- pSectionWindow->getStartMarker().Invalidate( nIn ); // INVALIDATE_NOERASE |INVALIDATE_NOCHILDREN| INVALIDATE_TRANSPARENT
++ pSectionWindow->getStartMarker().Invalidate( nIn ); // INVALIDATE_NOERASE |INVALIDATE_NOCHILDREN| INVALIDATE_TRANSPARENT
+ pSectionWindow->getEndMarker().Invalidate( nIn );
}
}
Fraction aStartWidth(long(REPORT_STARTMARKER_WIDTH));
@@@ -1544,11 -1546,56 +1546,56 @@@ void OViewsWindow::handleKey(const KeyC
for (sal_uInt32 i = 0; !bCheck && i < rMarkList.GetMarkCount();++i )
{
SdrMark* pMark = rMarkList.GetMark(i);
- bCheck = dynamic_cast<OUnoObject*>(pMark->GetMarkedSdrObj()) != NULL;
+ bCheck = dynamic_cast<OUnoObject*>(pMark->GetMarkedSdrObj()) != NULL|| dynamic_cast<OOle2Obj*>(pMark->GetMarkedSdrObj());
}
- if ( bCheck && isOver(aMarkRect,*rReportSection.getPage(),rView) )
- break;
-
++
+ if ( bCheck )
+ {
+ SdrObject* pOverlapped = isOver(aMarkRect,*rReportSection.getPage(),rView);
+ if ( pOverlapped )
+ {
+ do
+ {
+ Rectangle aOver = pOverlapped->GetLastBoundRect();
+ Point aPos;
+ if ( nCode == KEY_UP )
+ {
+ aPos.X() = aMarkRect.Left();
+ aPos.Y() = aOver.Top() - aMarkRect.getHeight();
+ nY += (aPos.Y() - aMarkRect.Top());
+ }
+ else if ( nCode == KEY_DOWN )
+ {
+ aPos.X() = aMarkRect.Left();
+ aPos.Y() = aOver.Bottom();
+ nY += (aPos.Y() - aMarkRect.Top());
+ }
+ else if ( nCode == KEY_LEFT )
+ {
+ aPos.X() = aOver.Left() - aMarkRect.getWidth();
+ aPos.Y() = aMarkRect.Top();
+ nX += (aPos.X() - aMarkRect.Left());
+ }
+ else if ( nCode == KEY_RIGHT )
+ {
+ aPos.X() = aOver.Right();
+ aPos.Y() = aMarkRect.Top();
+ nX += (aPos.X() - aMarkRect.Left());
+ }
+
+ aMarkRect.SetPos(aPos);
+ if ( !rWorkArea.IsInside( aMarkRect ) )
+ {
+ break;
+ }
+ pOverlapped = isOver(aMarkRect,*rReportSection.getPage(),rView);
+ }
+ while(pOverlapped != NULL);
+ if (pOverlapped != NULL)
+ break;
+ }
+ }
}
if ( nX != 0 || nY != 0 )
diff --cc reportdesign/source/ui/report/dlgedfunc.cxx
index 9acf262,a6a5eb4..0ae30f8
--- a/reportdesign/source/ui/report/dlgedfunc.cxx
+++ b/reportdesign/source/ui/report/dlgedfunc.cxx
@@@ -450,8 -455,7 +455,7 @@@ void DlgEdFunc::deactivateOle(bool _bSe
xObj->changeState( embed::EmbedStates::RUNNING );
m_bUiActive = false;
if ( m_bShowPropertyBrowser )
- {
+ {
- OReportController& rController = m_pParent->getSectionWindow()->getViewsWindow()->getView()->getReportView()->getController();
rController.executeChecked(SID_SHOW_PROPERTYBROWSER,uno::Sequence< beans::PropertyValue >());
}
commit 2452624487700f9aa0bc385f66d7ca7818e9544d
Author: Thorsten Behrens <tbehrens at novell.com>
Date: Mon May 23 18:33:42 2011 +0200
Remove hc paramater from aImageProvider.getFolderImage
This fixes the m106 merge.
diff --git a/dbaccess/source/ui/app/AppDetailView.cxx b/dbaccess/source/ui/app/AppDetailView.cxx
index fd31602..89b21d6 100644
--- a/dbaccess/source/ui/app/AppDetailView.cxx
+++ b/dbaccess/source/ui/app/AppDetailView.cxx
@@ -371,7 +371,7 @@ OTasksWindow::OTasksWindow(Window* _pParent,OApplicationDetailView* _pDetailView
m_aDescription.SetText(ModuleRes(STR_DESCRIPTION));
ImageProvider aImageProvider;
- Image aFolderImage = aImageProvider.getFolderImage( DatabaseObject::FORM, false );
+ Image aFolderImage = aImageProvider.getFolderImage( DatabaseObject::FORM );
m_aCreation.SetDefaultCollapsedEntryBmp( aFolderImage );
m_aCreation.SetDefaultExpandedEntryBmp( aFolderImage );
commit e88a4fb61318f2282e21f4f55bf6e67075200fd4
Merge: 7e8a488... a446d94...
Author: Jan Holesovsky <kendy at suse.cz>
Date: Fri Apr 22 15:07:40 2011 +0200
Merge commit 'ooo/DEV300_m106' into libreoffice-3-4
Conflicts:
dbaccess/source/core/api/CacheSet.cxx
dbaccess/source/core/api/KeySet.cxx
dbaccess/source/core/api/KeySet.hxx
dbaccess/source/core/api/OptimisticSet.hxx
dbaccess/source/core/api/RowSet.cxx
dbaccess/source/core/api/RowSetCache.cxx
dbaccess/source/core/api/query.cxx
dbaccess/source/core/dataaccess/SharedConnection.cxx
dbaccess/source/ui/app/AppController.cxx
dbaccess/source/ui/app/makefile.mk
dbaccess/source/ui/control/FieldDescControl.cxx
dbaccess/source/ui/querydesign/query.src
dbaccess/source/ui/tabledesign/TEditControl.cxx
reportdesign/source/ui/report/ReportController.cxx
reportdesign/source/ui/report/ReportSection.cxx
reportdesign/source/ui/report/SectionWindow.cxx
reportdesign/source/ui/report/StartMarker.cxx
reportdesign/source/ui/report/ViewsWindow.cxx
diff --cc dbaccess/qa/complex/dbaccess/SingleSelectQueryComposer.java
index 09a5975,a0e1c3c..f40aff9
--- a/dbaccess/qa/complex/dbaccess/SingleSelectQueryComposer.java
+++ b/dbaccess/qa/complex/dbaccess/SingleSelectQueryComposer.java
@@@ -161,6 -163,7 +163,7 @@@ public class SingleSelectQueryComposer
try
{
System.out.println("check setElementaryQuery");
-
++
final String simpleQuery2 = "SELECT * FROM \"customers\" WHERE \"Name\" = 'oranges'";
m_composer.setElementaryQuery(simpleQuery2);
assertTrue("setElementaryQuery/getQuery inconsistent", m_composer.getQuery().equals(simpleQuery2));
@@@ -174,15 -177,15 +177,15 @@@
checkAttributeAccess("Group", "\"City\"");
checkAttributeAccess("Order", "\"Address\"");
checkAttributeAccess("HavingClause", "\"ID\" <> 4");
-
+
final XIndexAccess orderColumns = m_composer.getOrderColumns();
assertTrue("Order columns doesn't exist: \"Address\"",
- orderColumns != null && orderColumns.getCount() == 1 && orderColumns.getByIndex(0) != null);
+ orderColumns != null && orderColumns.getCount() == 1 && orderColumns.getByIndex(0) != null);
-
+
final XIndexAccess groupColumns = m_composer.getGroupColumns();
assertTrue("Group columns doesn't exist: \"City\"",
- groupColumns != null && groupColumns.getCount() == 1 && groupColumns.getByIndex(0) != null);
+ groupColumns != null && groupColumns.getCount() == 1 && groupColumns.getByIndex(0) != null);
-
+
// XColumnsSupplier
final XColumnsSupplier xSelectColumns = UnoRuntime.queryInterface(XColumnsSupplier.class, m_composer);
assertTrue("no select columns, or wrong number of select columns",
@@@ -244,6 -252,7 +252,7 @@@
final XIndexAccess parameters = suppParams.getParameters();
final String expectedParamNames[] =
-
++
{
"cname",
"Product Name"
@@@ -276,6 -285,7 +285,7 @@@
m_composer.setQuery("SELECT * FROM \"customers\"");
final Object initArgs[] =
-
++
{
new NamedValue("AutomaticAddition", Boolean.valueOf(true))
};
diff --cc dbaccess/source/core/api/CacheSet.cxx
index ca3c4d1,19a3bdd..39121e0
--- a/dbaccess/source/core/api/CacheSet.cxx
+++ b/dbaccess/source/core/api/CacheSet.cxx
@@@ -639,7 -691,21 +639,22 @@@ sal_Bool SAL_CALL OCacheSet::previous
m_bInserted = m_bUpdated = m_bDeleted = sal_False;
return m_xDriverSet->previous();
}
+
+ sal_Bool OCacheSet::last_checked( sal_Bool /*i_bFetchRow*/)
+ {
+ return last();
+ }
-// -------------------------------------------------------------------------
++
+ sal_Bool OCacheSet::previous_checked( sal_Bool /*i_bFetchRow*/ )
+ {
+ return previous();
+ }
-// -------------------------------------------------------------------------
++
+ sal_Bool OCacheSet::absolute_checked( sal_Int32 row,sal_Bool /*i_bFetchRow*/ )
+ {
+ return absolute(row);
+ }
-// -------------------------------------------------------------------------
++
void SAL_CALL OCacheSet::refreshRow( ) throw(SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OCacheSet::refreshRow" );
diff --cc dbaccess/source/core/api/KeySet.cxx
index 5ae3385,8420c5e..a1a97b8
--- a/dbaccess/source/core/api/KeySet.cxx
+++ b/dbaccess/source/core/api/KeySet.cxx
@@@ -1178,23 -1241,29 +1186,29 @@@ sal_Bool SAL_CALL OKeySet::first( ) th
++m_aKeyIter;
if(m_aKeyIter == m_aKeyMap.end() && !fetchRow())
m_aKeyIter = m_aKeyMap.end();
-
- refreshRow();
+ else
+ refreshRow();
return m_aKeyIter != m_aKeyMap.end() && m_aKeyIter != m_aKeyMap.begin();
}
-// -----------------------------------------------------------------------------
+
sal_Bool SAL_CALL OKeySet::last( ) throw(SQLException, RuntimeException)
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::last" );
+ return last_checked(sal_True);
+ }
+
+ sal_Bool OKeySet::last_checked( sal_Bool i_bFetchRow)
+ {
+ RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::last_checked" );
m_bInserted = m_bUpdated = m_bDeleted = sal_False;
fillAllRows();
m_aKeyIter = m_aKeyMap.end();
--m_aKeyIter;
- refreshRow();
+ if ( i_bFetchRow )
+ refreshRow();
return m_aKeyIter != m_aKeyMap.end() && m_aKeyIter != m_aKeyMap.begin();
}
-// -----------------------------------------------------------------------------
+
sal_Int32 SAL_CALL OKeySet::getRow( ) throw(SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::getRow" );
@@@ -1203,9 -1272,13 +1217,13 @@@
return ::std::distance(m_aKeyMap.begin(),m_aKeyIter);
}
-// -----------------------------------------------------------------------------
+
sal_Bool SAL_CALL OKeySet::absolute( sal_Int32 row ) throw(SQLException, RuntimeException)
{
+ return absolute_checked(row,sal_True);
+ }
+ sal_Bool OKeySet::absolute_checked( sal_Int32 row,sal_Bool i_bFetchRow )
+ {
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::absolute" );
m_bInserted = m_bUpdated = m_bDeleted = sal_False;
OSL_ENSURE(row,"absolute(0) isn't allowed!");
@@@ -1252,8 -1331,8 +1276,8 @@@ sal_Bool SAL_CALL OKeySet::relative( sa
}
return absolute(getRow()+rows);
}
-// -----------------------------------------------------------------------------
+
- sal_Bool SAL_CALL OKeySet::previous( ) throw(SQLException, RuntimeException)
+ sal_Bool OKeySet::previous_checked( sal_Bool i_bFetchRow )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::previous" );
m_bInserted = m_bUpdated = m_bDeleted = sal_False;
@@@ -1264,7 -1344,13 +1289,12 @@@
}
return m_aKeyIter != m_aKeyMap.begin();
}
-// -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL OKeySet::previous( ) throw(SQLException, RuntimeException)
+ {
+ return previous_checked(sal_True);
+ }
+ // -----------------------------------------------------------------------------
void SAL_CALL OKeySet::refreshRow() throw(SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::refreshRow" );
@@@ -1319,11 -1405,20 +1349,20 @@@
OSL_ENSURE(m_xSet.is(),"No resultset form statement!");
sal_Bool bOK = m_xSet->next();
if ( !bOK )
- m_aKeyIter = m_aKeyMap.end();
- m_xRow.set(m_xSet,UNO_QUERY);
- OSL_ENSURE(m_xRow.is(),"No row form statement!");
+ {
+ OKeySetMatrix::iterator aTemp = m_aKeyIter;
+ ++m_aKeyIter;
+ m_aKeyMap.erase(aTemp);
+ --m_rRowCount;
+ refreshRow();
+ }
+ else
+ {
+ m_xRow.set(m_xSet,UNO_QUERY);
+ OSL_ENSURE(m_xRow.is(),"No row form statement!");
+ }
}
-// -----------------------------------------------------------------------------
+
sal_Bool OKeySet::fetchRow()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OKeySet::fetchRow" );
diff --cc dbaccess/source/core/api/KeySet.hxx
index 826ec1a,3ce26fc..9932696
--- a/dbaccess/source/core/api/KeySet.hxx
+++ b/dbaccess/source/core/api/KeySet.hxx
@@@ -104,7 -113,8 +104,8 @@@ namespace dbacces
::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer > m_xComposer;
::rtl::OUString m_sUpdateTableName;
::std::vector< ::rtl::OUString > m_aFilterColumns;
+ sal_Int32& m_rRowCount;
-
+
sal_Bool m_bRowCountFinal;
/**
@@@ -151,8 -161,9 +152,9 @@@
const ::rtl::OUString& _rUpdateTableName,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer >& _xComposer,
const ORowSetValueVector& _aParameterValueForCache,
- sal_Int32 i_nMaxRows);
+ sal_Int32 i_nMaxRows,
+ sal_Int32& o_nRowCount);
-
+
// late ctor which can throw exceptions
virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter);
diff --cc dbaccess/source/core/api/OptimisticSet.hxx
index bcada37,c2b9857..b9b8fbe
--- a/dbaccess/source/core/api/OptimisticSet.hxx
+++ b/dbaccess/source/core/api/OptimisticSet.hxx
@@@ -77,8 -80,9 +77,9 @@@ namespace dbacces
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& i_xConnection,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer >& _xComposer,
const ORowSetValueVector& _aParameterValueForCache,
- sal_Int32 i_nMaxRows);
+ sal_Int32 i_nMaxRows,
+ sal_Int32& o_nRowCount);
-
+
// late ctor which can throw exceptions
virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter);
diff --cc dbaccess/source/core/api/RowSet.cxx
index 724df9f,dd0643b..3825516
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@@ -599,9 -595,10 +599,10 @@@ void ORowSet::freeResources( bool _bCom
m_bAfterLast = sal_False;
m_bNew = sal_False;
m_bModified = sal_False;
+ m_bIsInsertRow = sal_False;
m_bLastKnownRowCountFinal = sal_False;
m_nLastKnownRowCount = 0;
- if ( m_aOldRow.isValid() )
+ if ( m_aOldRow.is() )
m_aOldRow->clearRow();
impl_disposeParametersContainer_nothrow();
@@@ -708,9 -708,10 +709,10 @@@ void ORowSet::updateValue(sal_Int32 col
ORowSetValueVector::Vector& rRow = ((*m_aCurrentRow)->get());
ORowSetNotifier aNotify(this,rRow);
m_pCache->updateValue(columnIndex,x,rRow,aNotify.getChangedColumns());
+ m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
}
-// -------------------------------------------------------------------------
+
// XRowUpdate
void SAL_CALL ORowSet::updateNull( sal_Int32 columnIndex ) throw(SQLException, RuntimeException)
{
@@@ -723,9 -724,10 +725,10 @@@
ORowSetValueVector::Vector& rRow = ((*m_aCurrentRow)->get());
ORowSetNotifier aNotify(this,rRow);
m_pCache->updateNull(columnIndex,rRow,aNotify.getChangedColumns());
+ m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
}
-// -------------------------------------------------------------------------
+
void SAL_CALL ORowSet::updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(SQLException, RuntimeException)
{
updateValue(columnIndex,x);
@@@ -810,9 -822,10 +813,10 @@@ void SAL_CALL ORowSet::updateCharacterS
ORowSetValueVector::Vector& rRow = ((*m_aCurrentRow)->get());
ORowSetNotifier aNotify(this,rRow);
m_pCache->updateCharacterStream(columnIndex,x,length,rRow,aNotify.getChangedColumns());
+ m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
}
-// -------------------------------------------------------------------------
+
void SAL_CALL ORowSet::updateObject( sal_Int32 columnIndex, const Any& x ) throw(SQLException, RuntimeException)
{
::connectivity::checkDisposed(ORowSet_BASE1::rBHelper.bDisposed);
@@@ -866,8 -880,10 +871,9 @@@ void SAL_CALL ORowSet::updateNumericObj
ORowSetValueVector::Vector& rRow = ((*m_aCurrentRow)->get());
ORowSetNotifier aNotify(this,rRow);
m_pCache->updateNumericObject(columnIndex,x,scale,rRow,aNotify.getChangedColumns());
+ m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
}
-// -------------------------------------------------------------------------
// XResultSetUpdate
void SAL_CALL ORowSet::insertRow( ) throw(SQLException, RuntimeException)
@@@ -882,63 -898,60 +888,60 @@@
if(!m_pCache || !m_bNew || !m_bModified || m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY)
throwFunctionSequenceException(*this);
- if(m_bModified)
- {
- // remember old value for fire
- sal_Bool bOld = m_bNew;
+ // remember old value for fire
+ sal_Bool bOld = m_bNew;
- ORowSetRow aOldValues;
- if ( !m_aCurrentRow.isNull() )
- aOldValues = new ORowSetValueVector( *(*m_aCurrentRow));
- Sequence<Any> aChangedBookmarks;
- RowsChangeEvent aEvt(*this,RowChangeAction::INSERT,1,aChangedBookmarks);
- notifyAllListenersRowBeforeChange(aGuard,aEvt);
+ ORowSetRow aOldValues;
+ if ( !m_aCurrentRow.isNull() )
- aOldValues = new ORowSetValueVector( m_aCurrentRow->getBody() );
++ aOldValues = new ORowSetValueVector( *(*m_aCurrentRow));
+ Sequence<Any> aChangedBookmarks;
+ RowsChangeEvent aEvt(*this,RowChangeAction::INSERT,1,aChangedBookmarks);
+ notifyAllListenersRowBeforeChange(aGuard,aEvt);
- ::std::vector< Any > aBookmarks;
- sal_Bool bInserted = m_pCache->insertRow(aBookmarks);
+ ::std::vector< Any > aBookmarks;
+ sal_Bool bInserted = m_pCache->insertRow(aBookmarks);
- // make sure that our row is set to the new inserted row before clearing the insert flags in the cache
- m_pCache->resetInsertRow(bInserted);
+ // make sure that our row is set to the new inserted row before clearing the insert flags in the cache
+ m_pCache->resetInsertRow(bInserted);
- // notification order
- // - column values
- setCurrentRow( sal_False, sal_True, aOldValues, aGuard ); // we don't move here
+ // notification order
+ // - column values
+ setCurrentRow( sal_False, sal_True, aOldValues, aGuard ); // we don't move here
- // read-only flag restored
- impl_restoreDataColumnsWriteable_throw();
+ // read-only flag restored
+ impl_restoreDataColumnsWriteable_throw();
- // - rowChanged
- notifyAllListenersRowChanged(aGuard,aEvt);
+ // - rowChanged
+ notifyAllListenersRowChanged(aGuard,aEvt);
-
+
- if ( !aBookmarks.empty() )
- {
- RowsChangeEvent aUpEvt(*this,RowChangeAction::UPDATE,aBookmarks.size(),Sequence<Any>(&(*aBookmarks.begin()),aBookmarks.size()));
- notifyAllListenersRowChanged(aGuard,aUpEvt);
- }
+ if ( !aBookmarks.empty() )
+ {
+ RowsChangeEvent aUpEvt(*this,RowChangeAction::UPDATE,aBookmarks.size(),Sequence<Any>(&(*aBookmarks.begin()),aBookmarks.size()));
+ notifyAllListenersRowChanged(aGuard,aUpEvt);
+ }
- // - IsModified
- if(!m_bModified)
- fireProperty(PROPERTY_ID_ISMODIFIED,sal_False,sal_True);
- OSL_ENSURE( !m_bModified, "ORowSet::insertRow: just updated, but _still_ modified?" );
+ // - IsModified
+ if(!m_bModified)
+ fireProperty(PROPERTY_ID_ISMODIFIED,sal_False,sal_True);
+ OSL_ENSURE( !m_bModified, "ORowSet::insertRow: just updated, but _still_ modified?" );
- // - IsNew
- if(m_bNew != bOld)
- fireProperty(PROPERTY_ID_ISNEW,m_bNew,bOld);
+ // - IsNew
+ if(m_bNew != bOld)
+ fireProperty(PROPERTY_ID_ISNEW,m_bNew,bOld);
- // - RowCount/IsRowCountFinal
- fireRowcount();
- }
+ // - RowCount/IsRowCountFinal
+ fireRowcount();
}
-// -------------------------------------------------------------------------
+
sal_Int32 SAL_CALL ORowSet::getRow( ) throw(SQLException, RuntimeException)
{
::osl::MutexGuard aGuard( *m_pMutex );
- checkCache();
+ checkCache();
// check if we are inserting a row
- return (m_pCache && ( m_pCache->m_bNew || m_bModified )) ? 0 : ORowSetBase::getRow();
+ return (m_pCache && isInsertRow()) ? 0 : ORowSetBase::getRow();
}
-// -------------------------------------------------------------------------
+
void SAL_CALL ORowSet::updateRow( ) throw(SQLException, RuntimeException)
{
::connectivity::checkDisposed(ORowSet_BASE1::rBHelper.bDisposed);
@@@ -2646,8 -2723,10 +2652,9 @@@ void ORowSet::doCancelModification(
m_pCache->cancelRowModification();
}
m_bModified = sal_False;
+ m_bIsInsertRow = sal_False;
}
-// -----------------------------------------------------------------------------
sal_Bool ORowSet::isModification( )
{
return isNew();
@@@ -2663,23 -2744,17 +2670,21 @@@ sal_Bool ORowSet::isNew(
return m_bNew;
}
-// -----------------------------------------------------------------------------
+sal_Bool ORowSet::isPropertyChangeNotificationEnabled() const
+{
+ return m_bPropChangeNotifyEnabled;
+}
+
void ORowSet::checkUpdateIterator()
{
- if(!m_bModified && !m_bNew)
+ if(!m_bIsInsertRow)
{
m_pCache->setUpdateIterator(m_aCurrentRow);
m_aCurrentRow = m_pCache->m_aInsertRow;
- m_bModified = sal_True;
+ m_bIsInsertRow = sal_True;
}
- else if ( m_bNew ) // here we are modifying a value
- m_bModified = sal_True;
}
-// -----------------------------------------------------------------------------
+
void ORowSet::checkUpdateConditions(sal_Int32 columnIndex)
{
checkCache();
diff --cc dbaccess/source/core/api/RowSetBase.cxx
index 0011e23,97719fc..81fbd93
--- a/dbaccess/source/core/api/RowSetBase.cxx
+++ b/dbaccess/source/core/api/RowSetBase.cxx
@@@ -255,9 -258,10 +256,10 @@@ const ORowSetValue& ORowSetBase::impl_g
// currentrow is null when the clone moves the window
positionCache( MOVE_NONE_REFRESH_ONLY );
m_aCurrentRow = m_pCache->m_aMatrixIter;
+ m_bIsInsertRow = sal_False;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getValue: we don't stand on a valid row! Row is null.");
- bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
+ bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
}
if ( bValidCurrentRow )
@@@ -396,9 -400,10 +398,10 @@@ Reference< ::com::sun::star::io::XInput
{
positionCache( MOVE_NONE_REFRESH_ONLY );
m_aCurrentRow = m_pCache->m_aMatrixIter;
+ m_bIsInsertRow = sal_False;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getBinaryStream: we don't stand on a valid row! Row is null.");
- bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->isValid() );
+ bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
}
if ( bValidCurrentRow )
diff --cc dbaccess/source/core/api/RowSetCache.cxx
index 4fba5f4,43b2f58..403afc4
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@@ -172,10 -179,10 +178,10 @@@ ORowSetCache::ORowSetCache(const Refere
OSL_ENSURE(xTabSup.is(),"ORowSet::execute composer isn't a tablesupplier!");
Reference<XNameAccess> xTables = xTabSup->getTables();
Sequence< ::rtl::OUString> aTableNames = xTables->getElementNames();
- if ( aTableNames.getLength() > 1 && !_rUpdateTableName.getLength() && bNeedKeySet )
+ if ( aTableNames.getLength() > 1 && !_rUpdateTableName.getLength() && bNeedKeySet )
{// here we have a join or union and nobody told us which table to update, so we update them all
m_nPrivileges = Privilege::SELECT|Privilege::DELETE|Privilege::INSERT|Privilege::UPDATE;
- OptimisticSet* pCursor = new OptimisticSet(m_aContext,xConnection,_xAnalyzer,_aParameterValueForCache,i_nMaxRows);
+ OptimisticSet* pCursor = new OptimisticSet(m_aContext,xConnection,_xAnalyzer,_aParameterValueForCache,i_nMaxRows,m_nRowCount);
m_pCacheSet = pCursor;
m_xCacheSet = m_pCacheSet;
try
@@@ -265,8 -273,21 +271,18 @@@
// need to check if we could handle this select clause
bAllKeysFound = bAllKeysFound && (nTablesCount == 1 || checkJoin(xConnection,_xAnalyzer,aUpdateTableName));
- // || !(comphelper::hasProperty(PROPERTY_CANUPDATEINSERTEDROWS,xProp) && any2bool(xProp->getPropertyValue(PROPERTY_CANUPDATEINSERTEDROWS)))
-
- // oj removed because keyset uses only the next// || (xProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_RESULTSETTYPE) && comphelper::getINT32(xProp->getPropertyValue(PROPERTY_RESULTSETTYPE)) == ResultSetType::FORWARD_ONLY)
if(!bAllKeysFound )
{
+ if ( bBookmarkable )
+ {
+ // here I know that we have a read only bookmarable cursor
+ _xRs->beforeFirst();
+ m_nPrivileges = Privilege::SELECT;
+ m_pCacheSet = new WrappedResultSet(i_nMaxRows);
+ m_xCacheSet = m_pCacheSet;
+ m_pCacheSet->construct(_xRs,i_sRowSetFilter);
+ return;
+ }
m_pCacheSet = new OStaticSet(i_nMaxRows);
m_xCacheSet = m_pCacheSet;
m_pCacheSet->construct(_xRs,i_sRowSetFilter);
@@@ -434,7 -457,15 +450,14 @@@ void ORowSetCache::setFetchSize(sal_Int
m_nStartPos = 0;
m_nEndPos = _nSize;
}
+ else if (m_nStartPos < m_nPosition && m_nPosition < m_nEndPos)
+ {
+ sal_Int32 nNewSt = -1;
+ fillMatrix(nNewSt,_nSize+1);
+ m_nStartPos = 0;
+ m_nEndPos = _nSize;
+ }
}
-// -------------------------------------------------------------------------
// XResultSetMetaDataSupplier
Reference< XResultSetMetaData > ORowSetCache::getMetaData( )
@@@ -538,15 -571,18 +561,18 @@@ void ORowSetCache::updateNull(sal_Int3
checkUpdateConditions(columnIndex);
ORowSetValueVector::Vector& rInsert = ((*m_aInsertRow)->get());
- rInsert[columnIndex].setBound(sal_True);
- rInsert[columnIndex].setNull();
- rInsert[columnIndex].setModified();
- io_aRow[columnIndex].setNull();
+ if ( !rInsert[columnIndex].isNull() )
+ {
+ rInsert[columnIndex].setBound(sal_True);
+ rInsert[columnIndex].setNull();
+ rInsert[columnIndex].setModified();
+ io_aRow[columnIndex].setNull();
- m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
- impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
+ impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ }
}
-// -----------------------------------------------------------------------------
+
void ORowSetCache::updateValue(sal_Int32 columnIndex,const ORowSetValue& x
,ORowSetValueVector::Vector& io_aRow
,::std::vector<sal_Int32>& o_ChangedColumns
@@@ -555,15 -591,18 +581,18 @@@
checkUpdateConditions(columnIndex);
ORowSetValueVector::Vector& rInsert = ((*m_aInsertRow)->get());
- rInsert[columnIndex].setBound(sal_True);
- rInsert[columnIndex] = x;
- rInsert[columnIndex].setModified();
- io_aRow[columnIndex] = rInsert[columnIndex];
+ if ( rInsert[columnIndex] != x )
+ {
+ rInsert[columnIndex].setBound(sal_True);
+ rInsert[columnIndex] = x;
+ rInsert[columnIndex].setModified();
+ io_aRow[columnIndex] = rInsert[columnIndex];
- m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
- impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
+ impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ }
}
-// -------------------------------------------------------------------------
+
void ORowSetCache::updateCharacterStream( sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x
, sal_Int32 length,ORowSetValueVector::Vector& io_aRow
,::std::vector<sal_Int32>& o_ChangedColumns
@@@ -593,15 -632,20 +622,20 @@@ void ORowSetCache::updateObject( sal_In
checkUpdateConditions(columnIndex);
ORowSetValueVector::Vector& rInsert = ((*m_aInsertRow)->get());
- rInsert[columnIndex].setBound(sal_True);
- rInsert[columnIndex] = x;
- rInsert[columnIndex].setModified();
- io_aRow[columnIndex] = rInsert[columnIndex];
+ ORowSetValue aTemp;
+ aTemp.fill(x);
+ if ( rInsert[columnIndex] != aTemp )
+ {
+ rInsert[columnIndex].setBound(sal_True);
+ rInsert[columnIndex] = aTemp;
+ rInsert[columnIndex].setModified();
+ io_aRow[columnIndex] = rInsert[columnIndex];
- m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
- impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
+ impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ }
}
-// -------------------------------------------------------------------------
+
void ORowSetCache::updateNumericObject( sal_Int32 columnIndex, const Any& x, sal_Int32 /*scale*/
,ORowSetValueVector::Vector& io_aRow
,::std::vector<sal_Int32>& o_ChangedColumns
@@@ -610,15 -654,20 +644,20 @@@
checkUpdateConditions(columnIndex);
ORowSetValueVector::Vector& rInsert = ((*m_aInsertRow)->get());
- rInsert[columnIndex].setBound(sal_True);
- rInsert[columnIndex] = x;
- rInsert[columnIndex].setModified();
- io_aRow[columnIndex] = rInsert[columnIndex];
+ ORowSetValue aTemp;
+ aTemp.fill(x);
+ if ( rInsert[columnIndex] != aTemp )
+ {
+ rInsert[columnIndex].setBound(sal_True);
+ rInsert[columnIndex] = aTemp;
+ rInsert[columnIndex].setModified();
+ io_aRow[columnIndex] = rInsert[columnIndex];
- m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
- impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ m_pCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
+ impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
+ }
}
-// -------------------------------------------------------------------------
+
// XResultSet
sal_Bool ORowSetCache::next( )
{
@@@ -641,14 -690,12 +680,12 @@@
return !m_bAfterLast;
}
-// -------------------------------------------------------------------------
+
sal_Bool ORowSetCache::isBeforeFirst( )
{
- // return !m_nPosition;
-
return m_bBeforeFirst;
}
-// -------------------------------------------------------------------------
+
sal_Bool ORowSetCache::isAfterLast( )
{
return m_bAfterLast;
@@@ -711,9 -770,11 +760,11 @@@ sal_Bool ORowSetCache::fillMatrix(sal_I
{
if(bCheck)
{
- if(!aIter->isValid())
+ if(!aIter->is())
*aIter = new ORowSetValueVector(m_xMetaData->getColumnCount());
m_pCacheSet->fillValueRow(*aIter,i);
+ if(!m_bRowCountFinal)
+ ++m_nRowCount;
}
else
{ // there are no more rows found so we can fetch some before start
@@@ -749,10 -810,13 +800,12 @@@
}
break;
}
- bCheck = m_pCacheSet->next();
+ if ( i < (_nNewEndPos-1) )
+ bCheck = m_pCacheSet->next();
}
- // we have to read one row forward to enshure that we know when we are on last row
- // m_nStartPos = _nNewStartPos;
+ // we have to read one row forward to ensure that we know when we are on last row
// but only when we don't know it already
+ /*
if(!m_bRowCountFinal)
{
if(!m_pCacheSet->next())
@@@ -765,11 -829,13 +818,12 @@@
m_nRowCount = std::max(i,m_nRowCount);
}
+ */
return bCheck;
}
-// -------------------------------------------------------------------------
+
sal_Bool ORowSetCache::moveWindow()
{
-
sal_Bool bRet = sal_True;
sal_Int32 nDiff = (sal_Int32)(m_nFetchSize*0.5 -0.5);
@@@ -975,8 -1040,8 +1026,8 @@@
aIter = m_pMatrix->begin();
nPos = m_nStartPos;
- bCheck = m_pCacheSet->absolute(m_nStartPos);
+ bCheck = m_pCacheSet->absolute_checked(m_nStartPos,sal_False);
- for(; !aIter->isValid() && bCheck;++aIter)
+ for(; !aIter->is() && bCheck;++aIter)
{
OSL_ENSURE(aIter != m_pMatrix->end(),"Invalid iterator");
bCheck = m_pCacheSet->next();
diff --cc dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index 16a01c9,7587e29..518a419
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@@ -1480,10 -1508,10 +1477,10 @@@ Reference< XIndexAccess > SAL_CALL OSin
return sResult;
}
-// -----------------------------------------------------------------------------
+
namespace
{
- ::rtl::OUString lcl_getCondition(const Sequence< Sequence< PropertyValue > >& filter )
+ ::rtl::OUString lcl_getCondition(const Sequence< Sequence< PropertyValue > >& filter,const OPredicateInputController& i_aPredicateInputController,const Reference< XNameAccess >& i_xSelectColumns)
{
::rtl::OUStringBuffer sRet;
const Sequence< PropertyValue >* pOrIter = filter.getConstArray();
@@@ -1518,15 -1555,17 +1524,17 @@@
void SAL_CALL OSingleSelectQueryComposer::setStructuredFilter( const Sequence< Sequence< PropertyValue > >& filter ) throw (SQLException, ::com::sun::star::lang::IllegalArgumentException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OSingleSelectQueryComposer::setStructuredFilter" );
- setFilter(lcl_getCondition(filter));
+ OPredicateInputController aPredicateInput(m_aContext.getLegacyServiceFactory(),m_xConnection);
+ setFilter(lcl_getCondition(filter,aPredicateInput,getColumns()));
}
-// -----------------------------------------------------------------------------
+
void SAL_CALL OSingleSelectQueryComposer::setStructuredHavingClause( const Sequence< Sequence< PropertyValue > >& filter ) throw (SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OSingleSelectQueryComposer::setStructuredHavingClause" );
- setHavingClause(lcl_getCondition(filter));
+ OPredicateInputController aPredicateInput(m_aContext.getLegacyServiceFactory(),m_xConnection);
+ setHavingClause(lcl_getCondition(filter,aPredicateInput,getColumns()));
}
-// -----------------------------------------------------------------------------
+
void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropertySet >& column, sal_Bool andCriteria ,::std::mem_fun1_t<bool,OSingleSelectQueryComposer,::rtl::OUString>& _aSetFunctor,sal_Int32 filterOperator)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen at sun.com", "OSingleSelectQueryComposer::setConditionByColumn" );
diff --cc dbaccess/source/core/dataaccess/SharedConnection.cxx
index f40bdc9,e293776..7f2cad0
--- a/dbaccess/source/core/dataaccess/SharedConnection.cxx
+++ b/dbaccess/source/core/dataaccess/SharedConnection.cxx
@@@ -118,10 -129,12 +118,12 @@@ void SAL_CALL OSharedConnection::rollba
sal_Bool SAL_CALL OSharedConnection::isClosed( ) throw(SQLException, RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
+ if ( !m_xConnection.is() )
+ return sal_True;
-
+
return m_xConnection->isClosed();
}
-// --------------------------------------------------------------------------------
+
Reference< XDatabaseMetaData > SAL_CALL OSharedConnection::getMetaData( ) throw(SQLException, RuntimeException)
{
::osl::MutexGuard aGuard( m_aMutex );
diff --cc dbaccess/source/core/dataaccess/datasource.cxx
index 1cabbf2,ee4e187..334d971
--- a/dbaccess/source/core/dataaccess/datasource.cxx
+++ b/dbaccess/source/core/dataaccess/datasource.cxx
@@@ -200,11 -204,12 +200,11 @@@ void SAL_CALL FlushNotificationAdapter:
if ( xListener.is() )
xListener->disposing( Source );
- impl_dispose( false );
+ impl_dispose( true );
}
-//--------------------------------------------------------------------------
OAuthenticationContinuation::OAuthenticationContinuation()
- :m_bRemberPassword(sal_True), // TODO: a meaningfull default
+ :m_bRemberPassword(sal_True), // TODO: a meaningful default
m_bCanSetUserName(sal_True)
{
}
diff --cc dbaccess/source/ui/app/AppController.cxx
index 7545e73,71196e5..8b2f6e1
--- a/dbaccess/source/ui/app/AppController.cxx
+++ b/dbaccess/source/ui/app/AppController.cxx
@@@ -2708,10 -2714,11 +2712,11 @@@ void SAL_CALL OApplicationController::a
sal_Bool SAL_CALL OApplicationController::attachModel(const Reference< XModel > & _rxModel) throw( RuntimeException )
{
::osl::MutexGuard aGuard( getMutex() );
- Reference< XOfficeDatabaseDocument > xOfficeDoc( _rxModel, UNO_QUERY );
- if ( !xOfficeDoc.is() && _rxModel.is() )
+ const Reference< XOfficeDatabaseDocument > xOfficeDoc( _rxModel, UNO_QUERY );
+ const Reference< XModifiable > xDocModify( _rxModel, UNO_QUERY );
+ if ( ( !xOfficeDoc.is() || !xDocModify.is() ) && _rxModel.is() )
{
- DBG_ERROR( "OApplicationController::attachModel: invalid model!" );
+ OSL_FAIL( "OApplicationController::attachModel: invalid model!" );
return sal_False;
}
diff --cc dbaccess/source/ui/app/makefile.mk
index 658456f,e26927d..10c1821
--- a/dbaccess/source/ui/app/makefile.mk
+++ b/dbaccess/source/ui/app/makefile.mk
@@@ -44,12 -45,11 +44,13 @@@ EXCEPTIONSFILES=
$(SLO)$/AppControllerDnD.obj \
$(SLO)$/AppControllerGen.obj \
$(SLO)$/AppDetailPageHelper.obj \
+ $(SLO)$/AppDetailView.obj \
+ $(SLO)$/AppIconControl.obj \
$(SLO)$/AppSwapWindow.obj \
$(SLO)$/AppTitleWindow.obj \
- $(SLO)$/AppView.obj \
+ $(SLO)$/AppView.obj \
- $(SLO)$/subcomponentmanager.obj
+ $(SLO)$/subcomponentmanager.obj \
+ $(SLO)$/closeveto.obj
SLOFILES =\
diff --cc dbaccess/source/ui/dlg/DbAdminImpl.cxx
index b14f478,8a5459c..9a08090
--- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx
+++ b/dbaccess/source/ui/dlg/DbAdminImpl.cxx
@@@ -208,13 -204,15 +208,15 @@@ ODbDataSourceAdministrationHelper::ODbD
m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_DOSLINEENDS, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PreferDosLikeLineEnds" ) ) ) );
m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_SOCKET, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LocalSocket" ) ) ) );
m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_NAMED_PIPE, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NamedPipe" ) ) ) );
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_RESPECTRESULTSETTYPE, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RespectDriverResultSetType" ) ) ) );
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_MAX_ROW_SCAN, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MaxRowScan" ) ) ) );
// special settings for adabas
- m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_SHUTSERVICE, ::rtl::OUString::createFromAscii("ShutdownDatabase")));
- m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_DATAINC, ::rtl::OUString::createFromAscii("DataCacheSizeIncrement")));
- m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CACHESIZE, ::rtl::OUString::createFromAscii("DataCacheSize")));
- m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLUSER, ::rtl::OUString::createFromAscii("ControlUser")));
- m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLPWD, ::rtl::OUString::createFromAscii("ControlPassword")));
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_SHUTSERVICE, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShutdownDatabase"))));
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_DATAINC, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSizeIncrement"))));
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CACHESIZE, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataCacheSize"))));
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLUSER, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlUser"))));
+ m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_CONN_CTRLPWD, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ControlPassword"))));
// extra settings for odbc
m_aIndirectPropTranslator.insert(MapInt2String::value_type(DSID_USECATALOG, INFO_USECATALOG));
diff --cc dbaccess/source/ui/dlg/dbadmin.cxx
index 90d6793,47e3d50..0b4f5e6
--- a/dbaccess/source/ui/dlg/dbadmin.cxx
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@@ -410,9 -411,10 +410,10 @@@ SfxItemSet* ODbAdminDialog::createItemS
*pCounter++ = new SfxStringItem(DSID_NAMED_PIPE, String());
*pCounter++ = new OptionalBoolItem( DSID_PRIMARY_KEY_SUPPORT );
*pCounter++ = new SfxInt32Item(DSID_MAX_ROW_SCAN, 100);
+ *pCounter++ = new SfxBoolItem( DSID_RESPECTRESULTSETTYPE,sal_False );
// create the pool
- static SfxItemInfo __READONLY_DATA aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1] =
+ static SfxItemInfo const aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1] =
{
{0,0},
{0,0},
diff --cc dbaccess/source/ui/querydesign/query.src
index aae5a07,eb1ad41..e5d4b4d
--- a/dbaccess/source/ui/querydesign/query.src
+++ b/dbaccess/source/ui/querydesign/query.src
@@@ -279,17 -281,6 +279,9 @@@ ErrorBox ERR_QRY_ORDERBY_ON_ASTERIS
{
Message [ en-US ] = "[*] cannot be used as a sort criterion.";
};
+
- String STR_QUERY_TRUE
- {
- Text [ en-US ] = "TRUE" ;
- };
+
- String STR_QUERY_FALSE
- {
- Text [ en-US ] = "FALSE" ;
- };
+
String STR_QRY_TOO_MANY_TABLES
{
Text [ en-US ] = "There are too many tables.";
diff --cc dbaccess/source/ui/tabledesign/TEditControl.cxx
index 2e83b6c,f4f728c..76bc93c
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@@ -1529,9 -1596,9 +1525,9 @@@ sal_Bool OTableEditorCtrl::IsPrimaryKey
Reference<XPropertySet> xTable = rController.getTable();
//////////////////////////////////////////////////////////////
// Key darf nicht veraendert werden
-- // Dies gilt jedoch nur, wenn die Tabelle nicht neu ist und keine ::com::sun::star::sdbcx::View. Ansonsten wird kein DROP ausgeführt
++ // Dies gilt jedoch nur, wenn die Tabelle nicht neu ist und keine ::com::sun::star::sdbcx::View. Ansonsten wird kein DROP ausgef�hrt
- if(xTable.is() && ::comphelper::getString(xTable->getPropertyValue(PROPERTY_TYPE)) == ::rtl::OUString::createFromAscii("VIEW"))
+ if(xTable.is() && ::comphelper::getString(xTable->getPropertyValue(PROPERTY_TYPE)) == ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("VIEW")))
return sal_False;
//////////////////////////////////////////////////////////////
// Wenn leeres Feld, kein PrimKey
@@@ -1551,7 -1618,7 +1547,7 @@@
{
//////////////////////////////////////////////////////////////
// Wenn Feldtyp Memo oder Image, kein PrimKey
-- // oder wenn Spalten nicht gedroped werden können und das Required Flag ist nicht gesetzt
++ // oder wenn Spalten nicht gedroped werden k�nnen und das Required Flag ist nicht gesetzt
// oder wenn eine ::com::sun::star::sdbcx::View vorhanden ist und das Required Flag nicht gesetzt ist
TOTypeInfoSP pTypeInfo = pFieldDescr->getTypeInfo();
if( pTypeInfo->nSearchType == ColumnSearch::NONE
diff --cc reportdesign/source/ui/report/ReportSection.cxx
index 66b5658,b0128c7..0a6a5e9
--- a/reportdesign/source/ui/report/ReportSection.cxx
+++ b/reportdesign/source/ui/report/ReportSection.cxx
@@@ -101,10 -101,13 +102,13 @@@ OReportSection::OReportSection(OSection
,m_bInDrag(sal_False)
{
DBG_CTOR( rpt_OReportSection,NULL);
- EnableChildTransparentMode();
+ //EnableChildTransparentMode();
SetHelpId(HID_REPORTSECTION);
SetMapMode( MapMode( MAP_100TH_MM ) );
+ SetParentClipMode( PARENTCLIPMODE_CLIP );
+ EnableChildTransparentMode( sal_False );
+ SetPaintTransparent( sal_False );
-
+
try
{
fill();
@@@ -245,15 -241,12 +240,9 @@@ void OReportSection::fill(
m_pView->SetDesignMode( sal_True );
m_pView->StartListening( *m_pModel );
- if ( m_xSection.is() && m_pPage && m_pView )
- {
- uno::Reference<report::XReportDefinition> xReportDefinition = m_xSection->getReportDefinition();
- m_pPage->SetSize( Size( getStyleProperty<awt::Size>(xReportDefinition,PROPERTY_PAPERSIZE).Width,5*m_xSection->getHeight()) );
- const Size aPageSize = m_pPage->GetSize();
- const sal_Int32 nWorkAreaLeftMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_LEFTMARGIN);
- const sal_Int32 nWorkAreaRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
- m_pView->SetWorkArea( Rectangle( Point( nWorkAreaLeftMargin, 0), Size(aPageSize.Width() - nWorkAreaLeftMargin - nWorkAreaRightMargin,aPageSize.Height()) ) );
- }
- /*Resize();*/
+ m_pPage->SetSize( Size( getStyleProperty<awt::Size>(xReportDefinition,PROPERTY_PAPERSIZE).Width,5*m_xSection->getHeight()) );
+ const Size aPageSize = m_pPage->GetSize();
+ m_pView->SetWorkArea( Rectangle( Point( nLeftMargin, 0), Size(aPageSize.Width() - nLeftMargin - nRightMargin,aPageSize.Height()) ) );
-
- //SetBackground( Wallpaper( COL_BLUE ));
}
// -----------------------------------------------------------------------------
void OReportSection::Paste(const uno::Sequence< beans::NamedValue >& _aAllreadyCopiedObjects,bool _bForce)
@@@ -545,71 -543,80 +537,80 @@@ void OReportSection::_propertyChanged(c
}
else if ( _rEvent.PropertyName == PROPERTY_RIGHTMARGIN )
{
- const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
m_pPage->SetRgtBorder(nRightMargin);
}
-
- try
+ const Size aOldPageSize = m_pPage->GetSize();
+ sal_Int32 nNewHeight = 5*m_xSection->getHeight();
+ if ( aOldPageSize.Height() != nNewHeight || nPaperWidth != aOldPageSize.Width() )
{
- const sal_Int32 nLeftMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_LEFTMARGIN);
- const sal_Int32 nRightMargin = getStyleProperty<sal_Int32>(xReportDefinition,PROPERTY_RIGHTMARGIN);
- const sal_Int32 nPaperWidth = getStyleProperty<awt::Size>(xReportDefinition,PROPERTY_PAPERSIZE).Width;
- const sal_Int32 nCount = m_xSection->getCount();
- for (sal_Int32 i = 0; i < nCount; ++i)
+ m_pPage->SetSize( Size( nPaperWidth,nNewHeight) );
+ const Size aPageSize = m_pPage->GetSize();
+ m_pView->SetWorkArea( Rectangle( Point( nLeftMargin, 0), Size(aPageSize.Width() - nLeftMargin - nRightMargin,aPageSize.Height()) ) );
+ }
+ impl_adjustObjectSizePosition(nPaperWidth,nLeftMargin,nRightMargin);
+ m_pParent->Invalidate(INVALIDATE_UPDATE | INVALIDATE_TRANSPARENT);
+ }
+ }
+ }
+ void OReportSection::impl_adjustObjectSizePosition(sal_Int32 i_nPaperWidth,sal_Int32 i_nLeftMargin,sal_Int32 i_nRightMargin)
+ {
+ try
+ {
+ sal_Int32 nRightBorder = i_nPaperWidth - i_nRightMargin;
+ const sal_Int32 nCount = m_xSection->getCount();
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ {
+ bool bChanged = false;
+ uno::Reference< report::XReportComponent> xReportComponent(m_xSection->getByIndex(i),uno::UNO_QUERY_THROW);
+ awt::Point aPos = xReportComponent->getPosition();
+ awt::Size aSize = xReportComponent->getSize();
+ SvxShape* pShape = SvxShape::getImplementation( xReportComponent );
+ SdrObject* pObject = pShape ? pShape->GetSdrObject() : NULL;
+ if ( pObject )
+ {
+ OObjectBase* pBase = dynamic_cast<OObjectBase*>(pObject);
+ pBase->EndListening(sal_False);
+ if ( aPos.X < i_nLeftMargin )
{
- bool bChanged = false;
- uno::Reference< report::XReportComponent> xReportComponent(m_xSection->getByIndex(i),uno::UNO_QUERY_THROW);
- awt::Point aPos = xReportComponent->getPosition();
- awt::Size aSize = xReportComponent->getSize();
- SvxShape* pShape = SvxShape::getImplementation( xReportComponent );
- SdrObject* pObject = pShape ? pShape->GetSdrObject() : NULL;
- if ( pObject )
+ aPos.X = i_nLeftMargin;
+ bChanged = true;
+ }
+ if ( (aPos.X + aSize.Width) > nRightBorder )
+ {
+ aPos.X = nRightBorder - aSize.Width;
+ if ( aPos.X < i_nLeftMargin )
{
- OObjectBase* pBase = dynamic_cast<OObjectBase*>(pObject);
- pBase->EndListening(sal_False);
- if ( aPos.X < nLeftMargin )
- {
- aPos.X = nLeftMargin;
- bChanged = true;
- }
- if ( (aPos.X + aSize.Width) > (nPaperWidth - nRightMargin) )
- {
- aPos.X = nPaperWidth - nRightMargin - aSize.Width;
- if ( aPos.X < nLeftMargin )
- {
- aSize.Width += aPos.X - nLeftMargin;
- aPos.X = nLeftMargin;
- // add listener around
- pBase->StartListening();
- xReportComponent->setSize(aSize);
- pBase->EndListening(sal_False);
- }
- bChanged = true;
- }
- if ( aPos.Y < 0 )
- aPos.Y = 0;
- if ( bChanged )
- {
- xReportComponent->setPosition(aPos);
- correctOverlapping(pObject,*this,false);
- Rectangle aRet(VCLPoint(xReportComponent->getPosition()),VCLSize(xReportComponent->getSize()));
- aRet.setHeight(aRet.getHeight() + 1);
- aRet.setWidth(aRet.getWidth() + 1);
- if ( m_xSection.is() && (static_cast<sal_uInt32>(aRet.getHeight() + aRet.Top()) > m_xSection->getHeight()) )
- m_xSection->setHeight(aRet.getHeight() + aRet.Top());
- }
+ aSize.Width += aPos.X - i_nLeftMargin;
+ aPos.X = i_nLeftMargin;
+ // add listener around
pBase->StartListening();
+ xReportComponent->setSize(aSize);
+ pBase->EndListening(sal_False);
}
+ bChanged = true;
}
+ if ( aPos.Y < 0 )
+ aPos.Y = 0;
- if ( bChanged )
++ if ( bChanged )
+ {
+ xReportComponent->setPosition(aPos);
+ correctOverlapping(pObject,*this,false);
+ Rectangle aRet(VCLPoint(xReportComponent->getPosition()),VCLSize(xReportComponent->getSize()));
+ aRet.setHeight(aRet.getHeight() + 1);
+ aRet.setWidth(aRet.getWidth() + 1);
+ if ( m_xSection.is() && (static_cast<sal_uInt32>(aRet.getHeight() + aRet.Top()) > m_xSection->getHeight()) )
+ m_xSection->setHeight(aRet.getHeight() + aRet.Top());
+
+ pObject->RecalcBoundRect();
+ }
+ pBase->StartListening();
}
- catch(uno::Exception)
- {
- OSL_FAIL("Exception caught: OReportSection::_propertyChanged(");
- }
-
- Resize();
- } // for (sal_Int32 i = 0; i < nCount; ++i)
+ }
}
+ catch(uno::Exception)
+ {
- OSL_ENSURE(0,"Exception caught: OReportSection::_propertyChanged(");
++ OSL_FAIL("Exception caught: OReportSection::_propertyChanged(");
+ }
}
//------------------------------------------------------------------------------
sal_Bool OReportSection::handleKeyEvent(const KeyEvent& _rEvent)
diff --cc reportdesign/source/ui/report/StartMarker.cxx
index 34d2014,ec9005a..1eef44c
--- a/reportdesign/source/ui/report/StartMarker.cxx
+++ b/reportdesign/source/ui/report/StartMarker.cxx
@@@ -104,20 -110,23 +107,22 @@@ sal_Int32 OStartMarker::getMinHeight()
// -----------------------------------------------------------------------------
void OStartMarker::Paint( const Rectangle& rRect )
{
- Window::Paint( rRect );
+ (void)rRect;
- //SetUpdateMode(sal_False);
Size aSize = GetOutputSizePixel();
long nSize = aSize.Width();
const long nCornerWidth = long(CORNER_SPACE * (double)GetMapMode().GetScaleX());
- if ( !isCollapsed() )
+ if ( isCollapsed() )
+ {
+ SetClipRegion();
+ }
+ else
{
const long nVRulerWidth = m_aVRuler.GetSizePixel().Width();
- nSize = aSize.Width() - nVRulerWidth/* - m_nCornerSize*/;
+ nSize = aSize.Width() - nVRulerWidth;
- SetClipRegion(Region(PixelToLogic(Rectangle(Point(),Size( nSize,aSize.Height())))));
aSize.Width() += nCornerWidth;
+ SetClipRegion(Region(PixelToLogic(Rectangle(Point(),Size(nSize,aSize.Height())))));
- }
+ }
- else
- SetClipRegion();
const Point aGcc3WorkaroundTemporary;
Rectangle aWholeRect(aGcc3WorkaroundTemporary,aSize);
diff --cc reportdesign/source/ui/report/ViewsWindow.cxx
index b2601e1,4e8acc3..7858483
--- a/reportdesign/source/ui/report/ViewsWindow.cxx
+++ b/reportdesign/source/ui/report/ViewsWindow.cxx
@@@ -246,10 -244,11 +246,11 @@@ void OViewsWindow::resize(const OSectio
if ( bSet )
{
impl_resizeSectionWindow(*pSectionWindow.get(),aStartPoint,bSet);
- pSectionWindow->Invalidate(INVALIDATE_NOERASE | INVALIDATE_NOCHILDREN | INVALIDATE_TRANSPARENT);
- pSectionWindow->getStartMarker().Invalidate(INVALIDATE_NOERASE | INVALIDATE_NOCHILDREN | INVALIDATE_TRANSPARENT );
+ static sal_Int32 nIn = INVALIDATE_UPDATE | INVALIDATE_TRANSPARENT;
+ pSectionWindow->getStartMarker().Invalidate( nIn ); // INVALIDATE_NOERASE |INVALIDATE_NOCHILDREN| INVALIDATE_TRANSPARENT
+ pSectionWindow->getEndMarker().Invalidate( nIn );
}
- } // for (;aIter != aEnd ; ++aIter,++nPos)
+ }
Fraction aStartWidth(long(REPORT_STARTMARKER_WIDTH));
aStartWidth *= GetMapMode().GetScaleX();
Size aOut = GetOutputSizePixel();
@@@ -1704,9 -1888,8 +1752,7 @@@ void OViewsWindow::scrollChildren(cons
aMapMode.SetOrigin( Point(aOld.X() , - aPosY.Y()));
SetMapMode( aMapMode );
- //OWindowPositionCorrector aCorrector(this,0,-( aOld.Y() + aPosY.Y()));
Scroll(0, -( aOld.Y() + aPosY.Y()),SCROLL_CHILDREN);
- Resize();
- Invalidate(INVALIDATE_NOCHILDREN|INVALIDATE_TRANSPARENT);
}
TSectionsMap::iterator aIter = m_aSections.begin();
diff --cc reportdesign/source/ui/report/dlgedfunc.cxx
index 9acf262,57e0c75..a6a5eb4
--- a/reportdesign/source/ui/report/dlgedfunc.cxx
+++ b/reportdesign/source/ui/report/dlgedfunc.cxx
@@@ -93,9 -92,14 +93,13 @@@ void DlgEdFunc::ForceScroll( const Poin
aStartWidth *= m_pParent->GetMapMode().GetScaleX();
aOut.Width() -= (long)aStartWidth;
+ aOut.Height() = m_pParent->GetOutputSizePixel().Height();
- Rectangle aOutRect( pScrollWindow->getThumbPos(), aOut );
+ Point aPos = pScrollWindow->getThumbPos();
+ aPos.X() *= 0.5;
+ aPos.Y() *= 0.5;
+ Rectangle aOutRect( aPos, aOut );
aOutRect = m_pParent->PixelToLogic( aOutRect );
- //Rectangle aWorkArea = m_pParent->getView()->GetWorkArea();
Point aGcc3WorkaroundTemporary;
Rectangle aWorkArea(aGcc3WorkaroundTemporary,pScrollWindow->getTotalSize());
aWorkArea.Right() -= (long)aStartWidth;
commit 7e8a4888be548390148cc932a5d0b899e4fdd318
Author: Petr Mladek <pmladek at suse.cz>
Date: Tue Apr 19 18:58:45 2011 +0200
Version 3.3.99.2, tag libreoffice-3.3.99.2 (3.4.0-beta2)
commit 9e0bd7014e5fbfe17f084e386d1ad368e78828c9
Author: Petr Mladek <pmladek at suse.cz>
Date: Mon Apr 11 17:52:52 2011 +0200
Version 3.3.99.1, tag libreoffice-3.3.99.1 (3.4.0-beta1)
commit a446d943bae5ca14030ca2ea18f8a8ff895fbcaf
Merge: d5b15e5... 75fea4e...
Author: Ivo Hinkelmann <ihi at openoffice.org>
Date: Mon Mar 28 15:37:38 2011 +0200
CWS-TOOLING: integrate CWS dba34d
commit 75fea4e3990114671a332a3bf216e06ef79199df
Author: Frank Schoenheit [fs] <frank.schoenheit at oracle.com>
Date: Thu Mar 24 08:40:30 2011 +0100
dba34d: #i117521#
diff --git a/reportdesign/source/ui/report/ViewsWindow.cxx b/reportdesign/source/ui/report/ViewsWindow.cxx
index 746db4b..4e8acc3 100644
--- a/reportdesign/source/ui/report/ViewsWindow.cxx
+++ b/reportdesign/source/ui/report/ViewsWindow.cxx
@@ -317,6 +317,7 @@ void OViewsWindow::addSection(const uno::Reference< report::XSection >& _xSectio
::boost::shared_ptr<OSectionWindow> pSectionWindow( new OSectionWindow(this,_xSection,_sColorEntry) );
m_aSections.insert(getIteratorAtPos(_nPosition) , TSectionsMap::value_type(pSectionWindow));
m_pParent->setMarked(&pSectionWindow->getReportSection().getSectionView(),m_aSections.size() == 1);
+ Resize();
}
//----------------------------------------------------------------------------
void OViewsWindow::removeSection(sal_uInt16 _nPosition)
commit d5b15e5ef07dbf653eb3e4509ed562a74f4712ad
Merge: c290b52... 8807dc4...
Author: Vladimir Glazunov <vg at openoffice.org>
Date: Mon Mar 21 17:02:20 2011 +0100
CWS-TOOLING: integrate CWS dba34c
commit 4de1caf7b1695196257db2ff52343daf466ac0eb
Author: Ocke Janssen [oj] <Ocke.Janssen at oracle.com>
Date: Fri Mar 18 09:31:06 2011 +0100
dba34d: #i66846# check bookmarable before use statis resultset
diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index 83df973..43b2f58 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -118,10 +118,11 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
// first try if the result can be used to do inserts and updates
Reference< XPropertySet> xProp(_xRs,UNO_QUERY);
Reference< XPropertySetInfo > xPropInfo = xProp->getPropertySetInfo();
+ sal_Bool bBookmarkable = sal_False;
try
{
Reference< XResultSetUpdate> xUp(_xRs,UNO_QUERY_THROW);
- sal_Bool bBookmarkable = xPropInfo->hasPropertyByName(PROPERTY_ISBOOKMARKABLE) &&
+ bBookmarkable = xPropInfo->hasPropertyByName(PROPERTY_ISBOOKMARKABLE) &&
any2bool(xProp->getPropertyValue(PROPERTY_ISBOOKMARKABLE)) && Reference< XRowLocate >(_xRs, UNO_QUERY).is();
if ( bBookmarkable )
{
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list