summaryrefslogtreecommitdiff
path: root/dbaccess/source
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source')
-rw-r--r--dbaccess/source/core/api/BookmarkSet.cxx36
-rw-r--r--dbaccess/source/core/api/CIndexes.cxx9
-rw-r--r--dbaccess/source/core/api/CIndexes.hxx9
-rw-r--r--dbaccess/source/core/api/CRowSetColumn.cxx53
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.cxx73
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.hxx10
-rw-r--r--dbaccess/source/core/api/CacheSet.cxx15
-rw-r--r--dbaccess/source/core/api/FilteredContainer.cxx83
-rw-r--r--dbaccess/source/core/api/HelperCollections.cxx21
-rw-r--r--dbaccess/source/core/api/HelperCollections.hxx17
-rw-r--r--dbaccess/source/core/api/KeySet.cxx173
-rw-r--r--dbaccess/source/core/api/KeySet.hxx24
-rw-r--r--dbaccess/source/core/api/OptimisticSet.cxx44
-rw-r--r--dbaccess/source/core/api/OptimisticSet.hxx2
-rw-r--r--dbaccess/source/core/api/PrivateRow.cxx27
-rw-r--r--dbaccess/source/core/api/PrivateRow.hxx2
-rw-r--r--dbaccess/source/core/api/RowSet.cxx341
-rw-r--r--dbaccess/source/core/api/RowSet.hxx37
-rw-r--r--dbaccess/source/core/api/RowSetBase.cxx120
-rw-r--r--dbaccess/source/core/api/RowSetBase.hxx34
-rw-r--r--dbaccess/source/core/api/RowSetCache.cxx46
-rw-r--r--dbaccess/source/core/api/RowSetCacheIterator.hxx5
-rw-r--r--dbaccess/source/core/api/RowSetRow.hxx5
-rw-r--r--dbaccess/source/core/api/SingleSelectQueryComposer.cxx219
-rw-r--r--dbaccess/source/core/api/StaticSet.cxx20
-rw-r--r--dbaccess/source/core/api/TableDeco.cxx69
-rw-r--r--dbaccess/source/core/api/View.cxx14
-rw-r--r--dbaccess/source/core/api/WrappedResultSet.cxx38
-rw-r--r--dbaccess/source/core/api/callablestatement.cxx53
-rw-r--r--dbaccess/source/core/api/column.cxx59
-rw-r--r--dbaccess/source/core/api/columnsettings.cxx18
-rw-r--r--dbaccess/source/core/api/datacolumn.cxx5
-rw-r--r--dbaccess/source/core/api/datacolumn.hxx4
-rw-r--r--dbaccess/source/core/api/datasettings.cxx2
-rw-r--r--dbaccess/source/core/api/definitioncolumn.cxx92
-rw-r--r--dbaccess/source/core/api/preparedstatement.cxx81
-rw-r--r--dbaccess/source/core/api/query.cxx45
-rw-r--r--dbaccess/source/core/api/query.hxx2
-rw-r--r--dbaccess/source/core/api/querycomposer.cxx9
-rw-r--r--dbaccess/source/core/api/querycontainer.cxx47
-rw-r--r--dbaccess/source/core/api/querydescriptor.cxx38
-rw-r--r--dbaccess/source/core/api/querydescriptor.hxx14
-rw-r--r--dbaccess/source/core/api/resultcolumn.cxx60
-rw-r--r--dbaccess/source/core/api/resultset.cxx38
-rw-r--r--dbaccess/source/core/api/resultset.hxx4
-rw-r--r--dbaccess/source/core/api/statement.cxx107
-rw-r--r--dbaccess/source/core/api/table.cxx62
-rw-r--r--dbaccess/source/core/api/tablecontainer.cxx90
-rw-r--r--dbaccess/source/core/api/viewcontainer.cxx33
-rw-r--r--dbaccess/source/core/dataaccess/ComponentDefinition.cxx26
-rw-r--r--dbaccess/source/core/dataaccess/ComponentDefinition.hxx2
-rw-r--r--dbaccess/source/core/dataaccess/ContentHelper.cxx155
-rw-r--r--dbaccess/source/core/dataaccess/ModelImpl.cxx314
-rw-r--r--dbaccess/source/core/dataaccess/SharedConnection.cxx74
-rw-r--r--dbaccess/source/core/dataaccess/SharedConnection.hxx39
-rw-r--r--dbaccess/source/core/dataaccess/bookmarkcontainer.cxx34
-rw-r--r--dbaccess/source/core/dataaccess/commandcontainer.cxx14
-rw-r--r--dbaccess/source/core/dataaccess/commanddefinition.cxx41
-rw-r--r--dbaccess/source/core/dataaccess/connection.cxx79
-rw-r--r--dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx78
-rw-r--r--dbaccess/source/core/dataaccess/databasecontext.cxx80
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.cxx352
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.hxx47
-rw-r--r--dbaccess/source/core/dataaccess/databaseregistrations.cxx67
-rw-r--r--dbaccess/source/core/dataaccess/databaseregistrations.hxx7
-rw-r--r--dbaccess/source/core/dataaccess/datasource.cxx344
-rw-r--r--dbaccess/source/core/dataaccess/datasource.hxx10
-rw-r--r--dbaccess/source/core/dataaccess/definitioncontainer.cxx35
-rw-r--r--dbaccess/source/core/dataaccess/documentcontainer.cxx128
-rw-r--r--dbaccess/source/core/dataaccess/documentdefinition.cxx277
-rw-r--r--dbaccess/source/core/dataaccess/documentdefinition.hxx6
-rw-r--r--dbaccess/source/core/dataaccess/documenteventexecutor.cxx49
-rw-r--r--dbaccess/source/core/dataaccess/documenteventexecutor.hxx11
-rw-r--r--dbaccess/source/core/dataaccess/documenteventnotifier.cxx45
-rw-r--r--dbaccess/source/core/dataaccess/documenteventnotifier.hxx32
-rw-r--r--dbaccess/source/core/dataaccess/documentevents.cxx143
-rw-r--r--dbaccess/source/core/dataaccess/intercept.cxx64
-rw-r--r--dbaccess/source/core/dataaccess/intercept.hxx4
-rw-r--r--dbaccess/source/core/dataaccess/myucp_datasupplier.cxx201
-rw-r--r--dbaccess/source/core/dataaccess/myucp_datasupplier.hxx48
-rw-r--r--dbaccess/source/core/dataaccess/myucp_resultset.cxx9
-rw-r--r--dbaccess/source/core/dataaccess/myucp_resultset.hxx2
-rw-r--r--dbaccess/source/core/inc/ContentHelper.hxx15
-rw-r--r--dbaccess/source/core/inc/DatabaseDataProvider.hxx8
-rw-r--r--dbaccess/source/core/inc/FilteredContainer.hxx7
-rw-r--r--dbaccess/source/core/inc/ModelImpl.hxx154
-rw-r--r--dbaccess/source/core/inc/PropertyForward.hxx2
-rw-r--r--dbaccess/source/core/inc/SingleSelectQueryComposer.hxx6
-rw-r--r--dbaccess/source/core/inc/TableDeco.hxx12
-rw-r--r--dbaccess/source/core/inc/bookmarkcontainer.hxx8
-rw-r--r--dbaccess/source/core/inc/callablestatement.hxx6
-rw-r--r--dbaccess/source/core/inc/column.hxx20
-rw-r--r--dbaccess/source/core/inc/connection.hxx (renamed from dbaccess/source/core/dataaccess/connection.hxx)33
-rw-r--r--dbaccess/source/core/inc/databasecontext.hxx20
-rw-r--r--dbaccess/source/core/inc/definitioncolumn.hxx2
-rw-r--r--dbaccess/source/core/inc/definitioncontainer.hxx5
-rw-r--r--dbaccess/source/core/inc/documentevents.hxx14
-rw-r--r--dbaccess/source/core/inc/object.hxx30
-rw-r--r--dbaccess/source/core/inc/objectnameapproval.hxx6
-rw-r--r--dbaccess/source/core/inc/preparedstatement.hxx6
-rw-r--r--dbaccess/source/core/inc/querycomposer.hxx4
-rw-r--r--dbaccess/source/core/inc/querycontainer.hxx1
-rw-r--r--dbaccess/source/core/inc/recovery/dbdocrecovery.hxx4
-rw-r--r--dbaccess/source/core/inc/statement.hxx17
-rw-r--r--dbaccess/source/core/inc/table.hxx8
-rw-r--r--dbaccess/source/core/inc/tablecontainer.hxx8
-rw-r--r--dbaccess/source/core/inc/veto.hxx2
-rw-r--r--dbaccess/source/core/inc/viewcontainer.hxx13
-rw-r--r--dbaccess/source/core/misc/ContainerMediator.cxx5
-rw-r--r--dbaccess/source/core/misc/DatabaseDataProvider.cxx105
-rw-r--r--dbaccess/source/core/misc/PropertyForward.cxx7
-rw-r--r--dbaccess/source/core/misc/apitools.cxx95
-rw-r--r--dbaccess/source/core/misc/dsntypes.cxx176
-rw-r--r--dbaccess/source/core/misc/migrwarndlg.cxx5
-rw-r--r--dbaccess/source/core/misc/objectnameapproval.cxx20
-rw-r--r--dbaccess/source/core/misc/sdbcoretools.cxx20
-rw-r--r--dbaccess/source/core/misc/veto.cxx5
-rw-r--r--dbaccess/source/core/recovery/dbdocrecovery.cxx56
-rw-r--r--dbaccess/source/core/recovery/settingsimport.cxx12
-rw-r--r--dbaccess/source/core/recovery/settingsimport.hxx2
-rw-r--r--dbaccess/source/core/recovery/storagestream.cxx3
-rw-r--r--dbaccess/source/core/recovery/storagetextstream.cxx22
-rw-r--r--dbaccess/source/core/recovery/storagetextstream.hxx7
-rw-r--r--dbaccess/source/core/recovery/storagexmlstream.cxx56
-rw-r--r--dbaccess/source/core/recovery/storagexmlstream.hxx15
-rw-r--r--dbaccess/source/core/recovery/subcomponentloader.cxx2
-rw-r--r--dbaccess/source/core/recovery/subcomponentrecovery.cxx60
-rw-r--r--dbaccess/source/core/recovery/subcomponentrecovery.hxx5
-rw-r--r--dbaccess/source/core/resource/core_resource.cxx25
-rw-r--r--dbaccess/source/filter/hsqldb/columndef.cxx15
-rw-r--r--dbaccess/source/filter/hsqldb/columndef.hxx4
-rw-r--r--dbaccess/source/filter/hsqldb/createparser.cxx140
-rw-r--r--dbaccess/source/filter/hsqldb/createparser.hxx6
-rw-r--r--dbaccess/source/filter/hsqldb/fbalterparser.cxx8
-rw-r--r--dbaccess/source/filter/hsqldb/fbcreateparser.cxx71
-rw-r--r--dbaccess/source/filter/hsqldb/hsqlimport.cxx15
-rw-r--r--dbaccess/source/filter/hsqldb/hsqlimport.hxx4
-rw-r--r--dbaccess/source/filter/hsqldb/parseschema.cxx38
-rw-r--r--dbaccess/source/filter/hsqldb/rowinputbinary.cxx123
-rw-r--r--dbaccess/source/filter/hsqldb/utils.cxx63
-rw-r--r--dbaccess/source/filter/hsqldb/utils.hxx10
-rw-r--r--dbaccess/source/filter/xml/dbloader2.cxx73
-rw-r--r--dbaccess/source/filter/xml/xmlAutoStyle.cxx3
-rw-r--r--dbaccess/source/filter/xml/xmlAutoStyle.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlColumn.cxx29
-rw-r--r--dbaccess/source/filter/xml/xmlColumn.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlComponent.cxx17
-rw-r--r--dbaccess/source/filter/xml/xmlComponent.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionData.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionResource.cxx9
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionResource.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDataSource.cxx41
-rw-r--r--dbaccess/source/filter/xml/xmlDataSource.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceInfo.cxx13
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceInfo.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSetting.cxx50
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSetting.hxx3
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSettings.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDatabase.cxx8
-rw-r--r--dbaccess/source/filter/xml/xmlDatabase.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDatabaseDescription.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlDocuments.cxx15
-rw-r--r--dbaccess/source/filter/xml/xmlDocuments.hxx8
-rw-r--r--dbaccess/source/filter/xml/xmlExport.cxx196
-rw-r--r--dbaccess/source/filter/xml/xmlExport.hxx20
-rw-r--r--dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx6
-rw-r--r--dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlHelper.cxx91
-rw-r--r--dbaccess/source/filter/xml/xmlHierarchyCollection.cxx19
-rw-r--r--dbaccess/source/filter/xml/xmlHierarchyCollection.hxx4
-rw-r--r--dbaccess/source/filter/xml/xmlLogin.cxx15
-rw-r--r--dbaccess/source/filter/xml/xmlLogin.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlQuery.cxx27
-rw-r--r--dbaccess/source/filter/xml/xmlQuery.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlServerDatabase.cxx28
-rw-r--r--dbaccess/source/filter/xml/xmlServerDatabase.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlStyleImport.cxx55
-rw-r--r--dbaccess/source/filter/xml/xmlStyleImport.hxx16
-rw-r--r--dbaccess/source/filter/xml/xmlTable.cxx26
-rw-r--r--dbaccess/source/filter/xml/xmlTable.hxx4
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterList.cxx4
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterList.hxx3
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterPattern.cxx3
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterPattern.hxx2
-rw-r--r--dbaccess/source/filter/xml/xmlfilter.cxx133
-rw-r--r--dbaccess/source/filter/xml/xmlfilter.hxx3
-rw-r--r--dbaccess/source/inc/OAuthenticationContinuation.hxx7
-rw-r--r--dbaccess/source/inc/apitools.hxx157
-rw-r--r--dbaccess/source/inc/dsntypes.hxx52
-rw-r--r--dbaccess/source/inc/stringconstants.hxx291
-rw-r--r--dbaccess/source/sdbtools/connection/connectiontools.cxx8
-rw-r--r--dbaccess/source/sdbtools/connection/objectnames.cxx29
-rw-r--r--dbaccess/source/sdbtools/connection/tablename.cxx46
-rw-r--r--dbaccess/source/sdbtools/connection/tablename.hxx8
-rw-r--r--dbaccess/source/sdbtools/inc/connectiondependent.hxx6
-rw-r--r--dbaccess/source/shared/registrationhelper.cxx152
-rw-r--r--dbaccess/source/ui/app/AppController.cxx496
-rw-r--r--dbaccess/source/ui/app/AppController.hxx11
-rw-r--r--dbaccess/source/ui/app/AppControllerDnD.cxx35
-rw-r--r--dbaccess/source/ui/app/AppControllerGen.cxx64
-rw-r--r--dbaccess/source/ui/app/AppDetailPageHelper.cxx161
-rw-r--r--dbaccess/source/ui/app/AppDetailPageHelper.hxx13
-rw-r--r--dbaccess/source/ui/app/AppDetailView.cxx94
-rw-r--r--dbaccess/source/ui/app/AppDetailView.hxx9
-rw-r--r--dbaccess/source/ui/app/AppIconControl.cxx38
-rw-r--r--dbaccess/source/ui/app/AppIconControl.hxx3
-rw-r--r--dbaccess/source/ui/app/AppSwapWindow.cxx38
-rw-r--r--dbaccess/source/ui/app/AppSwapWindow.hxx1
-rw-r--r--dbaccess/source/ui/app/AppTitleWindow.cxx33
-rw-r--r--dbaccess/source/ui/app/AppTitleWindow.hxx5
-rw-r--r--dbaccess/source/ui/app/AppView.cxx14
-rw-r--r--dbaccess/source/ui/app/AppView.hxx3
-rw-r--r--dbaccess/source/ui/app/ChildWindow.cxx2
-rw-r--r--dbaccess/source/ui/app/DocumentInfoPreview.cxx34
-rw-r--r--dbaccess/source/ui/app/DocumentInfoPreview.hxx5
-rw-r--r--dbaccess/source/ui/app/subcomponentmanager.cxx45
-rw-r--r--dbaccess/source/ui/app/subcomponentmanager.hxx2
-rw-r--r--dbaccess/source/ui/app/templwin.cxx11
-rw-r--r--dbaccess/source/ui/app/templwin.hxx3
-rw-r--r--dbaccess/source/ui/browser/AsynchronousLink.cxx30
-rw-r--r--dbaccess/source/ui/browser/brwctrlr.cxx300
-rw-r--r--dbaccess/source/ui/browser/brwview.cxx62
-rw-r--r--dbaccess/source/ui/browser/dataview.cxx18
-rw-r--r--dbaccess/source/ui/browser/dbexchange.cxx6
-rw-r--r--dbaccess/source/ui/browser/dbloader.cxx67
-rw-r--r--dbaccess/source/ui/browser/dbtreemodel.hxx5
-rw-r--r--dbaccess/source/ui/browser/dsEntriesNoExp.cxx89
-rw-r--r--dbaccess/source/ui/browser/dsbrowserDnD.cxx12
-rw-r--r--dbaccess/source/ui/browser/exsrcbrw.cxx17
-rw-r--r--dbaccess/source/ui/browser/formadapter.cxx348
-rw-r--r--dbaccess/source/ui/browser/genericcontroller.cxx234
-rw-r--r--dbaccess/source/ui/browser/sbagrid.cxx356
-rw-r--r--dbaccess/source/ui/browser/sbamultiplex.cxx500
-rw-r--r--dbaccess/source/ui/browser/unodatbr.cxx466
-rw-r--r--dbaccess/source/ui/control/ColumnControlWindow.cxx7
-rw-r--r--dbaccess/source/ui/control/FieldControls.cxx8
-rw-r--r--dbaccess/source/ui/control/FieldDescControl.cxx183
-rw-r--r--dbaccess/source/ui/control/RelationControl.cxx44
-rw-r--r--dbaccess/source/ui/control/SqlNameEdit.cxx12
-rw-r--r--dbaccess/source/ui/control/TableGrantCtrl.cxx55
-rw-r--r--dbaccess/source/ui/control/charsetlistbox.cxx6
-rw-r--r--dbaccess/source/ui/control/dbtreelistbox.cxx77
-rw-r--r--dbaccess/source/ui/control/opendoccontrols.cxx48
-rw-r--r--dbaccess/source/ui/control/sqledit.cxx220
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx20
-rw-r--r--dbaccess/source/ui/dlg/CollectionView.cxx47
-rw-r--r--dbaccess/source/ui/dlg/ConnectionHelper.cxx70
-rw-r--r--dbaccess/source/ui/dlg/ConnectionHelper.hxx10
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.cxx49
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPageSetup.cxx22
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPageSetup.hxx5
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx278
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx52
-rw-r--r--dbaccess/source/ui/dlg/DbAdminImpl.cxx134
-rw-r--r--dbaccess/source/ui/dlg/DbAdminImpl.hxx4
-rw-r--r--dbaccess/source/ui/dlg/DriverSettings.hxx1
-rw-r--r--dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx13
-rw-r--r--dbaccess/source/ui/dlg/RelationDlg.cxx24
-rw-r--r--dbaccess/source/ui/dlg/TablesSingleDlg.cxx4
-rw-r--r--dbaccess/source/ui/dlg/TextConnectionHelper.cxx84
-rw-r--r--dbaccess/source/ui/dlg/TextConnectionHelper.hxx6
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.cxx192
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.hxx7
-rw-r--r--dbaccess/source/ui/dlg/UserAdminDlg.cxx12
-rw-r--r--dbaccess/source/ui/dlg/admincontrols.cxx30
-rw-r--r--dbaccess/source/ui/dlg/admincontrols.hxx2
-rw-r--r--dbaccess/source/ui/dlg/adminpages.cxx17
-rw-r--r--dbaccess/source/ui/dlg/adminpages.hxx20
-rw-r--r--dbaccess/source/ui/dlg/adodatalinks.cxx189
-rw-r--r--dbaccess/source/ui/dlg/adodatalinks.hxx3
-rw-r--r--dbaccess/source/ui/dlg/adtabdlg.cxx46
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.cxx80
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.hxx10
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.cxx307
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.cxx57
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.hxx14
-rw-r--r--dbaccess/source/ui/dlg/dbwiz.cxx13
-rw-r--r--dbaccess/source/ui/dlg/dbwizsetup.cxx124
-rw-r--r--dbaccess/source/ui/dlg/detailpages.cxx128
-rw-r--r--dbaccess/source/ui/dlg/detailpages.hxx13
-rw-r--r--dbaccess/source/ui/dlg/directsql.cxx195
-rw-r--r--dbaccess/source/ui/dlg/dlgattr.cxx15
-rw-r--r--dbaccess/source/ui/dlg/dlgsave.cxx264
-rw-r--r--dbaccess/source/ui/dlg/dlgsize.cxx12
-rw-r--r--dbaccess/source/ui/dlg/dsnItem.hxx1
-rw-r--r--dbaccess/source/ui/dlg/dsselect.cxx12
-rw-r--r--dbaccess/source/ui/dlg/dsselect.hxx17
-rw-r--r--dbaccess/source/ui/dlg/generalpage.cxx112
-rw-r--r--dbaccess/source/ui/dlg/generalpage.hxx7
-rw-r--r--dbaccess/source/ui/dlg/indexdialog.cxx84
-rw-r--r--dbaccess/source/ui/dlg/indexfieldscontrol.cxx25
-rw-r--r--dbaccess/source/ui/dlg/odbcconfig.cxx16
-rw-r--r--dbaccess/source/ui/dlg/optionalboolitem.cxx1
-rw-r--r--dbaccess/source/ui/dlg/optionalboolitem.hxx3
-rw-r--r--dbaccess/source/ui/dlg/paramdialog.cxx32
-rw-r--r--dbaccess/source/ui/dlg/queryfilter.cxx181
-rw-r--r--dbaccess/source/ui/dlg/queryorder.cxx32
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.cxx52
-rw-r--r--dbaccess/source/ui/dlg/tablespage.cxx28
-rw-r--r--dbaccess/source/ui/dlg/textconnectionsettings.cxx6
-rw-r--r--dbaccess/source/ui/inc/AppElementType.hxx16
-rw-r--r--dbaccess/source/ui/inc/ChildWindow.hxx4
-rw-r--r--dbaccess/source/ui/inc/CollectionView.hxx6
-rw-r--r--dbaccess/source/ui/inc/ColumnControlWindow.hxx2
-rw-r--r--dbaccess/source/ui/inc/ConnectionLine.hxx2
-rw-r--r--dbaccess/source/ui/inc/ConnectionLineAccess.hxx49
-rw-r--r--dbaccess/source/ui/inc/ConnectionLineData.hxx2
-rw-r--r--dbaccess/source/ui/inc/DExport.hxx4
-rw-r--r--dbaccess/source/ui/inc/FieldControls.hxx9
-rw-r--r--dbaccess/source/ui/inc/FieldDescControl.hxx18
-rw-r--r--dbaccess/source/ui/inc/GeneralUndo.hxx2
-rw-r--r--dbaccess/source/ui/inc/HtmlReader.hxx2
-rw-r--r--dbaccess/source/ui/inc/IItemSetHelper.hxx3
-rw-r--r--dbaccess/source/ui/inc/JAccess.hxx20
-rw-r--r--dbaccess/source/ui/inc/JoinDesignView.hxx2
-rw-r--r--dbaccess/source/ui/inc/JoinExchange.hxx6
-rw-r--r--dbaccess/source/ui/inc/JoinTableView.hxx29
-rw-r--r--dbaccess/source/ui/inc/QueryDesignView.hxx4
-rw-r--r--dbaccess/source/ui/inc/QueryTableView.hxx2
-rw-r--r--dbaccess/source/ui/inc/RTableConnectionData.hxx1
-rw-r--r--dbaccess/source/ui/inc/RelationControl.hxx1
-rw-r--r--dbaccess/source/ui/inc/RelationController.hxx9
-rw-r--r--dbaccess/source/ui/inc/RtfReader.hxx2
-rw-r--r--dbaccess/source/ui/inc/SqlNameEdit.hxx7
-rw-r--r--dbaccess/source/ui/inc/TableConnection.hxx3
-rw-r--r--dbaccess/source/ui/inc/TableConnectionData.hxx4
-rw-r--r--dbaccess/source/ui/inc/TableController.hxx3
-rw-r--r--dbaccess/source/ui/inc/TableCopyHelper.hxx14
-rw-r--r--dbaccess/source/ui/inc/TableDesignControl.hxx18
-rw-r--r--dbaccess/source/ui/inc/TableFieldDescription.hxx2
-rw-r--r--dbaccess/source/ui/inc/TableGrantCtrl.hxx9
-rw-r--r--dbaccess/source/ui/inc/TableRow.hxx2
-rw-r--r--dbaccess/source/ui/inc/TableRowExchange.hxx4
-rw-r--r--dbaccess/source/ui/inc/TableWindow.hxx6
-rw-r--r--dbaccess/source/ui/inc/TableWindowAccess.hxx45
-rw-r--r--dbaccess/source/ui/inc/TableWindowData.hxx8
-rw-r--r--dbaccess/source/ui/inc/TableWindowListBox.hxx5
-rw-r--r--dbaccess/source/ui/inc/TableWindowTitle.hxx21
-rw-r--r--dbaccess/source/ui/inc/TokenWriter.hxx3
-rw-r--r--dbaccess/source/ui/inc/UITools.hxx18
-rw-r--r--dbaccess/source/ui/inc/UserAdminDlg.hxx5
-rw-r--r--dbaccess/source/ui/inc/WCPage.hxx7
-rw-r--r--dbaccess/source/ui/inc/WColumnSelect.hxx6
-rw-r--r--dbaccess/source/ui/inc/WCopyTable.hxx14
-rw-r--r--dbaccess/source/ui/inc/WTabPage.hxx2
-rw-r--r--dbaccess/source/ui/inc/WTypeSelect.hxx6
-rw-r--r--dbaccess/source/ui/inc/adtabdlg.hxx2
-rw-r--r--dbaccess/source/ui/inc/advancedsettingsdlg.hxx2
-rw-r--r--dbaccess/source/ui/inc/browserids.hxx1
-rw-r--r--dbaccess/source/ui/inc/brwctrlr.hxx8
-rw-r--r--dbaccess/source/ui/inc/brwview.hxx7
-rw-r--r--dbaccess/source/ui/inc/callbacks.hxx2
-rw-r--r--dbaccess/source/ui/inc/charsetlistbox.hxx6
-rw-r--r--dbaccess/source/ui/inc/charsets.hxx6
-rw-r--r--dbaccess/source/ui/inc/curledit.hxx2
-rw-r--r--dbaccess/source/ui/inc/databaseobjectview.hxx2
-rw-r--r--dbaccess/source/ui/inc/datasourceconnector.hxx2
-rw-r--r--dbaccess/source/ui/inc/dbadmin.hxx17
-rw-r--r--dbaccess/source/ui/inc/dbexchange.hxx2
-rw-r--r--dbaccess/source/ui/inc/dbtreelistbox.hxx12
-rw-r--r--dbaccess/source/ui/inc/dbu_dlg.hxx4
-rw-r--r--dbaccess/source/ui/inc/dbwiz.hxx13
-rw-r--r--dbaccess/source/ui/inc/dbwizsetup.hxx12
-rw-r--r--dbaccess/source/ui/inc/defaultobjectnamecheck.hxx9
-rw-r--r--dbaccess/source/ui/inc/directsql.hxx23
-rw-r--r--dbaccess/source/ui/inc/dlgattr.hxx2
-rw-r--r--dbaccess/source/ui/inc/dlgsave.hxx23
-rw-r--r--dbaccess/source/ui/inc/dlgsize.hxx2
-rw-r--r--dbaccess/source/ui/inc/dsitems.hxx125
-rw-r--r--dbaccess/source/ui/inc/dsmeta.hxx5
-rw-r--r--dbaccess/source/ui/inc/exsrcbrw.hxx5
-rw-r--r--dbaccess/source/ui/inc/formadapter.hxx5
-rw-r--r--dbaccess/source/ui/inc/imageprovider.hxx46
-rw-r--r--dbaccess/source/ui/inc/indexcollection.hxx1
-rw-r--r--dbaccess/source/ui/inc/indexdialog.hxx4
-rw-r--r--dbaccess/source/ui/inc/indexes.hxx4
-rw-r--r--dbaccess/source/ui/inc/indexfieldscontrol.hxx14
-rw-r--r--dbaccess/source/ui/inc/linkeddocuments.hxx2
-rw-r--r--dbaccess/source/ui/inc/opendoccontrols.hxx9
-rw-r--r--dbaccess/source/ui/inc/paramdialog.hxx5
-rw-r--r--dbaccess/source/ui/inc/querycontroller.hxx5
-rw-r--r--dbaccess/source/ui/inc/queryfilter.hxx4
-rw-r--r--dbaccess/source/ui/inc/sbagrid.hrc4
-rw-r--r--dbaccess/source/ui/inc/sbagrid.hxx40
-rw-r--r--dbaccess/source/ui/inc/sbamultiplex.hxx541
-rw-r--r--dbaccess/source/ui/inc/singledoccontroller.hxx6
-rw-r--r--dbaccess/source/ui/inc/sqledit.hxx17
-rw-r--r--dbaccess/source/ui/inc/sqlmessage.hxx14
-rw-r--r--dbaccess/source/ui/inc/stringlistitem.hxx12
-rw-r--r--dbaccess/source/ui/inc/tabletree.hxx6
-rw-r--r--dbaccess/source/ui/inc/unoadmin.hxx5
-rw-r--r--dbaccess/source/ui/inc/unodatbr.hxx22
-rw-r--r--dbaccess/source/ui/inc/unosqlmessage.hxx1
-rw-r--r--dbaccess/source/ui/misc/DExport.cxx96
-rw-r--r--dbaccess/source/ui/misc/HtmlReader.cxx8
-rw-r--r--dbaccess/source/ui/misc/RowSetDrop.cxx23
-rw-r--r--dbaccess/source/ui/misc/RtfReader.cxx4
-rw-r--r--dbaccess/source/ui/misc/TableCopyHelper.cxx68
-rw-r--r--dbaccess/source/ui/misc/TokenWriter.cxx322
-rw-r--r--dbaccess/source/ui/misc/UITools.cxx276
-rw-r--r--dbaccess/source/ui/misc/WCPage.cxx54
-rw-r--r--dbaccess/source/ui/misc/WColumnSelect.cxx39
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx150
-rw-r--r--dbaccess/source/ui/misc/WExtendPages.cxx4
-rw-r--r--dbaccess/source/ui/misc/WNameMatch.cxx34
-rw-r--r--dbaccess/source/ui/misc/WTypeSelect.cxx70
-rw-r--r--dbaccess/source/ui/misc/asyncmodaldialog.cxx4
-rw-r--r--dbaccess/source/ui/misc/charsets.cxx14
-rw-r--r--dbaccess/source/ui/misc/controllerframe.cxx8
-rw-r--r--dbaccess/source/ui/misc/databaseobjectview.cxx77
-rw-r--r--dbaccess/source/ui/misc/datasourceconnector.cxx23
-rw-r--r--dbaccess/source/ui/misc/dbaundomanager.cxx5
-rw-r--r--dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx35
-rw-r--r--dbaccess/source/ui/misc/defaultobjectnamecheck.cxx47
-rw-r--r--dbaccess/source/ui/misc/dsmeta.cxx104
-rw-r--r--dbaccess/source/ui/misc/imageprovider.cxx78
-rw-r--r--dbaccess/source/ui/misc/indexcollection.cxx52
-rw-r--r--dbaccess/source/ui/misc/linkeddocuments.cxx99
-rw-r--r--dbaccess/source/ui/misc/singledoccontroller.cxx26
-rw-r--r--dbaccess/source/ui/misc/stringlistitem.cxx17
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLine.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx72
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLineData.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/JAccess.cxx23
-rw-r--r--dbaccess/source/ui/querydesign/JoinController.cxx64
-rw-r--r--dbaccess/source/ui/querydesign/JoinDesignView.cxx5
-rw-r--r--dbaccess/source/ui/querydesign/JoinExchange.cxx20
-rw-r--r--dbaccess/source/ui/querydesign/JoinTableView.cxx96
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnectionData.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/QTableWindow.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx4
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx3
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignView.cxx141
-rw-r--r--dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx3
-rw-r--r--dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx1
-rw-r--r--dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx1
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx28
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx3
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx5
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx4
-rw-r--r--dbaccess/source/ui/querydesign/QueryTableView.cxx26
-rw-r--r--dbaccess/source/ui/querydesign/QueryTextView.cxx48
-rw-r--r--dbaccess/source/ui/querydesign/QueryViewSwitch.cxx1
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx177
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx40
-rw-r--r--dbaccess/source/ui/querydesign/TableConnection.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/TableConnectionData.cxx9
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldDescription.cxx61
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldInfo.cxx9
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldInfo.hxx1
-rw-r--r--dbaccess/source/ui/querydesign/TableWindow.cxx106
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowAccess.cxx70
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowData.cxx13
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowListBox.cxx98
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowTitle.cxx133
-rw-r--r--dbaccess/source/ui/querydesign/limitboxcontroller.cxx49
-rw-r--r--dbaccess/source/ui/querydesign/limitboxcontroller.hxx11
-rw-r--r--dbaccess/source/ui/querydesign/querycontainerwindow.cxx7
-rw-r--r--dbaccess/source/ui/querydesign/querycontroller.cxx179
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.cxx37
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.hxx2
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnection.cxx2
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnectionData.cxx59
-rw-r--r--dbaccess/source/ui/relationdesign/RelationController.cxx27
-rw-r--r--dbaccess/source/ui/relationdesign/RelationDesignView.cxx6
-rw-r--r--dbaccess/source/ui/relationdesign/RelationTableView.cxx27
-rw-r--r--dbaccess/source/ui/tabledesign/FieldDescriptions.cxx45
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.cxx145
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.hxx41
-rw-r--r--dbaccess/source/ui/tabledesign/TableController.cxx80
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignControl.cxx36
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx24
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignView.cxx13
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.cxx4
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.hxx2
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx19
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx6
-rw-r--r--dbaccess/source/ui/tabledesign/TableRow.cxx96
-rw-r--r--dbaccess/source/ui/tabledesign/TableRowExchange.cxx12
-rw-r--r--dbaccess/source/ui/tabledesign/TableUndo.cxx21
-rw-r--r--dbaccess/source/ui/tabledesign/TableUndo.hxx20
-rw-r--r--dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx6
-rw-r--r--dbaccess/source/ui/uno/ColumnControl.cxx29
-rw-r--r--dbaccess/source/ui/uno/ColumnControl.hxx3
-rw-r--r--dbaccess/source/ui/uno/ColumnModel.cxx42
-rw-r--r--dbaccess/source/ui/uno/ColumnModel.hxx8
-rw-r--r--dbaccess/source/ui/uno/ColumnPeer.cxx4
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlg.cxx6
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx11
-rw-r--r--dbaccess/source/ui/uno/TableFilterDlg.cxx6
-rw-r--r--dbaccess/source/ui/uno/UserSettingsDlg.cxx6
-rw-r--r--dbaccess/source/ui/uno/admindlg.cxx37
-rw-r--r--dbaccess/source/ui/uno/composerdialogs.cxx65
-rw-r--r--dbaccess/source/ui/uno/composerdialogs.hxx5
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.cxx341
-rw-r--r--dbaccess/source/ui/uno/dbinteraction.cxx51
-rw-r--r--dbaccess/source/ui/uno/dbinteraction.hxx1
-rw-r--r--dbaccess/source/ui/uno/textconnectionsettings_uno.cxx47
-rw-r--r--dbaccess/source/ui/uno/unoDirectSql.cxx35
-rw-r--r--dbaccess/source/ui/uno/unoDirectSql.hxx5
-rw-r--r--dbaccess/source/ui/uno/unoadmin.cxx20
-rw-r--r--dbaccess/source/ui/uno/unosqlmessage.cxx5
502 files changed, 10614 insertions, 11611 deletions
diff --git a/dbaccess/source/core/api/BookmarkSet.cxx b/dbaccess/source/core/api/BookmarkSet.cxx
index b21d7cbbb666..75b369885e3b 100644
--- a/dbaccess/source/core/api/BookmarkSet.cxx
+++ b/dbaccess/source/core/api/BookmarkSet.cxx
@@ -27,12 +27,8 @@ using namespace dbaccess;
using namespace ::connectivity;
using namespace ::dbtools;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
-using namespace ::osl;
void OBookmarkSet::construct(const Reference< XResultSet>& _xDriverSet,const OUString& i_sRowSetFilter)
{
@@ -142,56 +138,56 @@ void OBookmarkSet::updateColumn(sal_Int32 nPos, const Reference< XRowUpdate >& _
break;
case DataType::CHAR:
case DataType::VARCHAR:
- _xParameter->updateString(nPos,_rValue);
+ _xParameter->updateString(nPos,_rValue.getString());
break;
case DataType::BIGINT:
if ( _rValue.isSigned() )
- _xParameter->updateLong(nPos,_rValue);
+ _xParameter->updateLong(nPos,_rValue.getLong());
else
- _xParameter->updateString(nPos,_rValue);
+ _xParameter->updateString(nPos,_rValue.getString());
break;
case DataType::BIT:
case DataType::BOOLEAN:
- _xParameter->updateBoolean(nPos,bool(_rValue));
+ _xParameter->updateBoolean(nPos,_rValue.getBool());
break;
case DataType::TINYINT:
if ( _rValue.isSigned() )
- _xParameter->updateByte(nPos,_rValue);
+ _xParameter->updateByte(nPos,_rValue.getInt8());
else
- _xParameter->updateShort(nPos,_rValue);
+ _xParameter->updateShort(nPos,_rValue.getInt16());
break;
case DataType::SMALLINT:
if ( _rValue.isSigned() )
- _xParameter->updateShort(nPos,_rValue);
+ _xParameter->updateShort(nPos,_rValue.getInt16());
else
- _xParameter->updateInt(nPos,_rValue);
+ _xParameter->updateInt(nPos,_rValue.getInt32());
break;
case DataType::INTEGER:
if ( _rValue.isSigned() )
- _xParameter->updateInt(nPos,_rValue);
+ _xParameter->updateInt(nPos,_rValue.getInt32());
else
- _xParameter->updateLong(nPos,_rValue);
+ _xParameter->updateLong(nPos,_rValue.getLong());
break;
case DataType::FLOAT:
- _xParameter->updateFloat(nPos,_rValue);
+ _xParameter->updateFloat(nPos,_rValue.getFloat());
break;
case DataType::DOUBLE:
case DataType::REAL:
- _xParameter->updateDouble(nPos,_rValue);
+ _xParameter->updateDouble(nPos,_rValue.getDouble());
break;
case DataType::DATE:
- _xParameter->updateDate(nPos,_rValue);
+ _xParameter->updateDate(nPos,_rValue.getDate());
break;
case DataType::TIME:
- _xParameter->updateTime(nPos,_rValue);
+ _xParameter->updateTime(nPos,_rValue.getTime());
break;
case DataType::TIMESTAMP:
- _xParameter->updateTimestamp(nPos,_rValue);
+ _xParameter->updateTimestamp(nPos,_rValue.getDateTime());
break;
case DataType::BINARY:
case DataType::VARBINARY:
case DataType::LONGVARBINARY:
- _xParameter->updateBytes(nPos,_rValue);
+ _xParameter->updateBytes(nPos,_rValue.getSequence());
break;
case DataType::BLOB:
case DataType::CLOB:
diff --git a/dbaccess/source/core/api/CIndexes.cxx b/dbaccess/source/core/api/CIndexes.cxx
index 409d877288b8..8cf1c601d85a 100644
--- a/dbaccess/source/core/api/CIndexes.cxx
+++ b/dbaccess/source/core/api/CIndexes.cxx
@@ -25,16 +25,13 @@ using namespace connectivity::sdbcx;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
using namespace dbaccess;
-using namespace cppu;
-ObjectType OIndexes::createObject(const OUString& _rName)
+css::uno::Reference< css::beans::XPropertySet > OIndexes::createObject(const OUString& _rName)
{
- ObjectType xRet;
+ css::uno::Reference< css::beans::XPropertySet > xRet;
if ( m_xIndexes.is() && m_xIndexes->hasByName(_rName) )
xRet.set(m_xIndexes->getByName(_rName),UNO_QUERY);
else
@@ -53,7 +50,7 @@ Reference< XPropertySet > OIndexes::createDescriptor()
}
// XAppend
-ObjectType OIndexes::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
+css::uno::Reference< css::beans::XPropertySet > OIndexes::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
Reference<XAppend> xData( m_xIndexes,UNO_QUERY);
if ( !xData.is() )
diff --git a/dbaccess/source/core/api/CIndexes.hxx b/dbaccess/source/core/api/CIndexes.hxx
index f20da6cbefa9..953811e94e82 100644
--- a/dbaccess/source/core/api/CIndexes.hxx
+++ b/dbaccess/source/core/api/CIndexes.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <connectivity/TIndexes.hxx>
+#include <utility>
namespace dbaccess
{
@@ -27,17 +28,17 @@ namespace dbaccess
{
css::uno::Reference< css::container::XNameAccess > m_xIndexes;
protected:
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual css::uno::Reference< css::beans::XPropertySet > createDescriptor() override;
- virtual connectivity::sdbcx::ObjectType appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
virtual void dropObject(sal_Int32 _nPos, const OUString& _sElementName) override;
public:
OIndexes(connectivity::OTableHelper* _pTable,
::osl::Mutex& _rMutex,
const std::vector< OUString> &_rVector,
- const css::uno::Reference< css::container::XNameAccess >& _rxIndexes
+ css::uno::Reference< css::container::XNameAccess > _rxIndexes
) : connectivity::OIndexesHelper(_pTable,_rMutex,_rVector)
- ,m_xIndexes(_rxIndexes)
+ ,m_xIndexes(std::move(_rxIndexes))
{}
virtual void disposing() override;
diff --git a/dbaccess/source/core/api/CRowSetColumn.cxx b/dbaccess/source/core/api/CRowSetColumn.cxx
index cef90a8e8521..98435b7c4498 100644
--- a/dbaccess/source/core/api/CRowSetColumn.cxx
+++ b/dbaccess/source/core/api/CRowSetColumn.cxx
@@ -19,9 +19,11 @@
#include <stringconstants.hxx>
-#include <apitools.hxx>
+#include <strings.hxx>
#include "CRowSetColumn.hxx"
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
@@ -42,31 +44,30 @@ ORowSetColumn::ORowSetColumn( const Reference < XResultSetMetaData >& _xMetaData
::cppu::IPropertyArrayHelper* ORowSetColumn::createArrayHelper( ) const
{
- BEGIN_PROPERTY_SEQUENCE(21)
-
- DECL_PROP1( CATALOGNAME, OUString, READONLY );
- DECL_PROP1( DISPLAYSIZE, sal_Int32, READONLY );
- DECL_PROP1_BOOL( ISAUTOINCREMENT, READONLY );
- DECL_PROP1_BOOL( ISCASESENSITIVE, READONLY );
- DECL_PROP1_BOOL( ISCURRENCY, READONLY );
- DECL_PROP1_BOOL( ISDEFINITELYWRITABLE, READONLY );
- DECL_PROP1( ISNULLABLE, sal_Int32, READONLY );
- DECL_PROP1_BOOL( ISREADONLY, BOUND );
- DECL_PROP1_BOOL( ISROWVERSION, READONLY );
- DECL_PROP1_BOOL( ISSEARCHABLE, READONLY );
- DECL_PROP1_BOOL( ISSIGNED, READONLY );
- DECL_PROP1_BOOL( ISWRITABLE, READONLY );
- DECL_PROP1( LABEL, OUString, READONLY );
- DECL_PROP1( PRECISION, sal_Int32, READONLY );
- DECL_PROP1( SCALE, sal_Int32, READONLY );
- DECL_PROP1( SCHEMANAME, OUString, READONLY );
- DECL_PROP1( SERVICENAME, OUString, READONLY );
- DECL_PROP1( TABLENAME, OUString, READONLY );
- DECL_PROP1( TYPE, sal_Int32, READONLY );
- DECL_PROP1( TYPENAME, OUString, READONLY );
- DECL_PROP2( VALUE, Any, READONLY, BOUND );
-
- END_PROPERTY_SEQUENCE()
+ css::uno::Sequence< css::beans::Property> aDescriptor
+ {
+ { PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_DISPLAYSIZE, PROPERTY_ID_DISPLAYSIZE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISAUTOINCREMENT, PROPERTY_ID_ISAUTOINCREMENT, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCASESENSITIVE, PROPERTY_ID_ISCASESENSITIVE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCURRENCY, PROPERTY_ID_ISCURRENCY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISDEFINITELYWRITABLE, PROPERTY_ID_ISDEFINITELYWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISNULLABLE, PROPERTY_ID_ISNULLABLE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISREADONLY, PROPERTY_ID_ISREADONLY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_ISROWVERSION, PROPERTY_ID_ISROWVERSION, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSEARCHABLE, PROPERTY_ID_ISSEARCHABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSIGNED, PROPERTY_ID_ISSIGNED, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISWRITABLE, PROPERTY_ID_ISWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_LABEL, PROPERTY_ID_LABEL, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_PRECISION, PROPERTY_ID_PRECISION, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCALE, PROPERTY_ID_SCALE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCHEMANAME, PROPERTY_ID_SCHEMANAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SERVICENAME, PROPERTY_ID_SERVICENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TABLENAME, PROPERTY_ID_TABLENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPE, PROPERTY_ID_TYPE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPENAME, PROPERTY_ID_TYPENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_VALUE, PROPERTY_ID_VALUE, cppu::UnoType<Any>::get(), css::beans::PropertyAttribute::READONLY | css::beans::PropertyAttribute::BOUND}
+ };
Sequence< Property > aRegisteredProperties;
describeProperties( aRegisteredProperties );
diff --git a/dbaccess/source/core/api/CRowSetDataColumn.cxx b/dbaccess/source/core/api/CRowSetDataColumn.cxx
index f1d845e11517..fa99533c0f61 100644
--- a/dbaccess/source/core/api/CRowSetDataColumn.cxx
+++ b/dbaccess/source/core/api/CRowSetDataColumn.cxx
@@ -20,11 +20,12 @@
#include "CRowSetDataColumn.hxx"
#include <stringconstants.hxx>
-#include <apitools.hxx>
+#include <strings.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
+#include <utility>
using namespace dbaccess;
using namespace comphelper;
@@ -34,7 +35,6 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::util;
using namespace cppu;
using namespace osl;
@@ -44,13 +44,13 @@ ORowSetDataColumn::ORowSetDataColumn( const Reference < XResultSetMetaData >& _x
const Reference < XRowUpdate >& _xRowUpdate,
sal_Int32 _nPos,
const Reference< XDatabaseMetaData >& _rxDBMeta,
- const OUString& _rDescription,
- const OUString& i_sLabel,
- const std::function<const ORowSetValue& (sal_Int32)> &_getValue)
+ OUString i_sDescription,
+ OUString i_sLabel,
+ std::function<const ORowSetValue& (sal_Int32)> _getValue)
:ODataColumn(_xMetaData,_xRow,_xRowUpdate,_nPos,_rxDBMeta)
- ,m_pGetValue(_getValue)
- ,m_sLabel(i_sLabel)
- ,m_aDescription(_rDescription)
+ ,m_pGetValue(std::move(_getValue))
+ ,m_sLabel(std::move(i_sLabel))
+ ,m_aDescription(std::move(i_sDescription))
{
OColumnSettings::registerProperties( *this );
registerProperty( PROPERTY_DESCRIPTION, PROPERTY_ID_DESCRIPTION, PropertyAttribute::READONLY, &m_aDescription, cppu::UnoType<decltype(m_aDescription)>::get() );
@@ -63,31 +63,30 @@ ORowSetDataColumn::~ORowSetDataColumn()
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* ORowSetDataColumn::createArrayHelper( ) const
{
- BEGIN_PROPERTY_SEQUENCE(21)
-
- DECL_PROP1( CATALOGNAME, OUString, READONLY );
- DECL_PROP1( DISPLAYSIZE, sal_Int32, READONLY );
- DECL_PROP1_BOOL( ISAUTOINCREMENT, READONLY );
- DECL_PROP1_BOOL( ISCASESENSITIVE, READONLY );
- DECL_PROP1_BOOL( ISCURRENCY, READONLY );
- DECL_PROP1_BOOL( ISDEFINITELYWRITABLE, READONLY );
- DECL_PROP1( ISNULLABLE, sal_Int32, READONLY );
- DECL_PROP1_BOOL( ISREADONLY, BOUND );
- DECL_PROP1_BOOL( ISROWVERSION, READONLY );
- DECL_PROP1_BOOL( ISSEARCHABLE, READONLY );
- DECL_PROP1_BOOL( ISSIGNED, READONLY );
- DECL_PROP1_BOOL( ISWRITABLE, READONLY );
- DECL_PROP1( LABEL, OUString, READONLY );
- DECL_PROP1( PRECISION, sal_Int32, READONLY );
- DECL_PROP1( SCALE, sal_Int32, READONLY );
- DECL_PROP1( SCHEMANAME, OUString, READONLY );
- DECL_PROP1( SERVICENAME, OUString, READONLY );
- DECL_PROP1( TABLENAME, OUString, READONLY );
- DECL_PROP1( TYPE, sal_Int32, READONLY );
- DECL_PROP1( TYPENAME, OUString, READONLY );
- DECL_PROP1( VALUE, Any, BOUND );
-
- END_PROPERTY_SEQUENCE()
+ css::uno::Sequence< css::beans::Property> aDescriptor
+ {
+ { PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_DISPLAYSIZE, PROPERTY_ID_DISPLAYSIZE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISAUTOINCREMENT, PROPERTY_ID_ISAUTOINCREMENT, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCASESENSITIVE, PROPERTY_ID_ISCASESENSITIVE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCURRENCY, PROPERTY_ID_ISCURRENCY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISDEFINITELYWRITABLE, PROPERTY_ID_ISDEFINITELYWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISNULLABLE, PROPERTY_ID_ISNULLABLE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISREADONLY, PROPERTY_ID_ISREADONLY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_ISROWVERSION, PROPERTY_ID_ISROWVERSION, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSEARCHABLE, PROPERTY_ID_ISSEARCHABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSIGNED, PROPERTY_ID_ISSIGNED, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISWRITABLE, PROPERTY_ID_ISWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_LABEL, PROPERTY_ID_LABEL, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_PRECISION, PROPERTY_ID_PRECISION, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCALE, PROPERTY_ID_SCALE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCHEMANAME, PROPERTY_ID_SCHEMANAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SERVICENAME, PROPERTY_ID_SERVICENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TABLENAME, PROPERTY_ID_TABLENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPE, PROPERTY_ID_TYPE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPENAME, PROPERTY_ID_TYPENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_VALUE, PROPERTY_ID_VALUE, cppu::UnoType<Any>::get(), css::beans::PropertyAttribute::BOUND }
+ };
Sequence< Property > aRegisteredProperties;
describeProperties( aRegisteredProperties );
@@ -193,12 +192,12 @@ void ORowSetDataColumn::fireValueChange(const ORowSetValue& _rOldValue)
ORowSetDataColumns::ORowSetDataColumns(
bool _bCase,
- const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ ::rtl::Reference< ::connectivity::OSQLColumns> _xColumns,
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
const std::vector< OUString> &_rVector
) : connectivity::sdbcx::OCollection(_rParent,_bCase,_rMutex,_rVector)
- ,m_aColumns(_rColumns)
+ ,m_aColumns(std::move(_xColumns))
{
}
@@ -206,9 +205,9 @@ ORowSetDataColumns::~ORowSetDataColumns()
{
}
-sdbcx::ObjectType ORowSetDataColumns::createObject(const OUString& _rName)
+css::uno::Reference< css::beans::XPropertySet > ORowSetDataColumns::createObject(const OUString& _rName)
{
- connectivity::sdbcx::ObjectType xNamed;
+ css::uno::Reference< css::beans::XPropertySet > xNamed;
::comphelper::UStringMixEqual aCase(isCaseSensitive());
::connectivity::OSQLColumns::Vector::const_iterator first = ::connectivity::find(m_aColumns->begin(),m_aColumns->end(),_rName,aCase);
diff --git a/dbaccess/source/core/api/CRowSetDataColumn.hxx b/dbaccess/source/core/api/CRowSetDataColumn.hxx
index f0efcbf8d85c..cc8157c96055 100644
--- a/dbaccess/source/core/api/CRowSetDataColumn.hxx
+++ b/dbaccess/source/core/api/CRowSetDataColumn.hxx
@@ -49,9 +49,9 @@ namespace dbaccess
const css::uno::Reference < css::sdbc::XRowUpdate >& _xRowUpdate,
sal_Int32 _nPos,
const css::uno::Reference< css::sdbc::XDatabaseMetaData >& _rxDBMeta,
- const OUString& _rDescription,
- const OUString& i_sLabel,
- const std::function<const ::connectivity::ORowSetValue& (sal_Int32)> &_getValue);
+ OUString i_sDescription,
+ OUString i_sLabel,
+ std::function<const ::connectivity::ORowSetValue& (sal_Int32)> _getValue);
// css::lang::XTypeProvider
@@ -79,12 +79,12 @@ namespace dbaccess
{
::rtl::Reference< ::connectivity::OSQLColumns> m_aColumns;
protected:
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual void impl_refresh() override;
public:
ORowSetDataColumns(
bool _bCase,
- const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ ::rtl::Reference< ::connectivity::OSQLColumns> _xColumns,
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
const std::vector< OUString> &_rVector
diff --git a/dbaccess/source/core/api/CacheSet.cxx b/dbaccess/source/core/api/CacheSet.cxx
index e6f31962834f..064d020e87cd 100644
--- a/dbaccess/source/core/api/CacheSet.cxx
+++ b/dbaccess/source/core/api/CacheSet.cxx
@@ -36,7 +36,7 @@
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
#include <osl/diagnose.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
using namespace comphelper;
@@ -50,7 +50,6 @@ using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::io;
-using namespace ::osl;
OCacheSet::OCacheSet(sal_Int32 i_nMaxRows)
@@ -160,14 +159,14 @@ void OCacheSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity::OSQ
connectivity::ORowVector< ORowSetValue > ::Vector::iterator aEnd = _rInsertRow->end();
for(; aIter != aEnd;++aIter)
{
- aSql.append(::dbtools::quoteName( aQuote,m_xSetMetaData->getColumnName(i++)) ).append(",");
+ aSql.append(::dbtools::quoteName( aQuote,m_xSetMetaData->getColumnName(i++)) + ",");
aValues.append("?,");
}
aSql[aSql.getLength() - 1] = ')';
aValues[aValues.getLength() - 1] = ')';
- aSql.append(aValues.makeStringAndClear());
+ aSql.append(aValues);
// now create end execute the prepared statement
{
Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(aSql.makeStringAndClear()));
@@ -227,8 +226,8 @@ void OCacheSet::fillParameters( const ORowSetRow& _rRow
sal_Int32 nCheckCount = 1; // index for the original values
sal_Int32 i = 1;
- OUString sIsNull(" IS NULL");
- OUString sParam(" = ?");
+ OUString sIsNull(u" IS NULL"_ustr);
+ OUString sParam(u" = ?"_ustr);
ORowVector< ORowSetValue >::Vector::const_iterator aIter = _rRow->begin()+1;
ORowVector< ORowSetValue >::Vector::const_iterator aEnd = _rRow->end();
for(; aIter != aEnd;++aIter,++nCheckCount,++i)
@@ -261,7 +260,7 @@ void OCacheSet::fillParameters( const ORowSetRow& _rRow
}
if(aIter->isModified())
{
- _sParameter.append(::dbtools::quoteName( aQuote,aColumnName) ).append("?,");
+ _sParameter.append(::dbtools::quoteName( aQuote,aColumnName) + "?,");
}
}
}
@@ -282,7 +281,7 @@ void OCacheSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOri
{
aCondition.setLength(aCondition.getLength()-5);
- aSql.append(" WHERE " ).append( aCondition.makeStringAndClear());
+ aSql.append(" WHERE " + aCondition);
}
else
::dbtools::throwSQLException(
diff --git a/dbaccess/source/core/api/FilteredContainer.cxx b/dbaccess/source/core/api/FilteredContainer.cxx
index 0e8b2926c37e..7936be564af9 100644
--- a/dbaccess/source/core/api/FilteredContainer.cxx
+++ b/dbaccess/source/core/api/FilteredContainer.cxx
@@ -26,7 +26,7 @@
#include <comphelper/types.hxx>
#include <connectivity/dbtools.hxx>
#include <tools/wldcrd.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <optional>
#include <sal/log.hxx>
@@ -34,12 +34,8 @@ namespace dbaccess
{
using namespace dbtools;
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::sdb;
- using namespace ::com::sun::star::sdbcx;
- using namespace ::com::sun::star::util;
using namespace ::com::sun::star::container;
using namespace ::osl;
using namespace ::comphelper;
@@ -75,15 +71,11 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
return nShiftPos;
}
- static bool lcl_isElementAllowed( const OUString& _rName,
+ static bool lcl_isElementAllowed(std::u16string_view _rName,
const Sequence< OUString >& _rTableFilter,
const std::vector< WildCard >& _rWCSearch )
{
- sal_Int32 nTableFilterLen = _rTableFilter.getLength();
-
- const OUString* tableFilter = _rTableFilter.getConstArray();
- const OUString* tableFilterEnd = _rTableFilter.getConstArray() + nTableFilterLen;
- bool bFilterMatch = std::find( tableFilter, tableFilterEnd, _rName ) != tableFilterEnd;
+ bool bFilterMatch = std::find(_rTableFilter.begin(), _rTableFilter.end(), _rName) != _rTableFilter.end();
// the table is allowed to "pass" if we had no filters at all or any of the non-wildcard filters matches
if (!bFilterMatch && !_rWCSearch.empty())
{ // or if one of the wildcard expression matches
@@ -117,8 +109,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
TableInfo( const OUString& _catalog, const OUString& _schema, const OUString& _name,
const OUString& _type )
- :sComposedName()
- ,sType( _type )
+ :sType( _type )
,sCatalog( _catalog )
,sSchema( _schema )
,sName( _name )
@@ -133,7 +124,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
static void lcl_ensureComposedName( TableInfo& _io_tableInfo, const Reference< XDatabaseMetaData >& _metaData )
{
if ( !_metaData.is() )
- throw RuntimeException();
+ throw RuntimeException(u"lcl_ensureComposedName: _metaData cannot be null!"_ustr);
if ( !_io_tableInfo.sComposedName )
{
@@ -154,7 +145,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
lcl_ensureComposedName( _io_tableInfo, _metaData );
if ( !_masterContainer.is() )
- throw RuntimeException();
+ throw RuntimeException(u"lcl_ensureType: _masterContainer cannot be null!"_ustr);
OUString sTypeName;
try
@@ -169,7 +160,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
_io_tableInfo.sType = OptionalString( sTypeName );
}
- static ::std::vector< OUString> lcl_filter( const TableInfos& _unfilteredTables,
+ static ::std::vector< OUString> lcl_filter( TableInfos&& _unfilteredTables,
const Sequence< OUString >& _tableFilter, const Sequence< OUString >& _tableTypeFilter,
const Reference< XDatabaseMetaData >& _metaData, const Reference< XNameAccess >& _masterContainer )
{
@@ -180,7 +171,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
bool dontFilterTableNames = ( ( nTableFilterCount == 1 ) && _tableFilter[0] == "%" );
if( dontFilterTableNames )
{
- aFilteredTables = _unfilteredTables;
+ aFilteredTables = std::move(_unfilteredTables);
}
else
{
@@ -190,7 +181,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
Sequence< OUString > aNonWildCardTableFilter = _tableFilter;
nTableFilterCount = createWildCardVector( aNonWildCardTableFilter, aWildCardTableFilter );
- TableInfos aUnfilteredTables( _unfilteredTables );
+ TableInfos aUnfilteredTables( std::move(_unfilteredTables) );
aUnfilteredTables.reserve( nTableFilterCount + ( aWildCardTableFilter.size() * 10 ) );
for (auto & unfilteredTable : aUnfilteredTables)
@@ -212,15 +203,12 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
TableInfos aUnfilteredTables;
aUnfilteredTables.swap( aFilteredTables );
- const OUString* pTableTypeFilterBegin = _tableTypeFilter.getConstArray();
- const OUString* pTableTypeFilterEnd = pTableTypeFilterBegin + _tableTypeFilter.getLength();
-
for (auto & unfilteredTable : aUnfilteredTables)
{
// ensure that we know the table type
lcl_ensureType( unfilteredTable, _metaData, _masterContainer );
- if ( std::find( pTableTypeFilterBegin, pTableTypeFilterEnd, *unfilteredTable.sType ) != pTableTypeFilterEnd )
+ if (std::find(_tableTypeFilter.begin(), _tableTypeFilter.end(), *unfilteredTable.sType) != _tableTypeFilter.end())
aFilteredTables.push_back(unfilteredTable);
}
}
@@ -272,13 +260,12 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
TableInfos aUnfilteredTables;
- Sequence< OUString > aNames = m_xMasterContainer->getElementNames();
- const OUString* name = aNames.getConstArray();
- const OUString* nameEnd = name + aNames.getLength();
- for ( ; name != nameEnd; ++name )
- aUnfilteredTables.emplace_back( *name );
+ Sequence<OUString> aNames = m_xMasterContainer->getElementNames();
+ aUnfilteredTables.reserve(aNames.getLength());
+ for (auto& name : aNames)
+ aUnfilteredTables.emplace_back(name);
- reFill( lcl_filter( aUnfilteredTables,
+ reFill( lcl_filter( std::move(aUnfilteredTables),
_rTableFilter, _rTableTypeFilter, m_xMetaData, m_xMasterContainer ) );
m_bConstructed = true;
@@ -313,22 +300,16 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
{
if ( _rTableTypeFilter.hasElements() )
{
- const OUString* tableType = _rTableTypeFilter.getConstArray();
- const OUString* tableTypeEnd = tableType + _rTableTypeFilter.getLength();
- for ( ; tableType != tableTypeEnd; ++tableType )
- {
- if ( *tableType == sInherentTableTypeRestriction )
- break;
- }
- if ( tableType == tableTypeEnd )
+ if (std::find(_rTableTypeFilter.begin(), _rTableTypeFilter.end(),
+ sInherentTableTypeRestriction)
+ == _rTableTypeFilter.end())
{ // the only table type which can be part of this container is not allowed
// by the externally provided table type filter.
m_bConstructed = true;
return;
}
}
- aTableTypeFilter.realloc( 1 );
- aTableTypeFilter[0] = sInherentTableTypeRestriction;
+ aTableTypeFilter = { sInherentTableTypeRestriction };
}
else
{
@@ -343,7 +324,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
}
}
- static const char sAll[] = "%";
+ static constexpr OUString sAll = u"%"_ustr;
Reference< XResultSet > xTables = m_xMetaData->getTables( Any(), sAll, sAll, aTableTypeFilter );
Reference< XRow > xCurrentRow( xTables, UNO_QUERY_THROW );
@@ -360,7 +341,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
aUnfilteredTables.emplace_back( sCatalog, sSchema, sName, sType );
}
- reFill( lcl_filter( aUnfilteredTables,
+ reFill( lcl_filter( std::move(aUnfilteredTables),
_rTableFilter, aTableTypeFilter, m_xMetaData, nullptr ) );
disposeComponent( xTables );
@@ -400,7 +381,7 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
}
}
- OUString OFilteredContainer::getNameForObject(const ObjectType& _xObject)
+ OUString OFilteredContainer::getNameForObject(const css::uno::Reference< css::beans::XPropertySet >& _xObject)
{
OSL_ENSURE( _xObject.is(), "OFilteredContainer::getNameForObject: Object is NULL!" );
return ::dbtools::composeTableName( m_xMetaData, _xObject, ::dbtools::EComposeRule::InDataManipulation, false );
@@ -427,14 +408,14 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
// obtain the data source we belong to, and the TableTypeFilterMode setting
Any aFilterModeSetting;
- if ( getDataSourceSetting( getDataSource( Reference< XInterface >(m_rParent) ), "TableTypeFilterMode", aFilterModeSetting ) )
+ if (getDataSourceSetting(getDataSource(Reference<XInterface>(m_rParent)), u"TableTypeFilterMode"_ustr, aFilterModeSetting))
{
OSL_VERIFY( aFilterModeSetting >>= nFilterMode );
}
- const OUString sAll( "%" );
- const OUString sView( "VIEW" );
- const OUString sTable( "TABLE" );
+ static constexpr OUString sAll( u"%"_ustr );
+ static constexpr OUString sView( u"VIEW"_ustr );
+ static constexpr OUString sTable( u"TABLE"_ustr );
switch ( nFilterMode )
{
@@ -442,19 +423,13 @@ static sal_Int32 createWildCardVector(Sequence< OUString >& _rTableFilter, std::
SAL_WARN("dbaccess", "OTableContainer::getAllTableTypeFilter: unknown TableTypeFilterMode!" );
[[fallthrough]];
case FILTER_MODE_MIX_ALL:
- _rFilter.realloc( 3 );
- _rFilter[0] = sView;
- _rFilter[1] = sTable;
- _rFilter[2] = sAll;
+ _rFilter = { sView, sTable, sAll };
break;
case FILTER_MODE_FIXED:
- _rFilter.realloc( 2 );
- _rFilter[0] = sView;
- _rFilter[1] = sTable;
+ _rFilter = { sView, sTable };
break;
case FILTER_MODE_WILDCARD:
- _rFilter.realloc( 1 );
- _rFilter[0] = sAll;
+ _rFilter = { sAll };
break;
case FILTER_MODE_STANDARD:
_rFilter.realloc( 0 );
diff --git a/dbaccess/source/core/api/HelperCollections.cxx b/dbaccess/source/core/api/HelperCollections.cxx
index dfc18badc688..3f29b50fe9e1 100644
--- a/dbaccess/source/core/api/HelperCollections.cxx
+++ b/dbaccess/source/core/api/HelperCollections.cxx
@@ -20,6 +20,7 @@
#include "HelperCollections.hxx"
#include <strings.hxx>
+#include <utility>
#include <osl/diagnose.h>
@@ -30,23 +31,19 @@ namespace dbaccess
using namespace connectivity;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
- using namespace ::com::sun::star::sdbcx;
- using namespace ::com::sun::star::container;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::script;
using namespace ::cppu;
using namespace ::osl;
- OPrivateColumns::OPrivateColumns(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ OPrivateColumns::OPrivateColumns(::rtl::Reference< ::connectivity::OSQLColumns> _xColumns,
bool _bCase,
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
const std::vector< OUString> &_rVector,
bool _bUseAsIndex
) : sdbcx::OCollection(_rParent,_bCase,_rMutex,_rVector,_bUseAsIndex)
- ,m_aColumns(_rColumns)
+ ,m_aColumns(std::move(_xColumns))
{
}
@@ -74,30 +71,30 @@ namespace dbaccess
OPrivateColumns_Base::disposing();
}
- connectivity::sdbcx::ObjectType OPrivateColumns::createObject(const OUString& _rName)
+ css::uno::Reference< css::beans::XPropertySet > OPrivateColumns::createObject(const OUString& _rName)
{
if ( m_aColumns.is() )
{
- ::connectivity::OSQLColumns::Vector::const_iterator aIter = find(m_aColumns->begin(),m_aColumns->end(),_rName,isCaseSensitive());
+ ::connectivity::OSQLColumns::Vector::const_iterator aIter = find(m_aColumns->begin(),m_aColumns->end(),_rName,UStringMixEqual(isCaseSensitive()));
if(aIter == m_aColumns->end())
- aIter = findRealName(m_aColumns->begin(),m_aColumns->end(),_rName,isCaseSensitive());
+ aIter = findRealName(m_aColumns->begin(),m_aColumns->end(),_rName,UStringMixEqual(isCaseSensitive()));
if(aIter != m_aColumns->end())
- return connectivity::sdbcx::ObjectType(*aIter,UNO_QUERY);
+ return *aIter;
OSL_FAIL("Column not found in collection!");
}
return nullptr;
}
- connectivity::sdbcx::ObjectType OPrivateTables::createObject(const OUString& _rName)
+ css::uno::Reference< css::beans::XPropertySet > OPrivateTables::createObject(const OUString& _rName)
{
if ( !m_aTables.empty() )
{
OSQLTables::iterator aIter = m_aTables.find(_rName);
OSL_ENSURE(aIter != m_aTables.end(),"Table not found!");
OSL_ENSURE(aIter->second.is(),"Table is null!");
- return connectivity::sdbcx::ObjectType(m_aTables.find(_rName)->second,UNO_QUERY);
+ return css::uno::Reference< css::beans::XPropertySet >(m_aTables.find(_rName)->second,UNO_QUERY);
}
return nullptr;
}
diff --git a/dbaccess/source/core/api/HelperCollections.hxx b/dbaccess/source/core/api/HelperCollections.hxx
index 18cf9d15ef93..f0f38c80a48e 100644
--- a/dbaccess/source/core/api/HelperCollections.hxx
+++ b/dbaccess/source/core/api/HelperCollections.hxx
@@ -25,15 +25,10 @@
namespace dbaccess
{
using namespace dbtools;
- using namespace comphelper;
using namespace connectivity;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
- using namespace ::com::sun::star::sdbcx;
- using namespace ::com::sun::star::container;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::script;
using namespace ::cppu;
using namespace ::osl;
@@ -43,14 +38,14 @@ namespace dbaccess
{
::rtl::Reference< ::connectivity::OSQLColumns> m_aColumns;
protected:
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual void impl_refresh() override {}
virtual Reference< XPropertySet > createDescriptor() override
{
return nullptr;
}
public:
- OPrivateColumns(const ::rtl::Reference< ::connectivity::OSQLColumns>& _rColumns,
+ OPrivateColumns(::rtl::Reference< ::connectivity::OSQLColumns> _xColumns,
bool _bCase,
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
@@ -76,20 +71,20 @@ namespace dbaccess
{
OSQLTables m_aTables;
protected:
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual void impl_refresh() override {}
virtual Reference< XPropertySet > createDescriptor() override
{
return nullptr;
}
public:
- OPrivateTables( const OSQLTables& _rTables,
+ OPrivateTables( OSQLTables _rTables,
bool _bCase,
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
- const std::vector< OUString> &_rVector
+ std::vector< OUString> && _rVector
) : sdbcx::OCollection(_rParent,_bCase,_rMutex,_rVector)
- ,m_aTables(_rTables)
+ ,m_aTables(std::move(_rTables))
{
}
virtual void disposing() override
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx
index c9f9ac8a3e22..90775495b96d 100644
--- a/dbaccess/source/core/api/KeySet.cxx
+++ b/dbaccess/source/core/api/KeySet.cxx
@@ -18,6 +18,8 @@
*/
#include <memory>
+#include <string_view>
+
#include "KeySet.hxx"
#include <sal/log.hxx>
#include <core_resource.hxx>
@@ -38,13 +40,13 @@
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
#include <com/sun/star/sdbcx/XIndexesSupplier.hpp>
#include <comphelper/types.hxx>
-#include <com/sun/star/sdbcx/KeyType.hpp>
#include <connectivity/dbtools.hxx>
#include <connectivity/dbexception.hxx>
#include <algorithm>
#include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <composertools.hxx>
+#include <utility>
#include "PrivateRow.hxx"
using namespace dbaccess;
@@ -61,7 +63,6 @@ using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star;
using namespace ::cppu;
-using namespace ::osl;
using std::vector;
namespace
@@ -102,17 +103,17 @@ namespace
}
-OKeySet::OKeySet(const connectivity::OSQLTable& _xTable,
- const OUString& _rUpdateTableName, // this can be the alias or the full qualified name
+OKeySet::OKeySet(connectivity::OSQLTable _xTable,
+ OUString _sUpdateTableName, // this can be the alias or the full qualified name
const Reference< XSingleSelectQueryAnalyzer >& _xComposer,
const ORowSetValueVector& _aParameterValueForCache,
sal_Int32 i_nMaxRows,
sal_Int32& o_nRowCount)
:OCacheSet(i_nMaxRows)
,m_aParameterValueForCache(new ORowSetValueVector(_aParameterValueForCache))
- ,m_xTable(_xTable)
+ ,m_xTable(std::move(_xTable))
,m_xComposer(_xComposer)
- ,m_sUpdateTableName(_rUpdateTableName)
+ ,m_sUpdateTableName(std::move(_sUpdateTableName))
,m_rRowCount(o_nRowCount)
,m_bRowCountFinal(false)
{
@@ -135,10 +136,10 @@ void OKeySet::initColumns()
{
Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
bool bCase = xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers();
- m_pKeyColumnNames.reset( new SelectColumnsMetaData(bCase) );
- m_pColumnNames.reset( new SelectColumnsMetaData(bCase) );
- m_pParameterNames.reset( new SelectColumnsMetaData(bCase) );
- m_pForeignColumnNames.reset( new SelectColumnsMetaData(bCase) );
+ m_pKeyColumnNames.reset( new SelectColumnsMetaData(comphelper::UStringMixLess(bCase)) );
+ m_pColumnNames.reset( new SelectColumnsMetaData(comphelper::UStringMixLess(bCase)) );
+ m_pParameterNames.reset( new SelectColumnsMetaData(comphelper::UStringMixLess(bCase)) );
+ m_pForeignColumnNames.reset( new SelectColumnsMetaData(comphelper::UStringMixLess(bCase)) );
}
void OKeySet::findTableColumnsMatching_throw( const Any& i_aTable,
@@ -160,10 +161,11 @@ void OKeySet::findTableColumnsMatching_throw( const Any& i_aTable,
Reference<XIndexAccess> xQueryParameters = xParaSup->getParameters();
const sal_Int32 nParaCount = xQueryParameters->getCount();
Sequence< OUString> aParameterColumns(nParaCount);
+ auto aParameterColumnsRange = asNonConstRange(aParameterColumns);
for(sal_Int32 i = 0; i< nParaCount;++i)
{
Reference<XPropertySet> xPara(xQueryParameters->getByIndex(i),UNO_QUERY_THROW);
- xPara->getPropertyValue(PROPERTY_REALNAME) >>= aParameterColumns[i];
+ xPara->getPropertyValue(PROPERTY_REALNAME) >>= aParameterColumnsRange[i];
}
OUString sUpdateTableName( i_rUpdateTableName );
@@ -193,7 +195,7 @@ void OKeySet::findTableColumnsMatching_throw( const Any& i_aTable,
if ( o_pKeyColumnNames->empty() )
{
- ::dbtools::throwGenericSQLException("Could not find any key column.", *this );
+ ::dbtools::throwGenericSQLException(u"Could not find any key column."_ustr, *this );
}
for (auto const& keyColumn : *o_pKeyColumnNames)
@@ -210,20 +212,20 @@ void OKeySet::findTableColumnsMatching_throw( const Any& i_aTable,
namespace
{
- void appendOneKeyColumnClause( const OUString &tblName, const OUString &colName, const connectivity::ORowSetValue &_rValue, OUStringBuffer &o_buf )
+ void appendOneKeyColumnClause( std::u16string_view tblName, const OUString &colName, const connectivity::ORowSetValue &_rValue, OUStringBuffer &o_buf )
{
OUString fullName;
- if (tblName.isEmpty())
+ if (tblName.empty())
fullName = colName;
else
- fullName = tblName + "." + colName;
+ fullName = OUString::Concat(tblName) + "." + colName;
if ( _rValue.isNull() )
{
- o_buf.append(fullName).append(" IS NULL ");
+ o_buf.append(fullName + " IS NULL ");
}
else
{
- o_buf.append(fullName).append(" = ? ");
+ o_buf.append(fullName + " = ? ");
}
}
}
@@ -243,7 +245,7 @@ void OKeySet::setOneKeyColumnParameter( sal_Int32 &nPos, const Reference< XParam
OUStringBuffer OKeySet::createKeyFilter()
{
- connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.first->begin();
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.m_aRowSetRow->begin();
static const char aAnd[] = " AND ";
const OUString aQuote = getIdentifierQuoteString();
@@ -280,7 +282,7 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet, const OUStrin
Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
Reference<XColumnsSupplier> xQueryColSup(m_xComposer, UNO_QUERY);
const Reference<XNameAccess> xQueryColumns = xQueryColSup->getColumns();
- findTableColumnsMatching_throw( makeAny(m_xTable), m_sUpdateTableName, xMeta, xQueryColumns, m_pKeyColumnNames );
+ findTableColumnsMatching_throw( Any(m_xTable), m_sUpdateTableName, xMeta, xQueryColumns, m_pKeyColumnNames );
Reference< XSingleSelectQueryComposer> xSourceComposer(m_xComposer,UNO_QUERY);
Reference< XMultiServiceFactory > xFactory(m_xConnection, UNO_QUERY_THROW);
@@ -291,13 +293,11 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet, const OUStrin
const Sequence< OUString> aSeq = xSelectTables->getElementNames();
if ( aSeq.getLength() > 1 ) // special handling for join
{
- const OUString* pIter = aSeq.getConstArray();
- const OUString* const pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& name : aSeq)
{
- if ( *pIter != m_sUpdateTableName )
+ if (name != m_sUpdateTableName)
{
- connectivity::OSQLTable xSelColSup(xSelectTables->getByName(*pIter),uno::UNO_QUERY);
+ connectivity::OSQLTable xSelColSup(xSelectTables->getByName(name), uno::UNO_QUERY);
Reference<XPropertySet> xProp(xSelColSup,uno::UNO_QUERY);
OUString sSelectTableName = ::dbtools::composeTableName( xMeta, xProp, ::dbtools::EComposeRule::InDataManipulation, false );
@@ -311,7 +311,7 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet, const OUStrin
// the first row is empty because it's now easier for us to distinguish when we are beforefirst or first
// without extra variable to be set
- OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>()));
+ OKeySetValue keySetValue{nullptr,0,nullptr};
m_aKeyMap.emplace(0, keySetValue);
m_aKeyIter = m_aKeyMap.begin();
}
@@ -321,7 +321,7 @@ void OKeySet::reset(const Reference< XResultSet>& _xDriverSet)
OCacheSet::construct(_xDriverSet, m_sRowSetFilter);
m_bRowCountFinal = false;
m_aKeyMap.clear();
- OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>()));
+ OKeySetValue keySetValue{nullptr,0,nullptr};
m_aKeyMap.emplace(0,keySetValue);
m_aKeyIter = m_aKeyMap.begin();
}
@@ -331,8 +331,8 @@ void OKeySet::ensureStatement( )
// do we already have a statement for the current combination of NULLness
// of key & foreign columns?
std::vector<bool> FilterColumnsNULL;
- FilterColumnsNULL.reserve(m_aKeyIter->second.first->size());
- for (auto const& elem : *m_aKeyIter->second.first)
+ FilterColumnsNULL.reserve(m_aKeyIter->second.m_aRowSetRow->size());
+ for (auto const& elem : *m_aKeyIter->second.m_aRowSetRow)
FilterColumnsNULL.push_back(elem.isNull());
vStatements_t::const_iterator pNewStatement(m_vStatements.find(FilterColumnsNULL));
if(pNewStatement == m_vStatements.end())
@@ -373,19 +373,14 @@ void OKeySet::executeStatement(OUStringBuffer& io_aFilter, Reference<XSingleSele
io_xAnalyzer->setFilter(io_aFilter.makeStringAndClear());
if ( bFilterSet )
{
- Sequence< Sequence< PropertyValue > > aFilter2 = io_xAnalyzer->getStructuredFilter();
- const Sequence< PropertyValue >* pOr = aFilter2.getConstArray();
- const Sequence< PropertyValue >* pOrEnd = pOr + aFilter2.getLength();
- for(;pOr != pOrEnd;++pOr)
+ for (auto& rOr : io_xAnalyzer->getStructuredFilter())
{
- const PropertyValue* pAnd = pOr->getConstArray();
- const PropertyValue* pAndEnd = pAnd + pOr->getLength();
- for(;pAnd != pAndEnd;++pAnd)
+ for (auto& rAnd : rOr)
{
OUString sValue;
- if ( !(pAnd->Value >>= sValue) || !( sValue == "?" || sValue.startsWith( ":" ) ) )
+ if (!(rAnd.Value >>= sValue) || !(sValue == "?" || sValue.startsWith(":")))
{ // we have a criteria which has to be taken into account for updates
- m_aFilterColumns.push_back(pAnd->Name);
+ m_aFilterColumns.push_back(rAnd.Name);
}
}
}
@@ -404,7 +399,7 @@ Any OKeySet::getBookmark()
{
OSL_ENSURE(m_aKeyIter != m_aKeyMap.end() && m_aKeyIter != m_aKeyMap.begin(),
"getBookmark is only possible when we stand on a valid row!");
- return makeAny(m_aKeyIter->first);
+ return Any(m_aKeyIter->first);
}
bool OKeySet::moveToBookmark( const Any& bookmark )
@@ -442,11 +437,11 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi
OUStringBuffer aSql = "UPDATE " + m_aComposedTableName + " SET ";
// list all columns that should be set
- static OUString aPara(" = ?,");
+ static constexpr OUStringLiteral aPara(u" = ?,");
OUString aQuote = getIdentifierQuoteString();
- static OUString aAnd(" AND ");
- OUString sIsNull(" IS NULL");
- OUString sParam(" = ?");
+ static constexpr OUString aAnd(u" AND "_ustr);
+ OUString sIsNull(u" IS NULL"_ustr);
+ OUString sParam(u" = ?"_ustr);
// use keys and indexes for exact positioning
Reference<XIndexesSupplier> xIndexSup(_xTable,UNO_QUERY);
@@ -461,7 +456,6 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi
std::vector<sal_Int32> aIndexColumnPositions;
const sal_Int32 nOldLength = aSql.getLength();
- sal_Int32 i = 1;
// here we build the condition part for the update statement
for (auto const& columnName : *m_pColumnNames)
{
@@ -495,9 +489,8 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi
}
if((*_rInsertRow)[columnName.second.nPosition].isModified())
{
- aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName)).append(aPara);
+ aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName) + aPara);
}
- ++i;
}
if( aSql.getLength() != nOldLength )
@@ -512,15 +505,15 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi
aSql.append(" WHERE ");
if(!sKeyCondition.isEmpty() && !sIndexCondition.isEmpty())
{
- aSql.append(sKeyCondition.makeStringAndClear()).append(sIndexCondition.makeStringAndClear());
+ aSql.append(sKeyCondition + sIndexCondition);
}
else if(!sKeyCondition.isEmpty())
{
- aSql.append(sKeyCondition.makeStringAndClear());
+ aSql.append(sKeyCondition);
}
else if(!sIndexCondition.isEmpty())
{
- aSql.append(sIndexCondition.makeStringAndClear());
+ aSql.append(sIndexCondition);
}
aSql.setLength(aSql.getLength()-5); // remove the last AND
}
@@ -528,22 +521,21 @@ void OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOrigi
::dbtools::throwSQLException( DBA_RES( RID_STR_NO_CONDITION_FOR_PK ), StandardSQLState::GENERAL_ERROR, m_xConnection );
// now create end execute the prepared statement
- executeUpdate(_rInsertRow ,_rOriginalRow,aSql.makeStringAndClear(),"",aIndexColumnPositions);
+ executeUpdate(_rInsertRow ,_rOriginalRow,aSql.makeStringAndClear(),u"",aIndexColumnPositions);
}
-void OKeySet::executeUpdate(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOriginalRow,const OUString& i_sSQL,const OUString& i_sTableName,const std::vector<sal_Int32>& _aIndexColumnPositions)
+void OKeySet::executeUpdate(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rOriginalRow,const OUString& i_sSQL,std::u16string_view i_sTableName,const std::vector<sal_Int32>& _aIndexColumnPositions)
{
// now create end execute the prepared statement
Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(i_sSQL));
Reference< XParameters > xParameter(xPrep,UNO_QUERY);
bool bRefetch = true;
- Reference<XRow> xRow;
sal_Int32 i = 1;
// first the set values
for (auto const& columnName : *m_pColumnNames)
{
- if ( i_sTableName.isEmpty() || columnName.second.sTableName == i_sTableName )
+ if ( i_sTableName.empty() || columnName.second.sTableName == i_sTableName )
{
sal_Int32 nPos = columnName.second.nPosition;
if((*_rInsertRow)[nPos].isModified())
@@ -561,7 +553,7 @@ void OKeySet::executeUpdate(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rO
// and then the values of the where condition
for (auto const& keyColumnName : *m_pKeyColumnNames)
{
- if ( i_sTableName.isEmpty() || keyColumnName.second.sTableName == i_sTableName )
+ if ( i_sTableName.empty() || keyColumnName.second.sTableName == i_sTableName )
{
setParameter(i++,xParameter,(*_rOriginalRow)[keyColumnName.second.nPosition],keyColumnName.second.nType,keyColumnName.second.nScale);
}
@@ -582,9 +574,10 @@ void OKeySet::executeUpdate(const ORowSetRow& _rInsertRow ,const ORowSetRow& _rO
{
const sal_Int32 nBookmark = ::comphelper::getINT32((*_rInsertRow)[0].getAny());
m_aKeyIter = m_aKeyMap.find(nBookmark);
- m_aKeyIter->second.second.first = 2;
- m_aKeyIter->second.second.second = xRow;
- copyRowValue(_rInsertRow,m_aKeyIter->second.first,nBookmark);
+ assert(m_aKeyIter != m_aKeyMap.end());
+ m_aKeyIter->second.m_nUpdateInsert = 2;
+ m_aKeyIter->second.m_xRow.clear();
+ copyRowValue(_rInsertRow, m_aKeyIter->second.m_aRowSetRow, nBookmark);
tryRefetch(_rInsertRow,bRefetch);
}
}
@@ -610,7 +603,7 @@ void OKeySet::insertRow( const ORowSetRow& _rInsertRow,const connectivity::OSQLT
{
bRefetch = std::find(m_aFilterColumns.begin(),m_aFilterColumns.end(),columnName.second.sRealName) == m_aFilterColumns.end();
}
- aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName)).append(",");
+ aSql.append(::dbtools::quoteName( aQuote,columnName.second.sRealName) + ",");
aValues.append("?,");
bModified = true;
}
@@ -620,12 +613,12 @@ void OKeySet::insertRow( const ORowSetRow& _rInsertRow,const connectivity::OSQLT
aSql[aSql.getLength() - 1] = ')';
aValues[aValues.getLength() - 1] = ')';
- aSql.append(aValues.makeStringAndClear());
+ aSql.append(aValues);
// now create,fill and execute the prepared statement
- executeInsert(_rInsertRow,aSql.makeStringAndClear(),"",bRefetch);
+ executeInsert(_rInsertRow,aSql.makeStringAndClear(),u"",bRefetch);
}
-void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQL,const OUString& i_sTableName,bool bRefetch )
+void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQL,std::u16string_view i_sTableName,bool bRefetch )
{
// now create,fill and execute the prepared statement
Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(i_sSQL));
@@ -634,7 +627,7 @@ void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQ
sal_Int32 i = 1;
for (auto const& columnName : *m_pColumnNames)
{
- if ( i_sTableName.isEmpty() || columnName.second.sTableName == i_sTableName )
+ if ( i_sTableName.empty() || columnName.second.sTableName == i_sTableName )
{
const sal_Int32 nPos = columnName.second.nPosition;
if((*_rInsertRow)[nPos].isModified())
@@ -704,7 +697,7 @@ void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQ
::comphelper::disposeComponent(xPrep);
- if ( i_sTableName.isEmpty() && !bAutoValuesFetched && m_bInserted )
+ if ( i_sTableName.empty() && !bAutoValuesFetched && m_bInserted )
{
// first check if all key column values were set
const OUString sQuote = getIdentifierQuoteString();
@@ -716,14 +709,14 @@ void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQ
SelectColumnsMetaData::const_iterator aFind = m_pKeyColumnNames->find(autoColumn);
if ( aFind != aEnd )
{
- sMaxStmt.append(" MAX(").append(::dbtools::quoteName( sQuote,aFind->second.sRealName)).append("),");
+ sMaxStmt.append(" MAX(" + ::dbtools::quoteName( sQuote,aFind->second.sRealName) + "),");
}
}
if(!sMaxStmt.isEmpty())
{
sMaxStmt[sMaxStmt.getLength()-1] = ' ';
- OUString sStmt = "SELECT " + sMaxStmt.makeStringAndClear() + "FROM ";
+ OUString sStmt = "SELECT " + sMaxStmt + "FROM ";
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(m_xConnection->getMetaData(),m_sUpdateTableName,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
sStmt += ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable );
@@ -759,9 +752,9 @@ void OKeySet::executeInsert( const ORowSetRow& _rInsertRow,const OUString& i_sSQ
ORowSetRow aKeyRow = new connectivity::ORowVector< ORowSetValue >(m_pKeyColumnNames->size());
copyRowValue(_rInsertRow,aKeyRow,aKeyIter->first + 1);
- m_aKeyIter = m_aKeyMap.emplace( aKeyIter->first + 1, OKeySetValue(aKeyRow,std::pair<sal_Int32,Reference<XRow> >(1,Reference<XRow>())) ).first;
+ m_aKeyIter = m_aKeyMap.emplace( aKeyIter->first + 1, OKeySetValue{aKeyRow,1,nullptr} ).first;
// now we set the bookmark for this row
- (*_rInsertRow)[0] = makeAny(static_cast<sal_Int32>(m_aKeyIter->first));
+ (*_rInsertRow)[0] = Any(static_cast<sal_Int32>(m_aKeyIter->first));
tryRefetch(_rInsertRow,bRefetch);
}
}
@@ -781,7 +774,7 @@ void OKeySet::tryRefetch(const ORowSetRow& _rInsertRow,bool bRefetch)
}
if ( !bRefetch )
{
- m_aKeyIter->second.second.second = new OPrivateRow(*_rInsertRow);
+ m_aKeyIter->second.m_xRow = new OPrivateRow(std::vector(*_rInsertRow));
}
}
@@ -804,7 +797,7 @@ void OKeySet::copyRowValue(const ORowSetRow& _rInsertRow, ORowSetRow const & _rK
rtl::Reference aCopy(
new ORowSetValueVector(*m_aParameterValueForCache));
(*aCopy)[i] = (*_rInsertRow)[parameterName.second.nPosition];
- m_aUpdatedParameter[i_nBookmark] = aCopy;
+ m_aUpdatedParameter[i_nBookmark] = std::move(aCopy);
bChanged = true;
}
++aParaValuesIter;
@@ -884,7 +877,7 @@ void OKeySet::deleteRow(const ORowSetRow& _rDeleteRow,const connectivity::OSQLTa
}
}
}
- aSql.append(sIndexCondition.makeStringAndClear());
+ aSql.append(sIndexCondition);
aSql.setLength(aSql.getLength()-5);
// now create end execute the prepared statement
@@ -910,7 +903,9 @@ void OKeySet::deleteRow(const ORowSetRow& _rDeleteRow,const connectivity::OSQLTa
if(m_bDeleted)
{
sal_Int32 nBookmark = ::comphelper::getINT32((*_rDeleteRow)[0].getAny());
- if(m_aKeyIter == m_aKeyMap.find(nBookmark) && m_aKeyIter != m_aKeyMap.end())
+ const auto iter = m_aKeyMap.find(nBookmark);
+ assert(iter != m_aKeyMap.end());
+ if(m_aKeyIter == iter && m_aKeyIter != m_aKeyMap.end())
++m_aKeyIter;
m_aKeyMap.erase(nBookmark);
m_bDeleted = true;
@@ -1107,7 +1102,7 @@ bool OKeySet::doTryRefetch_throw()
}
// now set the primary key column values
- connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.first->begin();
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aIter = m_aKeyIter->second.m_aRowSetRow->begin();
for (auto const& keyColumnName : *m_pKeyColumnNames)
setOneKeyColumnParameter(nPos,xParameter,*aIter++,keyColumnName.second.nType,keyColumnName.second.nScale);
for (auto const& foreignColumnName : *m_pForeignColumnNames)
@@ -1125,9 +1120,9 @@ void OKeySet::refreshRow()
if(isBeforeFirst() || isAfterLast())
return;
- if ( m_aKeyIter->second.second.second.is() )
+ if ( m_aKeyIter->second.m_xRow.is() )
{
- m_xRow = m_aKeyIter->second.second.second;
+ m_xRow = m_aKeyIter->second.m_xRow;
return;
}
@@ -1202,7 +1197,7 @@ bool OKeySet::fetchRow()
aIter->fill(rColDesc.nPosition, rColDesc.nType, m_xRow);
++aIter;
}
- m_aKeyIter = m_aKeyMap.emplace( m_aKeyMap.rbegin()->first+1,OKeySetValue(aKeyRow,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>())) ).first;
+ m_aKeyIter = m_aKeyMap.emplace( m_aKeyMap.rbegin()->first+1,OKeySetValue{aKeyRow,0,nullptr} ).first;
}
else
m_bRowCountFinal = true;
@@ -1227,7 +1222,7 @@ bool OKeySet::fillAllRows()
sal_Bool SAL_CALL OKeySet::wasNull( )
{
if ( ! m_xRow.is() )
- throwGenericSQLException("Must call getFOO() for some FOO before wasNull()", *this);
+ throwGenericSQLException(u"Must call getFOO() for some FOO before wasNull()"_ustr, *this);
OSL_ENSURE(m_xRow.is(),"m_xRow is null! I've thrown, but function execution continued?");
return m_xRow->wasNull();
@@ -1238,7 +1233,7 @@ inline void OKeySet::ensureRowForData( )
if (! m_xRow.is() )
refreshRow();
if (! m_xRow.is() )
- throwSQLException("Failed to refetch row", "02000", *this, -2);
+ throwSQLException(u"Failed to refetch row"_ustr, u"02000"_ustr, *this, -2);
OSL_ENSURE(m_xRow.is(),"m_xRow is null! I've called throwSQLException but execution continued?");
}
@@ -1359,12 +1354,12 @@ Reference< XArray > SAL_CALL OKeySet::getArray( sal_Int32 columnIndex )
bool OKeySet::rowUpdated( )
{
- return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 2;
+ return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.m_nUpdateInsert == 2;
}
bool OKeySet::rowInserted( )
{
- return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 1;
+ return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.m_nUpdateInsert == 1;
}
bool OKeySet::rowDeleted( )
@@ -1379,32 +1374,27 @@ namespace dbaccess
void getColumnPositions(const Reference<XNameAccess>& _rxQueryColumns,
const css::uno::Sequence< OUString >& _aColumnNames,
- const OUString& _rsUpdateTableName,
+ std::u16string_view _rsUpdateTableName,
SelectColumnsMetaData& o_rColumnNames,
bool i_bAppendTableName)
{
// get the real name of the columns
- Sequence< OUString> aSelNames(_rxQueryColumns->getElementNames());
- const OUString* pSelIter = aSelNames.getConstArray();
- const OUString* pSelEnd = pSelIter + aSelNames.getLength();
-
- const OUString* pTblColumnIter = _aColumnNames.getConstArray();
- const OUString* pTblColumnEnd = pTblColumnIter + _aColumnNames.getLength();
-
::comphelper::UStringMixEqual bCase(o_rColumnNames.key_comp().isCaseSensitive());
- for(sal_Int32 nPos = 1;pSelIter != pSelEnd;++pSelIter,++nPos)
+ sal_Int32 nPos = 0;
+ for (auto& queryColumnName : _rxQueryColumns->getElementNames())
{
- Reference<XPropertySet> xQueryColumnProp(_rxQueryColumns->getByName(*pSelIter),UNO_QUERY_THROW);
+ ++nPos;
+ Reference<XPropertySet> xQueryColumnProp(_rxQueryColumns->getByName(queryColumnName),UNO_QUERY_THROW);
OUString sRealName,sTableName;
OSL_ENSURE(xQueryColumnProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME),"Property REALNAME not available!");
OSL_ENSURE(xQueryColumnProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_TABLENAME),"Property TABLENAME not available!");
xQueryColumnProp->getPropertyValue(PROPERTY_REALNAME) >>= sRealName;
xQueryColumnProp->getPropertyValue(PROPERTY_TABLENAME) >>= sTableName;
- for(;pTblColumnIter != pTblColumnEnd;++pTblColumnIter)
+ for (auto& tableColumnName : _aColumnNames)
{
- if(bCase(sRealName,*pTblColumnIter) && bCase(_rsUpdateTableName,sTableName) && o_rColumnNames.find(*pTblColumnIter) == o_rColumnNames.end())
+ if(bCase(sRealName,tableColumnName) && bCase(_rsUpdateTableName,sTableName) && o_rColumnNames.find(tableColumnName) == o_rColumnNames.end())
{
sal_Int32 nType = 0;
xQueryColumnProp->getPropertyValue(PROPERTY_TYPE) >>= nType;
@@ -1429,12 +1419,11 @@ void getColumnPositions(const Reference<XNameAccess>& _rxQueryColumns,
{
sName = sRealName;
}
- o_rColumnNames[sName] = aColDesc;
+ o_rColumnNames[sName] = std::move(aColDesc);
break;
}
}
- pTblColumnIter = _aColumnNames.getConstArray();
}
}
}
diff --git a/dbaccess/source/core/api/KeySet.hxx b/dbaccess/source/core/api/KeySet.hxx
index cc6175923063..37cde22d7e32 100644
--- a/dbaccess/source/core/api/KeySet.hxx
+++ b/dbaccess/source/core/api/KeySet.hxx
@@ -23,6 +23,7 @@
#include <memory>
#include <map>
+#include <utility>
#include <vector>
#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.hpp>
@@ -31,6 +32,8 @@
namespace dbaccess
{
+ class OPrivateRow;
+
struct SelectColumnDescription
{
OUString sRealName; // may be empty
@@ -49,8 +52,8 @@ namespace dbaccess
{
}
- SelectColumnDescription( sal_Int32 _nPosition, sal_Int32 _nType, sal_Int32 _nScale,bool _bNullable, const OUString& _rDefaultValue )
- :sDefaultValue( _rDefaultValue )
+ SelectColumnDescription( sal_Int32 _nPosition, sal_Int32 _nType, sal_Int32 _nScale, bool _bNullable, OUString _sDefaultValue )
+ :sDefaultValue(std::move( _sDefaultValue ))
,nPosition( _nPosition )
,nType( _nType )
,nScale( _nScale )
@@ -63,11 +66,16 @@ namespace dbaccess
// the elements of _rxQueryColumns must have the properties PROPERTY_REALNAME and PROPERTY_TABLENAME
void getColumnPositions(const css::uno::Reference< css::container::XNameAccess >& _rxQueryColumns,
const css::uno::Sequence< OUString >& _rColumnNames,
- const OUString& _rsUpdateTableName,
+ std::u16string_view _rsUpdateTableName,
SelectColumnsMetaData& o_rColumnNames /* out */,
bool i_bAppendTableName = false);
- typedef std::pair<ORowSetRow,std::pair<sal_Int32,css::uno::Reference< css::sdbc::XRow> > > OKeySetValue;
+ struct OKeySetValue
+ {
+ ORowSetRow m_aRowSetRow;
+ sal_Int32 m_nUpdateInsert;
+ rtl::Reference<OPrivateRow> m_xRow;
+ };
typedef std::map<sal_Int32,OKeySetValue > OKeySetMatrix;
typedef std::map<sal_Int32, rtl::Reference<ORowSetValueVector> > OUpdatedParameter;
// is used when the source supports keys
@@ -136,14 +144,14 @@ namespace dbaccess
/// @throws css::uno::RuntimeException
bool doTryRefetch_throw();
void tryRefetch(const ORowSetRow& _rInsertRow,bool bRefetch);
- void executeUpdate(const ORowSetRow& _rInsertRow, const ORowSetRow& _rOriginalRow, const OUString& i_sSQL, const OUString& i_sTableName,const std::vector<sal_Int32>& _aIndexColumnPositions = std::vector<sal_Int32>());
- void executeInsert( const ORowSetRow& _rInsertRow, const OUString& i_sSQL, const OUString& i_sTableName, bool bRefetch = false);
+ void executeUpdate(const ORowSetRow& _rInsertRow, const ORowSetRow& _rOriginalRow, const OUString& i_sSQL, std::u16string_view i_sTableName,const std::vector<sal_Int32>& _aIndexColumnPositions = std::vector<sal_Int32>());
+ void executeInsert( const ORowSetRow& _rInsertRow, const OUString& i_sSQL, std::u16string_view i_sTableName, bool bRefetch = false);
void executeStatement(OUStringBuffer& io_aFilter, css::uno::Reference< css::sdb::XSingleSelectQueryComposer>& io_xAnalyzer);
virtual ~OKeySet() override;
public:
- OKeySet(const connectivity::OSQLTable& _xTable,
- const OUString& _rUpdateTableName,
+ OKeySet(connectivity::OSQLTable _aTable,
+ OUString _sUpdateTableName,
const css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer >& _xComposer,
const ORowSetValueVector& _aParameterValueForCache,
sal_Int32 i_nMaxRows,
diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx
index 67fd18aaaea7..a74ec45e41d7 100644
--- a/dbaccess/source/core/api/OptimisticSet.cxx
+++ b/dbaccess/source/core/api/OptimisticSet.cxx
@@ -36,27 +36,24 @@
#include <algorithm>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <composertools.hxx>
+#include "PrivateRow.hxx"
using namespace dbaccess;
using namespace ::connectivity;
using namespace ::dbtools;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star;
-using namespace ::cppu;
-using namespace ::osl;
typedef std::map<OUString, OUStringBuffer> TSQLStatements;
namespace
{
- void lcl_fillKeyCondition(const OUString& i_sTableName,const OUString& i_sQuotedColumnName,const ORowSetValue& i_aValue,TSQLStatements& io_aKeyConditions)
+ void lcl_fillKeyCondition(const OUString& i_sTableName,std::u16string_view i_sQuotedColumnName,const ORowSetValue& i_aValue,TSQLStatements& io_aKeyConditions)
{
OUStringBuffer& rKeyCondition = io_aKeyConditions[i_sTableName];
if ( !rKeyCondition.isEmpty() )
@@ -100,19 +97,16 @@ void OptimisticSet::construct(const Reference< XResultSet>& _xDriverSet,const OU
const Reference<XNameAccess> xQueryColumns = xQueryColSup->getColumns();
const Reference<XTablesSupplier> xTabSup(m_xComposer,UNO_QUERY);
const Reference<XNameAccess> xTables = xTabSup->getTables();
- const Sequence< OUString> aTableNames = xTables->getElementNames();
- const OUString* pTableNameIter = aTableNames.getConstArray();
- const OUString* pTableNameEnd = pTableNameIter + aTableNames.getLength();
- for( ; pTableNameIter != pTableNameEnd ; ++pTableNameIter)
+ for (auto& tableName : xTables->getElementNames())
{
- std::unique_ptr<SelectColumnsMetaData> pKeyColumNames(new SelectColumnsMetaData(bCase));
- findTableColumnsMatching_throw(xTables->getByName(*pTableNameIter),*pTableNameIter,xMeta,xQueryColumns,pKeyColumNames);
+ std::unique_ptr<SelectColumnsMetaData> pKeyColumNames(new SelectColumnsMetaData(comphelper::UStringMixLess(bCase)));
+ findTableColumnsMatching_throw(xTables->getByName(tableName),tableName,xMeta,xQueryColumns,pKeyColumNames);
m_pKeyColumnNames->insert(pKeyColumNames->begin(),pKeyColumNames->end());
}
// the first row is empty because it's now easier for us to distinguish when we are beforefirst or first
// without extra variable to be set
- OKeySetValue keySetValue(nullptr,std::pair<sal_Int32,Reference<XRow> >(0,Reference<XRow>()));
+ OKeySetValue keySetValue{nullptr,0,nullptr};
m_aKeyMap.emplace(0,keySetValue);
m_aKeyIter = m_aKeyMap.begin();
@@ -188,7 +182,7 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _
OUStringBuffer& rPart = aSql[columnName.second.sTableName];
if ( !rPart.isEmpty() )
rPart.append(", ");
- rPart.append(sQuotedColumnName).append(" = ?");
+ rPart.append(sQuotedColumnName + " = ?");
}
}
@@ -208,10 +202,10 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
OUStringBuffer sSql("UPDATE " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) +
- " SET " + elem.second.toString());
+ " SET " + elem.second);
OUStringBuffer& rCondition = aKeyConditions[elem.first];
if ( !rCondition.isEmpty() )
- sSql.append(" WHERE ").append( rCondition.toString() );
+ sSql.append(" WHERE " + rCondition );
executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),elem.first);
}
@@ -266,14 +260,14 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity:
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable );
- OUString sSql("INSERT INTO " + sComposedTableName + " ( " + elem.second.toString() +
- ") VALUES ( " + aParameter[elem.first].toString() + " )");
+ OUString sSql("INSERT INTO " + sComposedTableName + " ( " + elem.second +
+ ") VALUES ( " + aParameter[elem.first] + " )");
OUStringBuffer& rCondition = aKeyConditions[elem.first];
if ( !rCondition.isEmpty() )
{
- OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName +
- " WHERE " + rCondition.toString());
+ OUString sQuery("SELECT " + elem.second + " FROM " + sComposedTableName +
+ " WHERE " + rCondition);
try
{
@@ -330,13 +324,13 @@ void OptimisticSet::deleteRow(const ORowSetRow& _rDeleteRow,const connectivity::
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(xMetaData,keyCondition.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
OUString sSql("DELETE FROM " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) +
- " WHERE " + rCondition.toString() );
+ " WHERE " + rCondition );
executeDelete(_rDeleteRow, sSql, keyCondition.first);
}
}
}
-void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString& i_sSQL,const OUString& i_sTableName)
+void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString& i_sSQL,std::u16string_view i_sTableName)
{
// now create and execute the prepared statement
Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(i_sSQL));
@@ -353,7 +347,9 @@ void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString&
if(m_bDeleted)
{
sal_Int32 nBookmark = ::comphelper::getINT32((*_rDeleteRow)[0].getAny());
- if(m_aKeyIter == m_aKeyMap.find(nBookmark) && m_aKeyIter != m_aKeyMap.end())
+ const auto iter = m_aKeyMap.find(nBookmark);
+ assert(iter != m_aKeyMap.end());
+ if(m_aKeyIter == iter && m_aKeyIter != m_aKeyMap.end())
++m_aKeyIter;
m_aKeyMap.erase(nBookmark);
m_bDeleted = true;
@@ -544,8 +540,8 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation);
OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable );
- OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName + " WHERE " +
- rCondition.makeStringAndClear());
+ OUString sQuery("SELECT " + elem.second + " FROM " + sComposedTableName + " WHERE " + rCondition);
+ rCondition.setLength(0);
try
{
diff --git a/dbaccess/source/core/api/OptimisticSet.hxx b/dbaccess/source/core/api/OptimisticSet.hxx
index d5c2c069579c..bf5e3a80370a 100644
--- a/dbaccess/source/core/api/OptimisticSet.hxx
+++ b/dbaccess/source/core/api/OptimisticSet.hxx
@@ -39,7 +39,7 @@ namespace dbaccess
mutable bool m_bResultSetChanged;
- void executeDelete(const ORowSetRow& _rDeleteRow,const OUString& i_sSQL,const OUString& i_sTableName);
+ void executeDelete(const ORowSetRow& _rDeleteRow,const OUString& i_sSQL,std::u16string_view i_sTableName);
void fillJoinedColumns_throw(const std::vector< ::connectivity::TNodePair>& i_aJoinColumns);
void fillJoinedColumns_throw(const OUString& i_sLeftColumn,const OUString& i_sRightColumn);
protected:
diff --git a/dbaccess/source/core/api/PrivateRow.cxx b/dbaccess/source/core/api/PrivateRow.cxx
index 22adc74f138a..7e2df82aaeed 100644
--- a/dbaccess/source/core/api/PrivateRow.cxx
+++ b/dbaccess/source/core/api/PrivateRow.cxx
@@ -21,12 +21,9 @@
using namespace dbaccess;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star;
@@ -37,62 +34,62 @@ sal_Bool SAL_CALL OPrivateRow::wasNull( )
OUString SAL_CALL OPrivateRow::getString( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getString();
}
sal_Bool SAL_CALL OPrivateRow::getBoolean( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return bool(m_aRow[m_nPos]);
+ return m_aRow[m_nPos].getBool();
}
::sal_Int8 SAL_CALL OPrivateRow::getByte( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getInt8();
}
::sal_Int16 SAL_CALL OPrivateRow::getShort( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getInt16();
}
::sal_Int32 SAL_CALL OPrivateRow::getInt( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getInt32();
}
::sal_Int64 SAL_CALL OPrivateRow::getLong( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getLong();
}
float SAL_CALL OPrivateRow::getFloat( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getFloat();
}
double SAL_CALL OPrivateRow::getDouble( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getDouble();
}
Sequence< ::sal_Int8 > SAL_CALL OPrivateRow::getBytes( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getSequence();
}
css::util::Date SAL_CALL OPrivateRow::getDate( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getDate();
}
css::util::Time SAL_CALL OPrivateRow::getTime( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getTime();
}
css::util::DateTime SAL_CALL OPrivateRow::getTimestamp( ::sal_Int32 columnIndex )
{
m_nPos = columnIndex;
- return m_aRow[m_nPos];
+ return m_aRow[m_nPos].getDateTime();
}
Reference< css::io::XInputStream > SAL_CALL OPrivateRow::getBinaryStream( ::sal_Int32 columnIndex )
{
diff --git a/dbaccess/source/core/api/PrivateRow.hxx b/dbaccess/source/core/api/PrivateRow.hxx
index a9bf9e70e0ea..c5ce74f15f43 100644
--- a/dbaccess/source/core/api/PrivateRow.hxx
+++ b/dbaccess/source/core/api/PrivateRow.hxx
@@ -29,7 +29,7 @@ namespace dbaccess
ORowSetValueVector::Vector m_aRow;
sal_Int32 m_nPos;
public:
- explicit OPrivateRow(const ORowSetValueVector::Vector& i_aRow) : m_aRow(i_aRow),m_nPos(0)
+ explicit OPrivateRow(ORowSetValueVector::Vector&& i_aRow) : m_aRow(std::move(i_aRow)),m_nPos(0)
{
}
virtual sal_Bool SAL_CALL wasNull( ) override;
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 62383ecd5479..4f1dd11fcf5b 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -31,11 +31,13 @@
#include "CRowSetDataColumn.hxx"
#include "RowSetCache.hxx"
#include <strings.hrc>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <tablecontainer.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/sdb/DatabaseContext.hpp>
#include <com/sun/star/sdb/ErrorCondition.hpp>
@@ -68,9 +70,8 @@
#include <i18nlangtag/languagetag.hxx>
#include <o3tl/safeint.hxx>
#include <unotools/syslocale.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
-using namespace utl;
using namespace dbaccess;
using namespace connectivity;
using namespace comphelper;
@@ -95,24 +96,6 @@ com_sun_star_comp_dba_ORowSet_get_implementation(css::uno::XComponentContext* co
return cppu::acquire(new ORowSet(context));
}
-#define NOTIFY_LISTENERS_CHECK(_rListeners,T,method) \
- std::vector< Reference< XInterface > > aListenerSeq = _rListeners.getElements(); \
- \
- _rGuard.clear(); \
- bool bCheck = std::all_of(aListenerSeq.rbegin(), aListenerSeq.rend(), \
- [&aEvt](Reference<XInterface>& rxItem) { \
- try \
- { \
- return static_cast<bool>(static_cast<T*>(rxItem.get())->method(aEvt)); \
- } \
- catch( RuntimeException& ) \
- { \
- return true; \
- } \
- }); \
- _rGuard.reset();
-
-
namespace dbaccess
{
ORowSet::ORowSet( const Reference< css::uno::XComponentContext >& _rxContext )
@@ -123,6 +106,7 @@ ORowSet::ORowSet( const Reference< css::uno::XComponentContext >& _rxContext )
,m_aRowsetListeners(*m_pMutex)
,m_aApproveListeners(*m_pMutex)
,m_aRowsChangeListener(*m_pMutex)
+ ,m_sErrorString(ResourceManager::loadString(RID_STR_COMMAND_LEADING_TO_ERROR))
,m_nFetchDirection(FetchDirection::FORWARD)
,m_nFetchSize(50)
,m_nMaxFieldSize(0)
@@ -274,7 +258,7 @@ void SAL_CALL ORowSet::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const
break;
case PROPERTY_ID_FETCHDIRECTION:
if( m_nResultSetType == ResultSetType::FORWARD_ONLY)
- throw Exception("resultsettype is FORWARD_ONLY", nullptr);
+ throw Exception(u"resultsettype is FORWARD_ONLY"_ustr, nullptr);
[[fallthrough]];
default:
OPropertyStateContainer::setFastPropertyValue_NoBroadcast(nHandle,rValue);
@@ -424,32 +408,16 @@ Any SAL_CALL ORowSet::queryInterface( const Type & rType )
return ORowSet_BASE1::queryInterface( rType);
}
-void SAL_CALL ORowSet::acquire() throw()
+void SAL_CALL ORowSet::acquire() noexcept
{
ORowSet_BASE1::acquire();
}
-void SAL_CALL ORowSet::release() throw()
+void SAL_CALL ORowSet::release() noexcept
{
ORowSet_BASE1::release();
}
-// css::XUnoTunnel
-sal_Int64 SAL_CALL ORowSet::getSomething( const Sequence< sal_Int8 >& rId )
-{
- if (isUnoTunnelId<ORowSet>(rId))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
-}
-
-Sequence< sal_Int8 > ORowSet::getUnoTunnelId()
-{
- static ::cppu::OImplementationId s_Id;
-
- return s_Id.getImplementationId();
-}
-
// css::XAggregation
Any SAL_CALL ORowSet::queryAggregation( const Type& rType )
{
@@ -462,7 +430,7 @@ Any SAL_CALL ORowSet::queryAggregation( const Type& rType )
// css::XServiceInfo
OUString SAL_CALL ORowSet::getImplementationName()
{
- return "com.sun.star.comp.dba.ORowSet";
+ return u"com.sun.star.comp.dba.ORowSet"_ustr;
}
sal_Bool SAL_CALL ORowSet::supportsService( const OUString& _rServiceName )
@@ -493,11 +461,7 @@ void SAL_CALL ORowSet::disposing()
// remove myself as dispose listener
Reference< XComponent > xComponent(m_xActiveConnection, UNO_QUERY);
if (xComponent.is())
- {
- Reference<XEventListener> xEvt;
- query_aggregation(this,xEvt);
- xComponent->removeEventListener(xEvt);
- }
+ xComponent->removeEventListener(query_aggregation<XEventListener>(this));
m_aActiveConnection = Any(); // the any contains a reference too
if(m_bOwnConnection)
@@ -515,7 +479,7 @@ void ORowSet::freeResources( bool _bComplete )
// free all clones
for (auto const& clone : m_aClones)
{
- Reference< XComponent > xComp(clone.get(), UNO_QUERY);
+ rtl::Reference< ORowSetClone > xComp(clone);
if (xComp.is())
xComp->dispose();
}
@@ -578,11 +542,7 @@ void ORowSet::setActiveConnection( Reference< XConnection > const & _rxNewConn,
// remove the event listener for the old connection
Reference< XComponent > xComponent(m_xActiveConnection, UNO_QUERY);
if (xComponent.is())
- {
- Reference<XEventListener> xListener;
- query_aggregation(this, xListener);
- xComponent->removeEventListener(xListener);
- }
+ xComponent->removeEventListener(query_aggregation<XEventListener>(this));
// if we owned the connection, remember it for later disposing
if(m_bOwnConnection)
@@ -607,11 +567,7 @@ void ORowSet::setActiveConnection( Reference< XConnection > const & _rxNewConn,
// register as event listener for the new connection
xComponent.set(m_xActiveConnection,UNO_QUERY);
if (xComponent.is())
- {
- Reference<XEventListener> xListener;
- query_aggregation(this, xListener);
- xComponent->addEventListener(xListener);
- }
+ xComponent->addEventListener(query_aggregation<XEventListener>(this));
}
// css::XEventListener
@@ -637,7 +593,7 @@ void SAL_CALL ORowSet::close( )
MutexGuard aGuard( m_aMutex );
::connectivity::checkDisposed(ORowSet_BASE1::rBHelper.bDisposed);
}
- // additionals things to set
+ // additional things to set
freeResources( true );
}
@@ -664,7 +620,7 @@ void ORowSet::updateValue(sal_Int32 columnIndex,const ORowSetValue& x)
checkUpdateIterator();
ORowSetValueVector::Vector& rRow = **m_aCurrentRow;
- ORowSetNotifier aNotify(this,rRow);
+ ORowSetNotifier aNotify(this, std::vector(rRow));
m_pCache->updateValue(columnIndex,x,rRow,aNotify.getChangedColumns());
m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
@@ -680,7 +636,7 @@ void SAL_CALL ORowSet::updateNull( sal_Int32 columnIndex )
checkUpdateIterator();
ORowSetValueVector::Vector& rRow = **m_aCurrentRow;
- ORowSetNotifier aNotify(this,rRow);
+ ORowSetNotifier aNotify(this, std::vector(rRow));
m_pCache->updateNull(columnIndex,rRow,aNotify.getChangedColumns());
m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
@@ -768,7 +724,7 @@ void SAL_CALL ORowSet::updateCharacterStream( sal_Int32 columnIndex, const Refer
checkUpdateConditions(columnIndex);
checkUpdateIterator();
ORowSetValueVector::Vector& rRow = **m_aCurrentRow;
- ORowSetNotifier aNotify(this,rRow);
+ ORowSetNotifier aNotify(this, std::vector(rRow));
m_pCache->updateCharacterStream(columnIndex,x,length,rRow,aNotify.getChangedColumns());
m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
@@ -812,7 +768,7 @@ void SAL_CALL ORowSet::updateObject( sal_Int32 columnIndex, const Any& x )
if (!::dbtools::implUpdateObject(this, columnIndex, aNewValue))
{ // there is no other updateXXX call which can handle the value in x
ORowSetValueVector::Vector& rRow = **m_aCurrentRow;
- ORowSetNotifier aNotify(this,rRow);
+ ORowSetNotifier aNotify(this, std::vector(rRow));
m_pCache->updateObject(columnIndex,aNewValue,rRow,aNotify.getChangedColumns());
m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
@@ -826,7 +782,7 @@ void SAL_CALL ORowSet::updateNumericObject( sal_Int32 columnIndex, const Any& x,
checkUpdateConditions(columnIndex);
checkUpdateIterator();
ORowSetValueVector::Vector& rRow = **m_aCurrentRow;
- ORowSetNotifier aNotify(this,rRow);
+ ORowSetNotifier aNotify(this, std::vector(rRow));
m_pCache->updateNumericObject(columnIndex,x,rRow,aNotify.getChangedColumns());
m_bModified = m_bModified || !aNotify.getChangedColumns().empty();
aNotify.firePropertyChange();
@@ -993,7 +949,7 @@ void SAL_CALL ORowSet::deleteRow( )
// this call position the cache indirect
Any aBookmarkToDelete( m_aBookmark );
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
sal_Int32 nDeletePosition = m_pCache->getRow();
notifyRowSetAndClonesRowDelete( aBookmarkToDelete );
@@ -1040,7 +996,7 @@ void ORowSet::implCancelRowUpdates( bool _bNotifyModified )
if ( m_bNew || m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
throwFunctionSequenceException(*this);
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
ORowSetRow aOldValues;
if ( !m_bModified && _bNotifyModified && !m_aCurrentRow.isNull() )
@@ -1112,13 +1068,40 @@ void ORowSet::notifyAllListenersRowChanged(::osl::ResettableMutexGuard& _rGuard,
bool ORowSet::notifyAllListenersCursorBeforeMove(::osl::ResettableMutexGuard& _rGuard)
{
EventObject aEvt(*m_pMySelf);
- NOTIFY_LISTENERS_CHECK(m_aApproveListeners,XRowSetApproveListener,approveCursorMove);
+ std::vector< Reference< css::sdb::XRowSetApproveListener > > aListenerSeq = m_aApproveListeners.getElements();
+ _rGuard.clear();
+ bool bCheck = std::all_of(aListenerSeq.rbegin(), aListenerSeq.rend(),
+ [&aEvt](Reference<css::sdb::XRowSetApproveListener>& rxItem) {
+ try
+ {
+ return static_cast<bool>(rxItem->approveCursorMove(aEvt));
+ }
+ catch( RuntimeException& )
+ {
+ return true;
+ }
+ });
+ _rGuard.reset();
return bCheck;
}
void ORowSet::notifyAllListenersRowBeforeChange(::osl::ResettableMutexGuard& _rGuard,const RowChangeEvent &aEvt)
{
- NOTIFY_LISTENERS_CHECK(m_aApproveListeners,XRowSetApproveListener,approveRowChange);
+ std::vector< Reference< css::sdb::XRowSetApproveListener > > aListenerSeq = m_aApproveListeners.getElements();
+ _rGuard.clear();
+ bool bCheck = std::all_of(aListenerSeq.rbegin(), aListenerSeq.rend(),
+ [&aEvt](Reference<css::sdb::XRowSetApproveListener>& rxItem) {
+ try
+ {
+ return static_cast<bool>(rxItem->approveRowChange(aEvt));
+ }
+ catch( RuntimeException& )
+ {
+ return true;
+ }
+ });
+ _rGuard.reset();
+
if ( !bCheck )
m_aErrors.raiseTypedException( sdb::ErrorCondition::ROW_SET_OPERATION_VETOED, *this, ::cppu::UnoType< RowSetVetoException >::get() );
}
@@ -1163,12 +1146,12 @@ void SAL_CALL ORowSet::moveToInsertRow( )
ORowSetRow aOldValues;
if ( rowDeleted() )
{
- positionCache( MOVE_FORWARD );
+ positionCache( CursorMoveDirection::Forward );
m_pCache->next();
setCurrentRow( true, false, aOldValues, aGuard);
}
else
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
// check before because the resultset could be empty
if ( !m_bBeforeFirst
@@ -1218,18 +1201,18 @@ void ORowSet::impl_setDataColumnsWriteable_throw()
dataColumn->getPropertyValue(PROPERTY_ISREADONLY) >>= bReadOnly;
*aReadIter = bReadOnly;
- dataColumn->setPropertyValue(PROPERTY_ISREADONLY,makeAny(false));
+ dataColumn->setPropertyValue(PROPERTY_ISREADONLY,Any(false));
++aReadIter;
}
}
void ORowSet::impl_restoreDataColumnsWriteable_throw()
{
- assert(m_aDataColumns.size() == m_aReadOnlyDataColumns.size() || m_aReadOnlyDataColumns.size() == 0 );
+ assert(m_aDataColumns.size() == m_aReadOnlyDataColumns.size() || m_aReadOnlyDataColumns.empty());
TDataColumns::const_iterator aIter = m_aDataColumns.begin();
for (bool readOnlyDataColumn : m_aReadOnlyDataColumns)
{
- (*aIter)->setPropertyValue(PROPERTY_ISREADONLY, makeAny(readOnlyDataColumn) );
+ (*aIter)->setPropertyValue(PROPERTY_ISREADONLY, Any(readOnlyDataColumn) );
++aIter;
}
m_aReadOnlyDataColumns.clear();
@@ -1257,7 +1240,7 @@ void SAL_CALL ORowSet::moveToCurrentRow( )
if ( !notifyAllListenersCursorBeforeMove( aGuard ) )
return;
- positionCache( MOVE_NONE_REFRESH );
+ positionCache( CursorMoveDirection::CurrentRefresh );
ORowSetNotifier aNotifier( this );
@@ -1294,74 +1277,73 @@ const ORowSetValue& ORowSet::getInsertValue(sal_Int32 columnIndex)
OUString SAL_CALL ORowSet::getString( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getString();
}
sal_Bool SAL_CALL ORowSet::getBoolean( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- // the extra cast is to recognise the "true" or "false" strings
- return static_cast<bool>(getInsertValue(columnIndex));
+ return getInsertValue(columnIndex).getBool();
}
sal_Int8 SAL_CALL ORowSet::getByte( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getInt8();
}
sal_Int16 SAL_CALL ORowSet::getShort( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getInt16();
}
sal_Int32 SAL_CALL ORowSet::getInt( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getInt32();
}
sal_Int64 SAL_CALL ORowSet::getLong( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getLong();
}
float SAL_CALL ORowSet::getFloat( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getFloat();
}
double SAL_CALL ORowSet::getDouble( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getDouble();
}
Sequence< sal_Int8 > SAL_CALL ORowSet::getBytes( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getSequence();
}
css::util::Date SAL_CALL ORowSet::getDate( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getDate();
}
css::util::Time SAL_CALL ORowSet::getTime( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getTime();
}
css::util::DateTime SAL_CALL ORowSet::getTimestamp( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getInsertValue(columnIndex);
+ return getInsertValue(columnIndex).getDateTime();
}
Reference< css::io::XInputStream > SAL_CALL ORowSet::getBinaryStream( sal_Int32 columnIndex )
@@ -1504,7 +1486,7 @@ Reference< XIndexAccess > SAL_CALL ORowSet::getParameters( )
// our caller could change our parameters at any time
m_bParametersDirty = true;
- return m_pParameters.get();
+ return m_pParameters;
}
void ORowSet::approveExecution()
@@ -1512,13 +1494,13 @@ void ORowSet::approveExecution()
::osl::MutexGuard aGuard( m_aColumnsMutex );
EventObject aEvt(*this);
- OInterfaceIteratorHelper2 aApproveIter( m_aApproveListeners );
+ OInterfaceIteratorHelper3 aApproveIter( m_aApproveListeners );
while ( aApproveIter.hasMoreElements() )
{
- Reference< XRowSetApproveListener > xListener( static_cast< XRowSetApproveListener* >( aApproveIter.next() ) );
+ Reference< XRowSetApproveListener > xListener( aApproveIter.next() );
try
{
- if ( xListener.is() && !xListener->approveRowSetChange( aEvt ) )
+ if ( !xListener->approveRowSetChange( aEvt ) )
throw RowSetVetoException();
}
catch ( const DisposedException& e )
@@ -1571,7 +1553,7 @@ void ORowSet::setStatementResultSetType( const Reference< XPropertySet >& _rxSta
// #i15113#
bool bRespectDriverRST = false;
Any aSetting;
- if ( getDataSourceSetting( ::dbaccess::getDataSource( m_xActiveConnection ), "RespectDriverResultSetType", aSetting ) )
+ if (getDataSourceSetting(::dbaccess::getDataSource(m_xActiveConnection), u"RespectDriverResultSetType"_ustr, aSetting))
{
OSL_VERIFY( aSetting >>= bRespectDriverRST );
}
@@ -1609,8 +1591,8 @@ void ORowSet::setStatementResultSetType( const Reference< XPropertySet >& _rxSta
}
}
- _rxStatement->setPropertyValue( PROPERTY_RESULTSETTYPE, makeAny( nResultSetType ) );
- _rxStatement->setPropertyValue( PROPERTY_RESULTSETCONCURRENCY, makeAny( nResultSetConcurrency ) );
+ _rxStatement->setPropertyValue( PROPERTY_RESULTSETTYPE, Any( nResultSetType ) );
+ _rxStatement->setPropertyValue( PROPERTY_RESULTSETCONCURRENCY, Any( nResultSetConcurrency ) );
}
void ORowSet::impl_ensureStatement_throw()
@@ -1637,8 +1619,8 @@ void ORowSet::impl_ensureStatement_throw()
// set the result set type and concurrency
try
{
- xStatementProps->setPropertyValue( PROPERTY_USEBOOKMARKS, makeAny( true ) );
- xStatementProps->setPropertyValue( PROPERTY_MAXROWS, makeAny( m_nMaxRows ) );
+ xStatementProps->setPropertyValue( PROPERTY_USEBOOKMARKS, Any( true ) );
+ xStatementProps->setPropertyValue( PROPERTY_MAXROWS, Any( m_nMaxRows ) );
setStatementResultSetType( xStatementProps, m_nResultSetType, m_nResultSetConcurrency );
}
@@ -1648,21 +1630,17 @@ void ORowSet::impl_ensureStatement_throw()
// then the driver doesn't support this feature
}
}
- catch( const SQLException& )
+ catch (SQLException& rException)
{
- SQLExceptionInfo aError( ::cppu::getCaughtException() );
- OSL_ENSURE( aError.isValid(), "ORowSet::impl_makeNewStatement_throw: caught an SQLException which we cannot analyze!" );
+ css::sdbc::SQLException* pLastExceptionInChain = SQLExceptionInfo::getLastException(&rException);
+ assert(pLastExceptionInChain && "will at least be &rException");
// append information about what we were actually going to execute
- try
- {
- OUString sInfo(DBA_RES_PARAM( RID_STR_COMMAND_LEADING_TO_ERROR, "$command$", sCommandToExecute ) );
- aError.append( SQLExceptionInfo::TYPE::SQLContext, sInfo );
- }
- catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION("dbaccess"); }
+ OUString sInfo(m_sErrorString.replaceFirst("$command$", sCommandToExecute));
+ pLastExceptionInChain->NextException = SQLExceptionInfo::createException(SQLExceptionInfo::TYPE::SQLContext, sInfo, OUString(), 0);
// propagate
- aError.doThrow();
+ throw;
}
}
@@ -1716,8 +1694,8 @@ void ORowSet::impl_initializeColumnSettings_nothrow( const Reference< XPropertyS
// a number of properties is plain copied
const OUString aPropertyNames[] = {
- OUString(PROPERTY_ALIGN), OUString(PROPERTY_RELATIVEPOSITION), OUString(PROPERTY_WIDTH), OUString(PROPERTY_HIDDEN), OUString(PROPERTY_CONTROLMODEL),
- OUString(PROPERTY_HELPTEXT), OUString(PROPERTY_CONTROLDEFAULT)
+ PROPERTY_ALIGN, PROPERTY_RELATIVEPOSITION, PROPERTY_WIDTH, PROPERTY_HIDDEN, PROPERTY_CONTROLMODEL,
+ PROPERTY_HELPTEXT, PROPERTY_CONTROLDEFAULT
};
for (const auto & aPropertyName : aPropertyNames)
{
@@ -1737,7 +1715,7 @@ void ORowSet::impl_initializeColumnSettings_nothrow( const Reference< XPropertyS
}
if ( !nFormatKey && m_xNumberFormatTypes.is() )
nFormatKey = ::dbtools::getDefaultNumberFormat( _rxTemplateColumn, m_xNumberFormatTypes, SvtSysLocale().GetLanguageTag().getLocale() );
- _rxRowSetColumn->setPropertyValue( PROPERTY_NUMBERFORMAT, makeAny( nFormatKey ) );
+ _rxRowSetColumn->setPropertyValue( PROPERTY_NUMBERFORMAT, Any( nFormatKey ) );
}
catch(Exception&)
{
@@ -1843,17 +1821,17 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
// retrieve the name of the column
OUString sName = xMetaData->getColumnName(i + 1);
// check for duplicate entries
- if(aColumnMap.find(sName) != aColumnMap.end())
+ if(aColumnMap.contains(sName))
{
OUString sAlias(sName);
sal_Int32 searchIndex=1;
- while(aColumnMap.find(sAlias) != aColumnMap.end())
+ while(aColumnMap.contains(sAlias))
{
sAlias = sName + OUString::number(searchIndex++);
}
sName = sAlias;
}
- ORowSetDataColumn* pColumn = new ORowSetDataColumn( getMetaData(),
+ rtl::Reference<ORowSetDataColumn> pColumn = new ORowSetDataColumn( getMetaData(),
this,
this,
i+1,
@@ -1867,9 +1845,9 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
aColumns->emplace_back(pColumn);
pColumn->setName(sName);
aNames.push_back(sName);
- m_aDataColumns.push_back(pColumn);
+ m_aDataColumns.push_back(pColumn.get());
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ISREADONLY,makeAny(rKeyColumns.find(i+1) != rKeyColumns.end()));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ISREADONLY,Any(rKeyColumns.find(i+1) != rKeyColumns.end()));
try
{
@@ -1878,10 +1856,10 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
nFormatKey = ::dbtools::getDefaultNumberFormat(pColumn,m_xNumberFormatTypes,aLocale);
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_NUMBERFORMAT,makeAny(nFormatKey));
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_RELATIVEPOSITION,makeAny(sal_Int32(i+1)));
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_WIDTH,makeAny(sal_Int32(227)));
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ALIGN,makeAny(sal_Int32(0)));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_NUMBERFORMAT,Any(nFormatKey));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_RELATIVEPOSITION,Any(sal_Int32(i+1)));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_WIDTH,Any(sal_Int32(227)));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ALIGN,Any(sal_Int32(0)));
pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_HIDDEN, css::uno::Any(false));
}
catch(Exception&)
@@ -1937,7 +1915,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
Sequence< OUString> aSeq = m_xColumns->getElementNames();
if( i <= aSeq.getLength())
{
- m_xColumns->getByName(aSeq.getConstArray()[i-1]) >>= xColumn;
+ m_xColumns->getByName(aSeq[i-1]) >>= xColumn;
}
}
}
@@ -1957,7 +1935,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
{
xColumn->getPropertyValue(PROPERTY_LABEL) >>= sParseLabel;
}
- ORowSetDataColumn* pColumn = new ORowSetDataColumn( getMetaData(),
+ rtl::Reference<ORowSetDataColumn> pColumn = new ORowSetDataColumn( getMetaData(),
this,
this,
i,
@@ -1969,7 +1947,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
});
aColumns->emplace_back(pColumn);
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ISREADONLY,makeAny(rKeyColumns.find(i) != rKeyColumns.end()));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ISREADONLY,Any(rKeyColumns.find(i) != rKeyColumns.end()));
if(sColumnLabel.isEmpty())
{
@@ -1980,7 +1958,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
}
pColumn->setName(sColumnLabel);
aNames.push_back(sColumnLabel);
- m_aDataColumns.push_back(pColumn);
+ m_aDataColumns.push_back(pColumn.get());
if ( xColumn.is() )
impl_initializeColumnSettings_nothrow( xColumn, pColumn );
@@ -2066,10 +2044,9 @@ Reference< XResultSet > SAL_CALL ORowSet::createResultSet( )
if(m_xStatement.is())
{
- ORowSetClone* pClone = new ORowSetClone( m_aContext, *this, m_pMutex );
- Reference< XResultSet > xRet(pClone);
- m_aClones.emplace_back(xRet);
- return xRet;
+ rtl::Reference<ORowSetClone> pClone = new ORowSetClone( m_aContext, *this, m_pMutex );
+ m_aClones.emplace_back(pClone);
+ return pClone;
}
return Reference< XResultSet >();
}
@@ -2096,25 +2073,23 @@ Sequence< sal_Int32 > SAL_CALL ORowSet::deleteRows( const Sequence< Any >& rows
notifyAllListenersRowBeforeChange(aGuard,aEvt);
Sequence< sal_Int32 > aResults( rows.getLength() );
- const Any* row = rows.getConstArray();
- const Any* rowEnd = rows.getConstArray() + rows.getLength();
sal_Int32* result = aResults.getArray();
- for ( ; row != rowEnd; ++row, ++result )
+ for (sal_Int32 i = 0; i < rows.getLength(); ++i)
{
- *result = 0;
- if ( !m_pCache->moveToBookmark( *row ) )
+ result[i] = 0;
+ if (!m_pCache->moveToBookmark(rows[i]))
continue;
sal_Int32 nDeletePosition = m_pCache->getRow();
// first notify the clones so that they can save their position
- notifyRowSetAndClonesRowDelete( *row );
+ notifyRowSetAndClonesRowDelete(rows[i]);
// now delete the row
if ( !m_pCache->deleteRow() )
continue;
- *result = 1;
+ result[i] = 1;
// now notify that we have deleted
- notifyRowSetAndClonesRowDeleted( *row, nDeletePosition );
+ notifyRowSetAndClonesRowDeleted(rows[i], nDeletePosition);
}
aEvt.Rows = aResults.getLength();
@@ -2142,7 +2117,7 @@ void ORowSet::notifyRowSetAndClonesRowDelete( const Any& _rBookmark )
// notify the clones
for (auto const& elem : m_aClones)
{
- auto pClone = comphelper::getUnoTunnelImplementation<ORowSetClone>(elem.get());
+ rtl::Reference<ORowSetClone> pClone = elem.get();
if(pClone)
pClone->onDeleteRow( _rBookmark );
}
@@ -2155,7 +2130,7 @@ void ORowSet::notifyRowSetAndClonesRowDeleted( const Any& _rBookmark, sal_Int32
// notify the clones
for (auto const& clone : m_aClones)
{
- auto pClone = comphelper::getUnoTunnelImplementation<ORowSetClone>(clone.get());
+ rtl::Reference<ORowSetClone> pClone = clone.get();
if(pClone)
pClone->onDeletedRow( _rBookmark, _nPos );
}
@@ -2193,7 +2168,7 @@ Reference< XConnection > ORowSet::calcConnection(const Reference< XInteractionH
{
Any aError = ::cppu::getCaughtException();
OUString sMessage = ResourceManager::loadString( RID_NO_SUCH_DATA_SOURCE,
- "$name$", m_aDataSourceName, "$error$", extractExceptionMessage( m_aContext, aError ) );
+ u"$name$", m_aDataSourceName, u"$error$", extractExceptionMessage( m_aContext, aError ) );
::dbtools::throwGenericSQLException( sMessage, *this, aError );
}
}
@@ -2232,9 +2207,9 @@ Reference< XNameAccess > ORowSet::impl_getTables_throw()
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_xTables = new OTableContainer(*this,m_aMutex,m_xActiveConnection,bCase,nullptr,nullptr,m_nInAppend);
+ m_xTables.reset(new OTableContainer(*this,m_aMutex,m_xActiveConnection,bCase,nullptr,nullptr,m_nInAppend));
xTables = m_xTables.get();
- Sequence<OUString> aTableFilter { "%" };
+ Sequence<OUString> aTableFilter { u"%"_ustr };
m_xTables->construct(aTableFilter,Sequence< OUString>());
}
@@ -2255,7 +2230,7 @@ void ORowSet::impl_resetTables_nothrow()
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_xTables.clear();
+ m_xTables.reset();
}
void ORowSet::impl_initComposer_throw( OUString& _out_rCommandToExecute )
@@ -2291,7 +2266,7 @@ void ORowSet::impl_initComposer_throw( OUString& _out_rCommandToExecute )
// don't simply overwrite an existent filter, this would lead to problems if this existent
// filter contains parameters (since a keyset may add parameters itself)
m_xComposer->setElementaryQuery( m_xComposer->getQuery( ) );
- m_xComposer->setFilter( "0 = 1" );
+ m_xComposer->setFilter( u"0 = 1"_ustr );
}
m_xComposer->setOrder( m_aOrder );
@@ -2404,7 +2379,7 @@ void ORowSet::impl_initParametersContainer_nothrow()
{
OSL_PRECOND( !m_pParameters.is(), "ORowSet::impl_initParametersContainer_nothrow: already initialized the parameters!" );
- m_pParameters = new param::ParameterWrapperContainer( m_xComposer.get() );
+ m_pParameters = new param::ParameterWrapperContainer( m_xComposer );
// copy the premature parameters into the final ones
size_t nParamCount( std::min( m_pParameters->size(), m_aPrematureParamValues->size() ) );
for ( size_t i=0; i<nParamCount; ++i )
@@ -2557,7 +2532,7 @@ void SAL_CALL ORowSet::setBinaryStream( sal_Int32 parameterIndex, const Referenc
catch( Exception const & )
{
css::uno::Any anyEx = cppu::getCaughtException();
- throw SQLException("ORowSet::setBinaryStream", *this, "S1000", 0,anyEx);
+ throw SQLException(u"ORowSet::setBinaryStream"_ustr, *this, u"S1000"_ustr, 0,anyEx);
}
}
@@ -2581,7 +2556,7 @@ void SAL_CALL ORowSet::setCharacterStream( sal_Int32 parameterIndex, const Refer
catch( Exception const & )
{
css::uno::Any anyEx = cppu::getCaughtException();
- throw SQLException("ORowSet::setCharacterStream", *this, "S1000", 0, anyEx);
+ throw SQLException(u"ORowSet::setCharacterStream"_ustr, *this, u"S1000"_ustr, 0, anyEx);
}
}
@@ -2604,22 +2579,22 @@ void SAL_CALL ORowSet::setObjectWithInfo( sal_Int32 parameterIndex, const Any& x
void SAL_CALL ORowSet::setRef( sal_Int32 /*parameterIndex*/, const Reference< XRef >& /*x*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XParameters::setRef", *this );
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XParameters::setRef"_ustr, *this );
}
void SAL_CALL ORowSet::setBlob( sal_Int32 /*parameterIndex*/, const Reference< XBlob >& /*x*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XParameters::setBlob", *this );
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XParameters::setBlob"_ustr, *this );
}
void SAL_CALL ORowSet::setClob( sal_Int32 /*parameterIndex*/, const Reference< XClob >& /*x*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XParameters::setClob", *this );
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XParameters::setClob"_ustr, *this );
}
void SAL_CALL ORowSet::setArray( sal_Int32 /*parameterIndex*/, const Reference< XArray >& /*x*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XParameters::setArray", *this );
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XParameters::setArray"_ustr, *this );
}
void SAL_CALL ORowSet::clearParameters( )
@@ -2698,7 +2673,7 @@ void ORowSet::checkUpdateConditions(sal_Int32 columnIndex)
if ( m_aCurrentRow.isNull() )
::dbtools::throwSQLException( DBA_RES( RID_STR_INVALID_CURSOR_STATE ), StandardSQLState::INVALID_CURSOR_STATE, *this );
- if ( columnIndex <= 0 || sal_Int32((*m_aCurrentRow)->size()) <= columnIndex )
+ if ( columnIndex <= 0 || (*m_aCurrentRow)->size() <= o3tl::make_unsigned(columnIndex) )
::dbtools::throwSQLException( DBA_RES( RID_STR_INVALID_INDEX ), StandardSQLState::INVALID_DESCRIPTOR_INDEX, *this );
}
@@ -2733,9 +2708,9 @@ void ORowSet::impl_rebuild_throw(::osl::ResettableMutexGuard& _rGuard)
// ***********************************************************
ORowSetClone::ORowSetClone( const Reference<XComponentContext>& _rContext, ORowSet& rParent, ::osl::Mutex* _pMutex )
- :OSubComponent(m_aMutex, rParent)
- ,ORowSetBase( _rContext, OComponentHelper::rBHelper, _pMutex )
- ,m_pParent(&rParent)
+ : ::cppu::WeakComponentImplHelper<>(m_aMutex)
+ ,ORowSetBase( _rContext, WeakComponentImplHelper::rBHelper, _pMutex )
+ ,m_xParent(&rParent)
,m_nFetchDirection(rParent.m_nFetchDirection)
,m_nFetchSize(rParent.m_nFetchSize)
,m_bIsBookmarkable(true)
@@ -2763,19 +2738,19 @@ ORowSetClone::ORowSetClone( const Reference<XComponentContext>& _rContext, ORowS
if ( rParent.m_pColumns )
{
Sequence< OUString> aSeq = rParent.m_pColumns->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
aColumns->reserve(aSeq.getLength()+1);
- for(sal_Int32 i=1;pIter != pEnd ;++pIter,++i)
+ sal_Int32 i = 0;
+ for (auto& columnName : aSeq)
{
+ ++i;
Reference<XPropertySet> xColumn;
- rParent.m_pColumns->getByName(*pIter) >>= xColumn;
+ rParent.m_pColumns->getByName(columnName) >>= xColumn;
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_DESCRIPTION))
aDescription = comphelper::getString(xColumn->getPropertyValue(PROPERTY_DESCRIPTION));
OUString sParseLabel;
xColumn->getPropertyValue(PROPERTY_LABEL) >>= sParseLabel;
- ORowSetColumn* pColumn = new ORowSetColumn( rParent.getMetaData(),
+ rtl::Reference<ORowSetColumn> pColumn = new ORowSetColumn( rParent.getMetaData(),
this,
i,
rParent.m_xActiveConnection->getMetaData(),
@@ -2785,16 +2760,16 @@ ORowSetClone::ORowSetClone( const Reference<XComponentContext>& _rContext, ORowS
return this->getValue(column);
});
aColumns->emplace_back(pColumn);
- pColumn->setName(*pIter);
- aNames.push_back(*pIter);
- m_aDataColumns.push_back(pColumn);
+ pColumn->setName(columnName);
+ aNames.push_back(columnName);
+ m_aDataColumns.push_back(pColumn.get());
pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_ALIGN,xColumn->getPropertyValue(PROPERTY_ALIGN));
sal_Int32 nFormatKey = 0;
xColumn->getPropertyValue(PROPERTY_NUMBERFORMAT) >>= nFormatKey;
if(!nFormatKey && xColumn.is() && m_xNumberFormatTypes.is())
nFormatKey = ::dbtools::getDefaultNumberFormat(xColumn,m_xNumberFormatTypes,aLocale);
- pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_NUMBERFORMAT,makeAny(nFormatKey));
+ pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_NUMBERFORMAT,Any(nFormatKey));
pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_RELATIVEPOSITION,xColumn->getPropertyValue(PROPERTY_RELATIVEPOSITION));
pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_WIDTH,xColumn->getPropertyValue(PROPERTY_WIDTH));
pColumn->setFastPropertyValue_NoBroadcast(PROPERTY_ID_HIDDEN,xColumn->getPropertyValue(PROPERTY_HIDDEN));
@@ -2826,7 +2801,7 @@ ORowSetClone::~ORowSetClone()
// css::XTypeProvider
Sequence< Type > ORowSetClone::getTypes()
{
- return ::comphelper::concatSequences(OSubComponent::getTypes(),ORowSetBase::getTypes());
+ return ::comphelper::concatSequences(::cppu::WeakComponentImplHelper<>::getTypes(),ORowSetBase::getTypes());
}
// css::XInterface
@@ -2834,24 +2809,24 @@ Any ORowSetClone::queryInterface( const Type & rType )
{
Any aRet = ORowSetBase::queryInterface(rType);
if(!aRet.hasValue())
- aRet = OSubComponent::queryInterface(rType);
+ aRet = ::cppu::WeakComponentImplHelper<>::queryInterface(rType);
return aRet;
}
-void ORowSetClone::acquire() throw()
+void ORowSetClone::acquire() noexcept
{
- OSubComponent::acquire();
+ ::cppu::WeakComponentImplHelper<>::acquire();
}
-void ORowSetClone::release() throw()
+void ORowSetClone::release() noexcept
{
- OSubComponent::release();
+ ::cppu::WeakComponentImplHelper<>::release();
}
// XServiceInfo
OUString ORowSetClone::getImplementationName( )
{
- return "com.sun.star.sdb.ORowSetClone";
+ return u"com.sun.star.sdb.ORowSetClone"_ustr;
}
sal_Bool ORowSetClone::supportsService( const OUString& _rServiceName )
@@ -2870,9 +2845,9 @@ void ORowSetClone::disposing()
MutexGuard aGuard( m_aMutex );
ORowSetBase::disposing();
- m_pParent = nullptr;
+ m_xParent = nullptr;
m_pMutex = &m_aMutex; // this must be done here because someone could hold a ref to us and try to do something
- OSubComponent::disposing();
+ ::cppu::WeakComponentImplHelper<>::disposing();
}
// XCloseable
@@ -2880,8 +2855,8 @@ void ORowSetClone::close()
{
{
MutexGuard aGuard( m_aMutex );
- if (OComponentHelper::rBHelper.bDisposed)
- throw DisposedException();
+ if (WeakComponentImplHelper::rBHelper.bDisposed)
+ return;
}
dispose();
}
@@ -2900,28 +2875,12 @@ void ORowSetClone::close()
return *::comphelper::OPropertyArrayUsageHelper<ORowSetClone>::getArrayHelper();
}
-Sequence< sal_Int8 > ORowSetClone::getUnoTunnelId()
-{
- static ::cppu::OImplementationId implId;
-
- return implId.getImplementationId();
-}
-
-// css::XUnoTunnel
-sal_Int64 SAL_CALL ORowSetClone::getSomething( const Sequence< sal_Int8 >& rId )
-{
- if (isUnoTunnelId<ORowSetClone>(rId))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
-}
-
void SAL_CALL ORowSetClone::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue)
{
if ( nHandle == PROPERTY_ID_FETCHSIZE )
{
- if ( m_pParent )
- m_pParent->setFastPropertyValue_NoBroadcast( nHandle, rValue );
+ if ( auto xParent = m_xParent.get() )
+ xParent->setFastPropertyValue_NoBroadcast( nHandle, rValue );
}
OPropertyStateContainer::setFastPropertyValue_NoBroadcast(nHandle,rValue);
@@ -2948,17 +2907,17 @@ bool ORowSetClone::isNew( )
void SAL_CALL ORowSetClone::execute( )
{
- throwFunctionNotSupportedSQLException( "RowSetClone::XRowSet::execute", *this );
+ throwFunctionNotSupportedSQLException( u"RowSetClone::XRowSet::execute"_ustr, *this );
}
void SAL_CALL ORowSetClone::addRowSetListener( const Reference< XRowSetListener >& )
{
- throwFunctionNotSupportedRuntimeException( "RowSetClone::XRowSet", *this );
+ throwFunctionNotSupportedRuntimeException( u"RowSetClone::XRowSet"_ustr, *this );
}
void SAL_CALL ORowSetClone::removeRowSetListener( const Reference< XRowSetListener >& )
{
- throwFunctionNotSupportedRuntimeException( "RowSetClone::XRowSet", *this );
+ throwFunctionNotSupportedRuntimeException( u"RowSetClone::XRowSet"_ustr, *this );
}
} // dbaccess
diff --git a/dbaccess/source/core/api/RowSet.hxx b/dbaccess/source/core/api/RowSet.hxx
index d72fa884766a..6ca1d47578dc 100644
--- a/dbaccess/source/core/api/RowSet.hxx
+++ b/dbaccess/source/core/api/RowSet.hxx
@@ -44,13 +44,16 @@
#include <cppuhelper/compbase12.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <connectivity/paramwrapper.hxx>
#include <connectivity/FValue.hxx>
#include <connectivity/warningscontainer.hxx>
+#include <unotools/weakref.hxx>
namespace dbaccess
{
+ class ORowSetClone;
+
typedef ::cppu::WeakAggComponentImplHelper12 < css::sdb::XResultSetAccess
, css::sdb::XRowSetApproveBroadcaster
, css::sdb::XRowsChangeBroadcaster
@@ -82,7 +85,7 @@ namespace dbaccess
css::uno::Reference< css::sdb::XSingleSelectQueryComposer > m_xComposer;
css::uno::Reference< css::container::XNameAccess > m_xColumns; // the columns from a table or query
- connectivity::OWeakRefArray m_aClones;
+ std::vector<unotools::WeakReference<ORowSetClone>> m_aClones;
/** our parameters as XPropertySet instances and ORowSetValue instances
*/
::dbtools::param::ParametersContainerRef m_pParameters;
@@ -94,13 +97,14 @@ namespace dbaccess
std::vector<bool> m_aParametersSet;
std::vector<bool> m_aReadOnlyDataColumns;
- ::comphelper::OInterfaceContainerHelper2 m_aRowsetListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aApproveListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aRowsChangeListener;
+ ::comphelper::OInterfaceContainerHelper3<css::sdbc::XRowSetListener> m_aRowsetListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::sdb::XRowSetApproveListener> m_aApproveListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::sdb::XRowsChangeListener> m_aRowsChangeListener;
::dbtools::WarningsContainer m_aWarnings;
- rtl::Reference<OTableContainer> m_xTables;
+ // no Reference! see OCollection::acquire
+ std::unique_ptr<OTableContainer> m_xTables;
OUString m_aCommand;
OUString m_aDataSourceName;
@@ -115,6 +119,7 @@ namespace dbaccess
OUString m_aUpdateCatalogName; // is set by a query
OUString m_aUpdateSchemaName; // is set by a query
OUString m_aUpdateTableName; // is set by a query
+ OUString m_sErrorString;
sal_Int32 m_nFetchDirection;
sal_Int32 m_nFetchSize;
@@ -250,12 +255,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
-
- // css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::uno::XAggregation
virtual css::uno::Any SAL_CALL queryAggregation( const css::uno::Type& aType ) override;
@@ -447,11 +448,11 @@ namespace dbaccess
// ORowSetClone
class ORowSetClone : public cppu::BaseMutex
- ,public OSubComponent
+ ,public ::cppu::WeakComponentImplHelper<>
,public ORowSetBase
,public ::comphelper::OPropertyArrayUsageHelper < ORowSetClone >
{
- ORowSet* m_pParent;
+ unotools::WeakReference<ORowSet> m_xParent;
sal_Int32 m_nFetchDirection;
sal_Int32 m_nFetchSize;
bool m_bIsBookmarkable;
@@ -477,18 +478,14 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
- // css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
-
// OComponentHelper
virtual void SAL_CALL disposing() override;
diff --git a/dbaccess/source/core/api/RowSetBase.cxx b/dbaccess/source/core/api/RowSetBase.cxx
index bc4b81b7a46d..2b49e8f1650d 100644
--- a/dbaccess/source/core/api/RowSetBase.cxx
+++ b/dbaccess/source/core/api/RowSetBase.cxx
@@ -34,7 +34,7 @@
#include <comphelper/seqstream.hxx>
#include <connectivity/dbexception.hxx>
#include <o3tl/safeint.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
using namespace dbaccess;
using namespace connectivity;
@@ -60,7 +60,7 @@ class OEmptyCollection : public sdbcx::OCollection
{
protected:
virtual void impl_refresh() override;
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
public:
OEmptyCollection(::cppu::OWeakObject& _rParent,::osl::Mutex& _rMutex) : OCollection(_rParent, true, _rMutex, std::vector< OUString>()){}
};
@@ -69,9 +69,9 @@ void OEmptyCollection::impl_refresh()
{
}
-connectivity::sdbcx::ObjectType OEmptyCollection::createObject(const OUString& /*_rName*/)
+css::uno::Reference< css::beans::XPropertySet > OEmptyCollection::createObject(const OUString& /*_rName*/)
{
- return connectivity::sdbcx::ObjectType();
+ return css::uno::Reference< css::beans::XPropertySet >();
}
// ORowSetBase
@@ -94,7 +94,7 @@ ORowSetBase::ORowSetBase( const Reference<XComponentContext>& _rContext, ::cppu:
{
sal_Int32 nRBT = PropertyAttribute::READONLY | PropertyAttribute::BOUND | PropertyAttribute::TRANSIENT;
- registerPropertyNoMember( PROPERTY_ROWCOUNT, PROPERTY_ID_ROWCOUNT, nRBT, cppu::UnoType<sal_Int32>::get(), css::uno::makeAny<sal_Int32>(0) );
+ registerPropertyNoMember( PROPERTY_ROWCOUNT, PROPERTY_ID_ROWCOUNT, nRBT, cppu::UnoType<sal_Int32>::get(), css::uno::Any(sal_Int32(0)) );
registerPropertyNoMember( PROPERTY_ISROWCOUNTFINAL, PROPERTY_ID_ISROWCOUNTFINAL, nRBT, cppu::UnoType<bool>::get(), css::uno::Any(false) );
}
@@ -207,7 +207,7 @@ const ORowSetValue& ORowSetBase::impl_getValue(sal_Int32 columnIndex)
if ( !bValidCurrentRow )
{
// currentrow is null when the clone moves the window
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
m_aCurrentRow = m_pCache->m_aMatrixIter;
m_bIsInsertRow = false;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getValue: we don't stand on a valid row! Row is null.");
@@ -228,14 +228,19 @@ const ORowSetValue& ORowSetBase::impl_getValue(sal_Int32 columnIndex)
for (; k != m_pCache->getEnd(); ++k)
{
ORowSetValueVector* pTemp = k->get();
- OSL_ENSURE( pTemp != reinterpret_cast<void*>(0xfeeefeee),"HALT!" );
+ OSL_ENSURE( pTemp != reinterpret_cast<void*>(sal_uIntPtr(0xfeeefeee)),"HALT!" );
}
OSL_ENSURE(!m_aCurrentRow.isNull() && m_aCurrentRow < m_pCache->getEnd() && aCacheIter != m_pCache->m_aCacheIterators.end(),"Invalid iterator set for currentrow!");
- ORowSetRow rRow = *m_aCurrentRow;
- OSL_ENSURE(rRow.is() && o3tl::make_unsigned(columnIndex) < rRow->size(),"Invalid size of vector!");
#endif
+ ORowSetRow rRow = *m_aCurrentRow;
+ bool bValidPosition = rRow.is() && o3tl::make_unsigned(columnIndex) < rRow->size();
+ if (!bValidPosition)
+ {
+ SAL_WARN("dbaccess", "ORowSetBase::getValue: Invalid size of vector!");
+ ::dbtools::throwSQLException( DBA_RES( RID_STR_CURSOR_BEFORE_OR_AFTER ), StandardSQLState::INVALID_CURSOR_POSITION, *m_pMySelf );
+ }
m_nLastColumnIndex = columnIndex;
- return (**m_aCurrentRow)[m_nLastColumnIndex];
+ return (*rRow)[m_nLastColumnIndex];
}
// we should normally never reach this
@@ -245,73 +250,73 @@ const ORowSetValue& ORowSetBase::impl_getValue(sal_Int32 columnIndex)
OUString SAL_CALL ORowSetBase::getString( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getString();
}
sal_Bool SAL_CALL ORowSetBase::getBoolean( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return bool(getValue(columnIndex));
+ return getValue(columnIndex).getBool();
}
sal_Int8 SAL_CALL ORowSetBase::getByte( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getInt8();
}
sal_Int16 SAL_CALL ORowSetBase::getShort( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getInt16();
}
sal_Int32 SAL_CALL ORowSetBase::getInt( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getInt32();
}
sal_Int64 SAL_CALL ORowSetBase::getLong( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getLong();
}
float SAL_CALL ORowSetBase::getFloat( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getFloat();
}
double SAL_CALL ORowSetBase::getDouble( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getDouble();
}
Sequence< sal_Int8 > SAL_CALL ORowSetBase::getBytes( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getSequence();
}
css::util::Date SAL_CALL ORowSetBase::getDate( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getDate();
}
css::util::Time SAL_CALL ORowSetBase::getTime( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getTime();
}
css::util::DateTime SAL_CALL ORowSetBase::getTimestamp( sal_Int32 columnIndex )
{
::osl::MutexGuard aGuard( *m_pMutex );
- return getValue(columnIndex);
+ return getValue(columnIndex).getDateTime();
}
Reference< css::io::XInputStream > SAL_CALL ORowSetBase::getBinaryStream( sal_Int32 columnIndex )
@@ -333,7 +338,7 @@ Reference< css::io::XInputStream > SAL_CALL ORowSetBase::getBinaryStream( sal_In
bool bValidCurrentRow = ( !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd() && m_aCurrentRow->is() );
if ( !bValidCurrentRow )
{
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
m_aCurrentRow = m_pCache->m_aMatrixIter;
m_bIsInsertRow = false;
OSL_ENSURE(!m_aCurrentRow.isNull(),"ORowSetBase::getBinaryStream: we don't stand on a valid row! Row is null.");
@@ -366,8 +371,7 @@ Any SAL_CALL ORowSetBase::getObject( sal_Int32 columnIndex, const Reference< XNa
Reference< XRef > SAL_CALL ORowSetBase::getRef( sal_Int32 /*columnIndex*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XRow::getRef", *m_pMySelf );
- return nullptr;
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XRow::getRef"_ustr, *m_pMySelf );
}
Reference< XBlob > SAL_CALL ORowSetBase::getBlob( sal_Int32 columnIndex )
@@ -382,8 +386,7 @@ Reference< XClob > SAL_CALL ORowSetBase::getClob( sal_Int32 columnIndex )
Reference< XArray > SAL_CALL ORowSetBase::getArray( sal_Int32 /*columnIndex*/ )
{
- ::dbtools::throwFeatureNotImplementedSQLException( "XRow::getArray", *m_pMySelf );
- return nullptr;
+ ::dbtools::throwFeatureNotImplementedSQLException( u"XRow::getArray"_ustr, *m_pMySelf );
}
// css::sdbcx::XRowLocate
@@ -574,7 +577,7 @@ sal_Bool SAL_CALL ORowSetBase::next( )
ORowSetRow aOldValues = getOldRow(bWasNew);
- positionCache( MOVE_FORWARD );
+ positionCache( CursorMoveDirection::Forward );
bool bAfterLast = m_pCache->isAfterLast();
bRet = m_pCache->next();
doCancelModification( );
@@ -657,7 +660,7 @@ sal_Bool SAL_CALL ORowSetBase::isFirst( )
if ( impl_rowDeleted() )
return ( m_nDeletedPosition == 1 );
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
bool bIsFirst = m_pCache->isFirst();
SAL_INFO("dbaccess", "ORowSetBase::isFirst() = " << bIsFirst << " Clone = " << m_bClone);
@@ -687,7 +690,7 @@ sal_Bool SAL_CALL ORowSetBase::isLast( )
return ( m_nDeletedPosition == impl_getRowCount() );
}
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
bool bIsLast = m_pCache->isLast();
SAL_INFO("dbaccess", "ORowSetBase::isLast() = " << bIsLast << " Clone = " << m_bClone);
@@ -859,7 +862,7 @@ sal_Int32 ORowSetBase::impl_getRow()
nPos = 0;
else
{
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
nPos = m_pCache->getRow();
}
SAL_INFO("dbaccess", "ORowSetBase::impl_getRow() = " << nPos << " Clone = " << m_bClone);
@@ -939,7 +942,7 @@ sal_Bool SAL_CALL ORowSetBase::relative( sal_Int32 rows )
ORowSetRow aOldValues = getOldRow(bWasNew);
- positionCache( rows > 0 ? MOVE_FORWARD : MOVE_BACKWARD );
+ positionCache( rows > 0 ? CursorMoveDirection::Forward : CursorMoveDirection::Backward );
bRet = m_pCache->relative(rows);
doCancelModification( );
@@ -987,7 +990,7 @@ sal_Bool SAL_CALL ORowSetBase::previous( )
ORowSetRow aOldValues = getOldRow(bWasNew);
- positionCache( MOVE_BACKWARD );
+ positionCache( CursorMoveDirection::Backward );
bRet = m_pCache->previous();
doCancelModification( );
@@ -1084,13 +1087,13 @@ void SAL_CALL ORowSetBase::refreshRow( )
::osl::MutexGuard aGuard( *m_pMutex );
checkCache();
if ( impl_rowDeleted() )
- throwSQLException( "The current row is deleted", StandardSQLState::INVALID_CURSOR_STATE, Reference< XRowSet >( this ) );
+ throwSQLException( u"The current row is deleted"_ustr, StandardSQLState::INVALID_CURSOR_STATE, Reference< XRowSet >( this ) );
if(!(m_bBeforeFirst || m_bAfterLast))
{
bool bWasNew = m_pCache->m_bNew || impl_rowDeleted();
ORowSetRow aOldValues = getOldRow(bWasNew);
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
m_pCache->refreshRow();
firePropertyChange(aOldValues);
}
@@ -1208,8 +1211,8 @@ bool ORowSetBase::isPropertyChangeNotificationEnabled() const
void ORowSetBase::fireProperty( sal_Int32 _nProperty, bool _bNew, bool _bOld )
{
- Any aNew = css::uno::makeAny( _bNew );
- Any aOld = css::uno::makeAny( _bOld );
+ Any aNew( _bNew );
+ Any aOld( _bOld );
fire( &_nProperty, &aNew, &aOld, 1, false );
}
@@ -1220,7 +1223,7 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
bool bSuccess = false;
if ( m_aBookmark.hasValue() )
{
- if (_ePrepareForDirection == MOVE_NONE_REFRESH ||
+ if (_ePrepareForDirection == CursorMoveDirection::CurrentRefresh ||
(m_pCache->isAfterLast() != bool(isAfterLast())) || ( m_pCache->isBeforeFirst() != bool(isBeforeFirst()) ) ||
m_pCache->compareBookmarks( m_aBookmark, m_pCache->getBookmark() ) != CompareBookmark::EQUAL )
bSuccess = m_pCache->moveToBookmark( m_aBookmark );
@@ -1244,7 +1247,7 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
OSL_ENSURE( m_nDeletedPosition >= 1, "ORowSetBase::positionCache: no bookmark, and no valid 'deleted position'!" );
switch ( _ePrepareForDirection )
{
- case MOVE_FORWARD:
+ case CursorMoveDirection::Forward:
if ( m_nDeletedPosition > 1 )
bSuccess = m_pCache->absolute( m_nDeletedPosition - 1 );
else
@@ -1254,7 +1257,7 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
}
break;
- case MOVE_BACKWARD:
+ case CursorMoveDirection::Backward:
if ( m_pCache->m_bRowCountFinal && ( m_nDeletedPosition == impl_getRowCount() ) )
{
m_pCache->afterLast();
@@ -1264,8 +1267,8 @@ void ORowSetBase::positionCache( CursorMoveDirection _ePrepareForDirection )
bSuccess = m_pCache->absolute( m_nDeletedPosition );
break;
- case MOVE_NONE:
- case MOVE_NONE_REFRESH:
+ case CursorMoveDirection::Current:
+ case CursorMoveDirection::CurrentRefresh:
bSuccess = false; // will be asserted below
break;
}
@@ -1319,7 +1322,7 @@ void ORowSetBase::onDeleteRow( const Any& _rBookmark )
//OSL_ENSURE( m_aBookmark.hasValue(), "ORowSetBase::onDeleteRow: Bookmark isn't valid!" );
if ( compareBookmarks( _rBookmark, m_aBookmark ) == CompareBookmark::EQUAL )
{
- positionCache( MOVE_NONE );
+ positionCache( CursorMoveDirection::Current );
m_nDeletedPosition = m_pCache->getRow();
}
}
@@ -1353,12 +1356,6 @@ sal_Int32 ORowSetBase::impl_getRowCount() const
return nRowCount;
}
-struct ORowSetNotifierImpl
-{
- std::vector<sal_Int32> aChangedColumns;
- ORowSetValueVector::Vector aRow;
-};
-
ORowSetNotifier::ORowSetNotifier( ORowSetBase* _pRowSet )
:m_pRowSet( _pRowSet )
@@ -1377,15 +1374,13 @@ ORowSetNotifier::ORowSetNotifier( ORowSetBase* _pRowSet )
m_pRowSet->doCancelModification( ORowSetBase::GrantNotifierAccess() );
}
-ORowSetNotifier::ORowSetNotifier( ORowSetBase* _pRowSet,const ORowSetValueVector::Vector& i_aRow )
- :m_pImpl(new ORowSetNotifierImpl)
- ,m_pRowSet( _pRowSet )
+ORowSetNotifier::ORowSetNotifier( ORowSetBase* _pRowSet, ORowSetValueVector::Vector&& i_aRow )
+ :m_pRowSet( _pRowSet )
,m_bWasNew( false )
,m_bWasModified( false )
{
-
OSL_ENSURE( m_pRowSet, "ORowSetNotifier::ORowSetNotifier: invalid row set. This will crash." );
- m_pImpl->aRow = i_aRow; // yes, create a copy to store the old values
+ aRow = std::move(i_aRow); // yes, create a copy to store the old values
}
ORowSetNotifier::~ORowSetNotifier( )
@@ -1408,24 +1403,19 @@ void ORowSetNotifier::fire()
m_pRowSet->fireProperty( PROPERTY_ID_ISNEW, false, true, ORowSetBase::GrantNotifierAccess() );
}
-std::vector<sal_Int32>& ORowSetNotifier::getChangedColumns() const
+std::vector<sal_Int32>& ORowSetNotifier::getChangedColumns()
{
- OSL_ENSURE(m_pImpl, "Illegal CTor call, use the other one!");
- return m_pImpl->aChangedColumns;
+ return aChangedColumns;
}
void ORowSetNotifier::firePropertyChange()
{
- OSL_ENSURE(m_pImpl, "Illegal CTor call, use the other one!");
- if (m_pImpl)
+ for (auto const& changedColumn : aChangedColumns)
{
- for (auto const& changedColumn : m_pImpl->aChangedColumns)
- {
- m_pRowSet->firePropertyChange(changedColumn-1 ,m_pImpl->aRow[changedColumn-1], ORowSetBase::GrantNotifierAccess());
- }
- if ( !m_pImpl->aChangedColumns.empty() )
- m_pRowSet->fireProperty(PROPERTY_ID_ISMODIFIED,true,false, ORowSetBase::GrantNotifierAccess());
+ m_pRowSet->firePropertyChange(changedColumn-1, aRow[changedColumn-1], ORowSetBase::GrantNotifierAccess());
}
+ if ( !aChangedColumns.empty() )
+ m_pRowSet->fireProperty(PROPERTY_ID_ISMODIFIED,true,false, ORowSetBase::GrantNotifierAccess());
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/api/RowSetBase.hxx b/dbaccess/source/core/api/RowSetBase.hxx
index 58087a85bb14..547a792d7aeb 100644
--- a/dbaccess/source/core/api/RowSetBase.hxx
+++ b/dbaccess/source/core/api/RowSetBase.hxx
@@ -19,7 +19,7 @@
#pragma once
#include <memory>
-#include <cppuhelper/implbase10.hxx>
+#include <cppuhelper/implbase9.hxx>
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbc/XColumnLocate.hpp>
@@ -28,7 +28,6 @@
#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <cppuhelper/interfacecontainer.h>
#include <connectivity/sqlerror.hxx>
#include <connectivity/CommonTools.hxx>
@@ -42,16 +41,11 @@
#include <functional>
-namespace com::sun::star {
- namespace sdb { struct RowChangeEvent; }
- namespace lang { struct Locale; }
-}
-
namespace dbaccess
{
class OEmptyCollection;
- typedef ::cppu::ImplHelper10< css::sdbcx::XRowLocate,
+ typedef ::cppu::ImplHelper9< css::sdbcx::XRowLocate,
css::sdbc::XRow,
css::sdbc::XResultSetMetaDataSupplier,
css::sdbc::XWarningsSupplier,
@@ -59,12 +53,10 @@ namespace dbaccess
css::sdbcx::XColumnsSupplier,
css::lang::XServiceInfo,
css::sdbc::XRowSet,
- css::sdbc::XCloseable,
- css::lang::XUnoTunnel> ORowSetBase_BASE;
+ css::sdbc::XCloseable> ORowSetBase_BASE;
class ORowSetCache;
class ORowSetDataColumns;
- class ORowSetCacheIterator;
class ORowSetDataColumn;
class ORowSetBase : public ORowSetBase_BASE,
public ::comphelper::OPropertyStateContainer,
@@ -143,16 +135,16 @@ namespace dbaccess
virtual void getPropertyDefaultByHandle( sal_Int32 _nHandle, css::uno::Any& _rDefault ) const override;
virtual void SAL_CALL getFastPropertyValue(css::uno::Any& rValue,sal_Int32 nHandle) const override;
- enum CursorMoveDirection
+ enum class CursorMoveDirection
{
/// denotes a cursor move forward
- MOVE_FORWARD,
+ Forward,
/// denotes a cursor move backwards
- MOVE_BACKWARD,
+ Backward,
/// denotes no cursor move at all, but move cache to current row (if it is not there already)
- MOVE_NONE,
+ Current,
/// denotes no cursor move at all, but force the cache to move to current row (and refresh the row)
- MOVE_NONE_REFRESH
+ CurrentRefresh
};
/** positions the cache in preparation of a cursor move
@@ -347,11 +339,11 @@ namespace dbaccess
<p>The class can only be used on the stack, within a method of ORowSetBase (or derivees)</p>
*/
- struct ORowSetNotifierImpl;
class ORowSetNotifier
{
private:
- std::unique_ptr<ORowSetNotifierImpl> m_pImpl;
+ std::vector<sal_Int32> aChangedColumns;
+ ORowSetValueVector::Vector aRow;
ORowSetBase* m_pRowSet;
// not acquired! This is not necessary because this class here is to be used on the stack within
// a method of ORowSetBase (or derivees)
@@ -367,7 +359,7 @@ namespace dbaccess
/** use this one to construct a vector for change value notification
*/
- ORowSetNotifier( ORowSetBase* m_pRowSet,const ORowSetValueVector::Vector& i_aRow );
+ ORowSetNotifier( ORowSetBase* m_pRowSet, ORowSetValueVector::Vector&& i_aRow );
// destructs the object. <member>fire</member> has to be called before.
~ORowSetNotifier( );
@@ -391,9 +383,9 @@ namespace dbaccess
*/
void firePropertyChange();
- /** use this one to store the inde of the changed column values
+ /** use this one to store the index of the changed column values
*/
- std::vector<sal_Int32>& getChangedColumns() const;
+ std::vector<sal_Int32>& getChangedColumns();
};
diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index c80c04594786..220d4f6d5b2a 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -45,7 +45,7 @@
#include <connectivity/sqlnode.hxx>
#include <connectivity/sqlparse.hxx>
#include <sqlbison.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
@@ -60,11 +60,7 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
using namespace ::cppu;
-using namespace ::osl;
-
-#define CHECK_MATRIX_POS(M) OSL_ENSURE(((M) >= static_cast<ORowSetMatrix::difference_type>(0)) && ((M) < static_cast<sal_Int32>(m_pMatrix->size())),"Position is invalid!")
// This class calls m_pCacheSet->FOO_checked(..., sal_False)
// (where FOO is absolute, last, previous)
@@ -165,7 +161,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
if ( aTableNames.getLength() > 1 && _rUpdateTableName.isEmpty() && 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,m_nRowCount);
+ rtl::Reference<OptimisticSet> pCursor = new OptimisticSet(m_aContext,xConnection,_xAnalyzer,_aParameterValueForCache,i_nMaxRows,m_nRowCount);
m_xCacheSet = pCursor;
try
{
@@ -207,9 +203,9 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
{
Reference<XNameAccess> xSelColumns = xColSup->getColumns();
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
- SelectColumnsMetaData aColumnNames(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
+ SelectColumnsMetaData aColumnNames(comphelper::UStringMixLess(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers()));
::dbaccess::getColumnPositions(xSelColumns,xPrimaryKeyColumns->getElementNames(),aUpdateTableName,aColumnNames);
- bAllKeysFound = !aColumnNames.empty() && sal_Int32(aColumnNames.size()) == xPrimaryKeyColumns->getElementNames().getLength();
+ bAllKeysFound = !aColumnNames.empty() && aColumnNames.size() == o3tl::make_unsigned(xPrimaryKeyColumns->getElementNames().getLength());
}
}
}
@@ -273,7 +269,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
else
{
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
- SelectColumnsMetaData aColumnNames(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
+ SelectColumnsMetaData aColumnNames(comphelper::UStringMixLess(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers()));
Reference<XColumnsSupplier> xColSup(_xAnalyzer,UNO_QUERY);
Reference<XNameAccess> xSelColumns = xColSup->getColumns();
Reference<XNameAccess> xColumns = m_aUpdateTable->getColumns();
@@ -283,18 +279,15 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
m_nPrivileges = Privilege::SELECT;
bool bNoInsert = false;
- Sequence< OUString> aNames(xColumns->getElementNames());
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& columnName : xColumns->getElementNames())
{
- Reference<XPropertySet> xColumn(xColumns->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xColumn(xColumns->getByName(columnName), UNO_QUERY);
OSL_ENSURE(xColumn.is(),"Column in table is null!");
if(xColumn.is())
{
sal_Int32 nNullable = 0;
xColumn->getPropertyValue(PROPERTY_ISNULLABLE) >>= nNullable;
- if(nNullable == ColumnValue::NO_NULLS && aColumnNames.find(*pIter) == aColumnNames.end())
+ if(nNullable == ColumnValue::NO_NULLS && aColumnNames.find(columnName) == aColumnNames.end())
{ // we found a column where null is not allowed so we can't insert new values
bNoInsert = true;
break; // one column is enough
@@ -302,7 +295,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
}
}
- OKeySet* pKeySet = new OKeySet(m_aUpdateTable, aUpdateTableName ,_xAnalyzer,_aParameterValueForCache,i_nMaxRows,m_nRowCount);
+ rtl::Reference<OKeySet> pKeySet = new OKeySet(m_aUpdateTable, aUpdateTableName ,_xAnalyzer,_aParameterValueForCache,i_nMaxRows,m_nRowCount);
try
{
m_xCacheSet = pKeySet;
@@ -406,7 +399,7 @@ void ORowSetCache::setFetchSize(sal_Int32 _nSize)
{
if ( rPosChange.second )
{
- CHECK_MATRIX_POS(*aIter);
+ OSL_ENSURE((*aIter >= static_cast<ORowSetMatrix::difference_type>(0)) && (*aIter < static_cast<sal_Int32>(m_pMatrix->size())),"Position is invalid!");
if ( *aIter < _nSize )
aCacheIter->second.aIterator = m_pMatrix->begin() + *aIter++;
else
@@ -457,7 +450,7 @@ static Any lcl_getBookmark(ORowSetValue& i_aValue,OCacheSet* i_pCacheSet)
case DataType::TINYINT:
case DataType::SMALLINT:
case DataType::INTEGER:
- return makeAny(static_cast<sal_Int32>(i_aValue));
+ return Any(i_aValue.getInt32());
default:
if ( i_pCacheSet && i_aValue.isNull())
i_aValue = i_pCacheSet->getBookmark();
@@ -593,7 +586,7 @@ void ORowSetCache::updateCharacterStream( sal_Int32 columnIndex, const Reference
rInsert[columnIndex].setBound(true);
rInsert[columnIndex] = aSeq;
rInsert[columnIndex].setModified(true);
- io_aRow[columnIndex] = makeAny(x);
+ io_aRow[columnIndex] = Any(x);
m_xCacheSet->mergeColumnValues(columnIndex,rInsert,io_aRow,o_ChangedColumns);
impl_updateRowFromCache_throw(io_aRow,o_ChangedColumns);
@@ -612,7 +605,7 @@ void ORowSetCache::updateObject( sal_Int32 columnIndex, const Any& x
if ( rInsert[columnIndex] != aTemp )
{
rInsert[columnIndex].setBound(true);
- rInsert[columnIndex] = aTemp;
+ rInsert[columnIndex] = std::move(aTemp);
rInsert[columnIndex].setModified(true);
io_aRow[columnIndex] = rInsert[columnIndex];
@@ -634,7 +627,7 @@ void ORowSetCache::updateNumericObject( sal_Int32 columnIndex, const Any& x
if ( rInsert[columnIndex] != aTemp )
{
rInsert[columnIndex].setBound(true);
- rInsert[columnIndex] = aTemp;
+ rInsert[columnIndex] = std::move(aTemp);
rInsert[columnIndex].setModified(true);
io_aRow[columnIndex] = rInsert[columnIndex];
@@ -917,7 +910,8 @@ void ORowSetCache::moveWindow()
else
{
// Inside overlap area: move to correct position
- CHECK_MATRIX_POS( (nDist + nStartPosOffset) );
+ OSL_ENSURE(((nDist + nStartPosOffset) >= static_cast<ORowSetMatrix::difference_type>(0)) &&
+ ((nDist + nStartPosOffset) < static_cast<sal_Int32>(m_pMatrix->size())),"Position is invalid!");
rCacheIter.second.aIterator += nStartPosOffset;
OSL_ENSURE(rCacheIter.second.aIterator >= m_pMatrix->begin()
&& rCacheIter.second.aIterator < m_pMatrix->end(),"Iterator out of area!");
@@ -947,7 +941,7 @@ void ORowSetCache::moveWindow()
if ( nRowsInCache < m_nFetchSize )
{
// There is some unused space in *m_pMatrix; fill it
- CHECK_MATRIX_POS(nRowsInCache);
+ OSL_ENSURE((nRowsInCache >= static_cast<ORowSetMatrix::difference_type>(0)) && (o3tl::make_unsigned(nRowsInCache) < m_pMatrix->size()),"Position is invalid!");
sal_Int32 nPos = m_nEndPos + 1;
bool bCheck = m_xCacheSet->absolute(nPos);
ORowSetMatrix::iterator aIter = m_pMatrix->begin() + nRowsInCache;
@@ -965,7 +959,7 @@ void ORowSetCache::moveWindow()
// The rows behind this can be reused
ORowSetMatrix::iterator aIter = m_pMatrix->begin();
const sal_Int32 nNewStartPosInMatrix = nNewStartPos - m_nStartPos;
- CHECK_MATRIX_POS( nNewStartPosInMatrix );
+ OSL_ENSURE((nNewStartPosInMatrix >= static_cast<ORowSetMatrix::difference_type>(0)) && (o3tl::make_unsigned(nNewStartPosInMatrix) < m_pMatrix->size()),"Position is invalid!");
// first position we reuse
const ORowSetMatrix::const_iterator aEnd = m_pMatrix->begin() + nNewStartPosInMatrix;
// End of used portion of the matrix. Is < m_pMatrix->end() if less data than window size
@@ -1624,8 +1618,8 @@ void ORowSetCache::clearInsertRow()
ORowSetMatrix::iterator ORowSetCache::calcPosition() const
{
sal_Int32 nValue = (m_nPosition - m_nStartPos) - 1;
- CHECK_MATRIX_POS(nValue);
- return ( nValue < 0 || nValue >= static_cast<sal_Int32>(m_pMatrix->size()) ) ? m_pMatrix->end() : (m_pMatrix->begin() + nValue);
+ OSL_ENSURE((nValue >= static_cast<ORowSetMatrix::difference_type>(0)) && (o3tl::make_unsigned(nValue) < m_pMatrix->size()),"Position is invalid!");
+ return ( nValue < 0 || o3tl::make_unsigned(nValue) >= m_pMatrix->size() ) ? m_pMatrix->end() : (m_pMatrix->begin() + nValue);
}
TORowSetOldRowHelperRef ORowSetCache::registerOldRow()
diff --git a/dbaccess/source/core/api/RowSetCacheIterator.hxx b/dbaccess/source/core/api/RowSetCacheIterator.hxx
index 9c7a9afd4deb..f5d5e6783b65 100644
--- a/dbaccess/source/core/api/RowSetCacheIterator.hxx
+++ b/dbaccess/source/core/api/RowSetCacheIterator.hxx
@@ -21,6 +21,7 @@
#include <sal/config.h>
#include <map>
+#include <utility>
#include "RowSetRow.hxx"
@@ -43,8 +44,8 @@ namespace dbaccess
ORowSetCache* m_pCache;
ORowSetBase* m_pRowSet;
- ORowSetCacheIterator(const ORowSetCacheMap::iterator& _rIter,ORowSetCache* _pCache,ORowSetBase* _pRowSet)
- : m_aIter(_rIter)
+ ORowSetCacheIterator(ORowSetCacheMap::iterator _aIter, ORowSetCache* _pCache,ORowSetBase* _pRowSet)
+ : m_aIter(std::move(_aIter))
,m_pCache(_pCache)
,m_pRowSet(_pRowSet)
{
diff --git a/dbaccess/source/core/api/RowSetRow.hxx b/dbaccess/source/core/api/RowSetRow.hxx
index 7f24267b7530..a847399dd1e9 100644
--- a/dbaccess/source/core/api/RowSetRow.hxx
+++ b/dbaccess/source/core/api/RowSetRow.hxx
@@ -22,6 +22,7 @@
#include <connectivity/CommonTools.hxx>
#include <connectivity/FValue.hxx>
#include <salhelper/simplereferenceobject.hxx>
+#include <utility>
namespace dbaccess
{
@@ -36,8 +37,8 @@ namespace dbaccess
ORowSetOldRowHelper& operator=(const ORowSetOldRowHelper& _rRH) = delete;
ORowSetOldRowHelper(const ORowSetOldRowHelper& _rRh) = delete;
public:
- explicit ORowSetOldRowHelper(const ORowSetRow& _rRow)
- : m_aRow(_rRow)
+ explicit ORowSetOldRowHelper(ORowSetRow _aRow)
+ : m_aRow(std::move(_aRow))
{}
const ORowSetRow& getRow() const { return m_aRow; }
diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index 6ca83d6d9879..c8c6f7ecbd2a 100644
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@ -21,6 +21,7 @@
#include <sal/log.hxx>
#include <composertools.hxx>
#include <strings.hrc>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <stringconstants.hxx>
#include "HelperCollections.hxx"
@@ -48,7 +49,7 @@
#include <connectivity/dbtools.hxx>
#include <connectivity/PColumn.hxx>
#include <connectivity/predicateinput.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <unotools/sharedunocomponent.hxx>
@@ -77,18 +78,18 @@ namespace dbaccess {
namespace BooleanComparisonMode = ::com::sun::star::sdb::BooleanComparisonMode;
}
-#define STR_SELECT "SELECT "
-#define STR_FROM " FROM "
-#define STR_WHERE " WHERE "
-#define STR_GROUP_BY " GROUP BY "
-#define STR_HAVING " HAVING "
-#define STR_ORDER_BY " ORDER BY "
-#define STR_AND " AND "
-#define STR_OR " OR "
-#define STR_LIKE OUString(" LIKE ")
-#define L_BRACKET "("
-#define R_BRACKET ")"
-#define COMMA ","
+constexpr OUStringLiteral STR_SELECT = u"SELECT ";
+constexpr OUStringLiteral STR_FROM = u" FROM ";
+constexpr OUString STR_WHERE = u" WHERE "_ustr;
+constexpr OUStringLiteral STR_GROUP_BY = u" GROUP BY ";
+constexpr OUStringLiteral STR_HAVING = u" HAVING ";
+constexpr OUStringLiteral STR_ORDER_BY = u" ORDER BY ";
+constexpr OUString STR_AND = u" AND "_ustr;
+constexpr OUString STR_OR = u" OR "_ustr;
+constexpr OUStringLiteral STR_LIKE = u" LIKE ";
+constexpr OUString L_BRACKET = u"("_ustr;
+constexpr OUString R_BRACKET = u")"_ustr;
+constexpr OUStringLiteral COMMA = u",";
namespace
{
@@ -105,8 +106,8 @@ namespace
{
OUString sSQLStateGeneralError( getStandardSQLState( StandardSQLState::GENERAL_ERROR ) );
SQLException aError2( aErrorMsg, _rxContext, sSQLStateGeneralError, 1000, Any() );
- SQLException aError1( _rStatement, _rxContext, sSQLStateGeneralError, 1000, makeAny( aError2 ) );
- throw SQLException(_rParser.getContext().getErrorMessage(OParseContext::ErrorCode::General),_rxContext,sSQLStateGeneralError,1000,makeAny(aError1));
+ SQLException aError1( _rStatement, _rxContext, sSQLStateGeneralError, 1000, Any( aError2 ) );
+ throw SQLException(_rParser.getContext().getErrorMessage(OParseContext::ErrorCode::General),_rxContext,sSQLStateGeneralError,1000,Any(aError1));
}
return pNewSqlParseNode;
}
@@ -132,7 +133,7 @@ namespace
// and now really ...
SQLException aError1( _rOriginatingCommand, _rxContext, getStandardSQLState( StandardSQLState::GENERAL_ERROR ), 1000, Any() );
throw SQLException( DBA_RES( RID_STR_ONLY_QUERY ), _rxContext,
- getStandardSQLState( StandardSQLState::GENERAL_ERROR ), 1000, makeAny( aError1 ) );
+ getStandardSQLState( StandardSQLState::GENERAL_ERROR ), 1000, Any( aError1 ) );
}
delete pOldNode;
@@ -169,33 +170,33 @@ namespace
delete pSqlParseNode;
_rIterator.dispose();
}
- void lcl_addFilterCriteria_throw(sal_Int32 i_nFilterOperator,const OUString& i_sValue,OUStringBuffer& o_sRet)
+ void lcl_addFilterCriteria_throw(sal_Int32 i_nFilterOperator,std::u16string_view i_sValue,OUStringBuffer& o_sRet)
{
switch( i_nFilterOperator )
{
case SQLFilterOperator::EQUAL:
- o_sRet.append(" = " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" = ") + i_sValue);
break;
case SQLFilterOperator::NOT_EQUAL:
- o_sRet.append(" <> " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" <> ") + i_sValue);
break;
case SQLFilterOperator::LESS:
- o_sRet.append(" < " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" < ") + i_sValue);
break;
case SQLFilterOperator::GREATER:
- o_sRet.append(" > " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" > ") + i_sValue);
break;
case SQLFilterOperator::LESS_EQUAL:
- o_sRet.append(" <= " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" <= ") + i_sValue);
break;
case SQLFilterOperator::GREATER_EQUAL:
- o_sRet.append(" >= " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" >= ") + i_sValue);
break;
case SQLFilterOperator::LIKE:
- o_sRet.append(" LIKE " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" LIKE ") + i_sValue);
break;
case SQLFilterOperator::NOT_LIKE:
- o_sRet.append(" NOT LIKE " ).append( i_sValue);
+ o_sRet.append(OUString::Concat(" NOT LIKE ") + i_sValue);
break;
case SQLFilterOperator::SQLNULL:
o_sRet.append(" IS NULL");
@@ -216,7 +217,7 @@ OSingleSelectQueryComposer::OSingleSelectQueryComposer(const Reference< XNameAcc
const Reference<XComponentContext>& _rContext )
:OSubComponent(m_aMutex,_xConnection)
,OPropertyContainer(m_aBHelper)
- ,m_aSqlParser( _rContext, &m_aParseContext )
+ ,m_aSqlParser( _rContext, &m_aParseContext, &m_aNeutralContext )
,m_aSqlIterator( _xConnection, _rxTables, m_aSqlParser )
,m_aAdditiveIterator( _xConnection, _rxTables, m_aSqlParser )
,m_aElementaryParts( size_t(SQLPartCount) )
@@ -244,7 +245,7 @@ OSingleSelectQueryComposer::OSingleSelectQueryComposer(const Reference< XNameAcc
{
Any aValue;
Reference<XInterface> xDs = dbaccess::getDataSource(_xConnection);
- if ( dbtools::getDataSourceSetting(xDs,static_cast <OUString> (PROPERTY_BOOLEANCOMPARISONMODE),aValue) )
+ if ( dbtools::getDataSourceSetting(xDs,PROPERTY_BOOLEANCOMPARISONMODE,aValue) )
{
OSL_VERIFY( aValue >>= m_nBoolCompareMode );
}
@@ -278,15 +279,54 @@ void SAL_CALL OSingleSelectQueryComposer::disposing()
}
IMPLEMENT_FORWARD_XINTERFACE3(OSingleSelectQueryComposer,OSubComponent,OSingleSelectQueryComposer_BASE,OPropertyContainer)
-IMPLEMENT_SERVICE_INFO1(OSingleSelectQueryComposer,"org.openoffice.comp.dba.OSingleSelectQueryComposer",SERVICE_NAME_SINGLESELECTQUERYCOMPOSER)
+OUString SAL_CALL OSingleSelectQueryComposer::getImplementationName()
+ {
+ return u"org.openoffice.comp.dba.OSingleSelectQueryComposer"_ustr;
+ }
+sal_Bool SAL_CALL OSingleSelectQueryComposer::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OSingleSelectQueryComposer::getSupportedServiceNames()
+{
+ return { SERVICE_NAME_SINGLESELECTQUERYCOMPOSER };
+}
css::uno::Sequence<sal_Int8> OSingleSelectQueryComposer::getImplementationId()
{
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES3(OSingleSelectQueryComposer,OSubComponent,OSingleSelectQueryComposer_BASE,OPropertyContainer)
-IMPLEMENT_PROPERTYCONTAINER_DEFAULTS(OSingleSelectQueryComposer)
+css::uno::Sequence< css::uno::Type > OSingleSelectQueryComposer::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OSubComponent::getTypes( ),
+ OSingleSelectQueryComposer_BASE::getTypes( ),
+ OPropertyContainer::getTypes( )
+ );
+}
+
+css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL OSingleSelectQueryComposer::getPropertySetInfo()
+{
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+::cppu::IPropertyArrayHelper& OSingleSelectQueryComposer::getInfoHelper()
+{
+ return *OSingleSelectQueryComposer::getArrayHelper();
+}
+::cppu::IPropertyArrayHelper* OSingleSelectQueryComposer::createArrayHelper( ) const
+{
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
// XSingleSelectQueryAnalyzer
OUString SAL_CALL OSingleSelectQueryComposer::getQuery( )
@@ -431,11 +471,11 @@ OUString OSingleSelectQueryComposer::impl_getColumnRealName_throw(const Referenc
|| !m_aCurrentColumns[SelectColumns]
|| !column->getPropertySetInfo()->hasPropertyByName(PROPERTY_NAME)
)
- {
- OUString sError(DBA_RES(RID_STR_COLUMN_UNKNOWN_PROP));
- SQLException aErr(sError.replaceAll("%value", PROPERTY_NAME),*this,SQLSTATE_GENERAL,1000,Any() );
- throw SQLException(DBA_RES(RID_STR_COLUMN_NOT_VALID),*this,SQLSTATE_GENERAL,1000,makeAny(aErr) );
- }
+ {
+ OUString sError(DBA_RES(RID_STR_COLUMN_UNKNOWN_PROP));
+ SQLException aErr(sError.replaceAll("%value", PROPERTY_NAME),*this,SQLSTATE_GENERAL,1000,Any() );
+ throw SQLException(DBA_RES(RID_STR_COLUMN_NOT_VALID),*this,SQLSTATE_GENERAL,1000,Any(aErr) );
+ }
OUString aName, aNewName;
column->getPropertyValue(PROPERTY_NAME) >>= aName;
@@ -456,13 +496,13 @@ OUString OSingleSelectQueryComposer::impl_getColumnRealName_throw(const Referenc
m_aCurrentColumns[SelectColumns]->getByName(aName) >>= xColumn;
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME),"Property REALNAME not available!");
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_TABLENAME),"Property TABLENAME not available!");
- OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName("Function"),"Property FUNCTION not available!");
+ OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(u"Function"_ustr),"Property FUNCTION not available!");
OUString sRealName, sTableName;
xColumn->getPropertyValue(PROPERTY_REALNAME) >>= sRealName;
xColumn->getPropertyValue(PROPERTY_TABLENAME) >>= sTableName;
bool bFunction = false;
- xColumn->getPropertyValue("Function") >>= bFunction;
+ xColumn->getPropertyValue(u"Function"_ustr) >>= bFunction;
if ( sRealName == aName )
{
if ( bFunction )
@@ -471,9 +511,9 @@ OUString OSingleSelectQueryComposer::impl_getColumnRealName_throw(const Referenc
{
if(sTableName.indexOf('.') != -1)
{
- OUString aCatlog,aSchema,aTable;
- ::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatlog,aSchema,aTable,::dbtools::EComposeRule::InDataManipulation);
- sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
+ OUString aCatalog,aSchema,aTable;
+ ::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatalog,aSchema,aTable,::dbtools::EComposeRule::InDataManipulation);
+ sTableName = ::dbtools::composeTableName( m_xMetaData, aCatalog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
}
else if (!sTableName.isEmpty())
sTableName = ::dbtools::quoteName(aQuote,sTableName);
@@ -501,11 +541,11 @@ OUString OSingleSelectQueryComposer::impl_getColumnNameOrderBy_throw(const Refer
|| !m_aCurrentColumns[SelectColumns]
|| !column->getPropertySetInfo()->hasPropertyByName(PROPERTY_NAME)
)
- {
- OUString sError(DBA_RES(RID_STR_COLUMN_UNKNOWN_PROP));
- SQLException aErr(sError.replaceAll("%value", PROPERTY_NAME),*this,SQLSTATE_GENERAL,1000,Any() );
- throw SQLException(DBA_RES(RID_STR_COLUMN_NOT_VALID),*this,SQLSTATE_GENERAL,1000,makeAny(aErr) );
- }
+ {
+ OUString sError(DBA_RES(RID_STR_COLUMN_UNKNOWN_PROP));
+ SQLException aErr(sError.replaceAll("%value", PROPERTY_NAME),*this,SQLSTATE_GENERAL,1000,Any() );
+ throw SQLException(DBA_RES(RID_STR_COLUMN_NOT_VALID),*this,SQLSTATE_GENERAL,1000,Any(aErr) );
+ }
OUString aName;
column->getPropertyValue(PROPERTY_NAME) >>= aName;
@@ -611,7 +651,7 @@ void SAL_CALL OSingleSelectQueryComposer::setElementaryQuery( const OUString& _r
namespace
{
OUString getComposedClause( const OUString& _rElementaryClause, const OUString& _rAdditionalClause,
- TokenComposer& _rComposer, const OUString& _rKeyword )
+ TokenComposer& _rComposer, std::u16string_view _rKeyword )
{
_rComposer.clear();
_rComposer.append( _rElementaryClause );
@@ -717,7 +757,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getTables( )
for (auto const& elem : aTables)
aNames.push_back(elem.first);
- m_pTables.reset( new OPrivateTables(aTables,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames) );
+ m_pTables.reset( new OPrivateTables(aTables,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,std::move(aNames)) );
}
return m_pTables.get();
@@ -752,14 +792,14 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( )
bCase = m_xMetaData->supportsMixedCaseQuotedIdentifiers();
aSelectColumns = m_aSqlIterator.getSelectColumns();
- OUStringBuffer aSQL( m_aPureSelectSQL + STR_WHERE " ( 0 = 1 )");
+ OUStringBuffer aSQL( m_aPureSelectSQL + STR_WHERE + " ( 0 = 1 )");
// preserve the original WHERE clause
// #i102234#
OUString sOriginalWhereClause = getSQLPart( Where, m_aSqlIterator, false );
if ( !sOriginalWhereClause.isEmpty() )
{
- aSQL.append( " AND ( " ).append( sOriginalWhereClause ).append( " ) " );
+ aSQL.append( " AND ( " + sOriginalWhereClause + " ) " );
}
OUString sGroupBy = getSQLPart( Group, m_aSqlIterator, true );
@@ -807,7 +847,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( )
{
xStatement.reset( Reference< XStatement >( m_xConnection->createStatement(), UNO_SET_THROW ) );
Reference< XPropertySet > xStatementProps( xStatement, UNO_QUERY_THROW );
- try { xStatementProps->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, makeAny( false ) ); }
+ try { xStatementProps->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, Any( false ) ); }
catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION("dbaccess"); }
xResMetaDataSup.set( xStatement->executeQuery( sSQL ), UNO_QUERY_THROW );
xResultSetMeta.set( xResMetaDataSup->getMetaData(), UNO_SET_THROW );
@@ -886,13 +926,13 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( )
// we can now only look if we found it under the realname property
// here we have to make the assumption that the position is correct
OSQLColumns::Vector::const_iterator aFind2 = aSelectColumns->begin() + i-1;
- Reference<XPropertySet> xProp = *aFind2;
+ const Reference<XPropertySet>& xProp = *aFind2;
if ( !xProp.is() || !xProp->getPropertySetInfo()->hasPropertyByName( PROPERTY_REALNAME ) )
continue;
- ::connectivity::parse::OParseColumn* pColumn = new ::connectivity::parse::OParseColumn(xProp,bCase);
- pColumn->setFunction(::comphelper::getBOOL(xProp->getPropertyValue("Function")));
- pColumn->setAggregateFunction(::comphelper::getBOOL(xProp->getPropertyValue("AggregateFunction")));
+ rtl::Reference<::connectivity::parse::OParseColumn> pColumn = new ::connectivity::parse::OParseColumn(xProp,bCase);
+ pColumn->setFunction(::comphelper::getBOOL(xProp->getPropertyValue(u"Function"_ustr)));
+ pColumn->setAggregateFunction(::comphelper::getBOOL(xProp->getPropertyValue(u"AggregateFunction"_ustr)));
OUString sRealName;
xProp->getPropertyValue(PROPERTY_REALNAME) >>= sRealName;
@@ -1324,8 +1364,8 @@ OUString OSingleSelectQueryComposer::getTableAlias(const Reference< XPropertySet
column->getPropertyValue(PROPERTY_NAME) >>= aColumnName;
Sequence< OUString> aNames(m_pTables->getElementNames());
- const OUString* pBegin = aNames.getConstArray();
- const OUString* const pEnd = pBegin + aNames.getLength();
+ const OUString* pBegin = aNames.begin();
+ const OUString* const pEnd = aNames.end();
if(aTable.isEmpty())
{ // we haven't found a table name, now we must search every table for this column
@@ -1484,9 +1524,9 @@ OUString OSingleSelectQueryComposer::getStatementPart( TGetParseNode const & _aG
namespace
{
- OUString lcl_getDecomposedColumnName(const OUString& rComposedName, const OUString& rQuoteString)
+ OUString lcl_getDecomposedColumnName(const OUString& rComposedName, std::u16string_view rQuoteString)
{
- const sal_Int32 nQuoteLength = rQuoteString.getLength();
+ const size_t nQuoteLength = rQuoteString.size();
OUString sName = rComposedName.trim();
OUString sColumnName;
sal_Int32 nPos, nRPos = 0;
@@ -1499,7 +1539,7 @@ namespace
nRPos = sName.indexOf( rQuoteString, nPos + nQuoteLength );
if ( nRPos > nPos )
{
- if ( nRPos + nQuoteLength < sName.getLength() )
+ if ( static_cast<sal_Int32>(nRPos + nQuoteLength) < sName.getLength() )
{
nRPos += nQuoteLength; // -1 + 1 skip dot
}
@@ -1521,24 +1561,25 @@ namespace
OUString lcl_getCondition(const Sequence< Sequence< PropertyValue > >& filter,
const OPredicateInputController& i_aPredicateInputController,
const Reference< XNameAccess >& i_xSelectColumns,
- const OUString& rQuoteString)
+ std::u16string_view rQuoteString)
{
OUStringBuffer sRet;
- const Sequence< PropertyValue >* pOrIter = filter.getConstArray();
- const Sequence< PropertyValue >* pOrEnd = pOrIter + filter.getLength();
- while ( pOrIter != pOrEnd )
+ for (auto& rOr : filter)
{
- if ( pOrIter->hasElements() )
+ if (rOr.hasElements())
{
+ if (!sRet.isEmpty())
+ sRet.append(STR_OR);
sRet.append(L_BRACKET);
- const PropertyValue* pAndIter = pOrIter->getConstArray();
- const PropertyValue* pAndEnd = pAndIter + pOrIter->getLength();
- while ( pAndIter != pAndEnd )
+ OUStringBuffer sAnd;
+ for (auto& rAnd : rOr)
{
- sRet.append(pAndIter->Name);
+ if (!sAnd.isEmpty())
+ sAnd.append(STR_AND);
+ sAnd.append(rAnd.Name);
OUString sValue;
- pAndIter->Value >>= sValue;
- const OUString sColumnName = lcl_getDecomposedColumnName( pAndIter->Name, rQuoteString );
+ rAnd.Value >>= sValue;
+ const OUString sColumnName = lcl_getDecomposedColumnName( rAnd.Name, rQuoteString );
if ( i_xSelectColumns.is() && i_xSelectColumns->hasByName(sColumnName) )
{
Reference<XPropertySet> xColumn(i_xSelectColumns->getByName(sColumnName),UNO_QUERY);
@@ -1546,18 +1587,12 @@ namespace
}
else
{
- sValue = i_aPredicateInputController.getPredicateValueStr(pAndIter->Name,sValue);
+ sValue = i_aPredicateInputController.getPredicateValueStr(rAnd.Name,sValue);
}
- lcl_addFilterCriteria_throw(pAndIter->Handle,sValue,sRet);
- ++pAndIter;
- if ( pAndIter != pAndEnd )
- sRet.append(STR_AND);
+ lcl_addFilterCriteria_throw(rAnd.Handle, sValue, sAnd);
}
- sRet.append(R_BRACKET);
+ sRet.append(OUString::unacquired(sAnd) + R_BRACKET);
}
- ++pOrIter;
- if ( pOrIter != pOrEnd && !sRet.isEmpty() )
- sRet.append(STR_OR);
}
return sRet.makeStringAndClear();
}
@@ -1613,21 +1648,21 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
m_aCurrentColumns[SelectColumns]->getByName(aName) >>= xColumn;
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME),"Property REALNAME not available!");
OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_TABLENAME),"Property TABLENAME not available!");
- OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName("AggregateFunction"),"Property AggregateFunction not available!");
+ OSL_ENSURE(xColumn->getPropertySetInfo()->hasPropertyByName(u"AggregateFunction"_ustr),"Property AggregateFunction not available!");
OUString sRealName,sTableName;
xColumn->getPropertyValue(PROPERTY_REALNAME) >>= sRealName;
xColumn->getPropertyValue(PROPERTY_TABLENAME) >>= sTableName;
if(sTableName.indexOf('.') != -1)
{
- OUString aCatlog,aSchema,aTable;
- ::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatlog,aSchema,aTable,::dbtools::EComposeRule::InDataManipulation);
- sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
+ OUString aCatalog,aSchema,aTable;
+ ::dbtools::qualifiedNameComponents(m_xMetaData,sTableName,aCatalog,aSchema,aTable,::dbtools::EComposeRule::InDataManipulation);
+ sTableName = ::dbtools::composeTableName( m_xMetaData, aCatalog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
}
else
sTableName = ::dbtools::quoteName(aQuote,sTableName);
- if ( !::comphelper::getBOOL(xColumn->getPropertyValue("Function")) )
+ if ( !::comphelper::getBOOL(xColumn->getPropertyValue(u"Function"_ustr)) )
{
aSQL = sTableName + "." + ::dbtools::quoteName( aQuote, sRealName );
}
@@ -1647,7 +1682,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
if ( nType != DataType::BOOLEAN && DataType::BIT != nType )
{
- lcl_addFilterCriteria_throw(filterOperator,"",aSQL);
+ lcl_addFilterCriteria_throw(filterOperator,u"",aSQL);
}
switch(nType)
@@ -1665,7 +1700,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
const ::sal_Int64 nLength = xClob->length();
if ( sal_Int64(nLength + aSQL.getLength() + STR_LIKE.getLength() ) < sal_Int64(SAL_MAX_INT32) )
{
- aSQL.append("'").append(xClob->getSubString(1,static_cast<sal_Int32>(nLength))).append("'");
+ aSQL.append("'" + xClob->getSubString(1,static_cast<sal_Int32>(nLength)) + "'");
}
}
else
@@ -1686,12 +1721,8 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
aSQL.append( "\'" );
}
aSQL.append( "0x" );
- const sal_Int8* pBegin = aSeq.getConstArray();
- const sal_Int8* pEnd = pBegin + aSeq.getLength();
- for(;pBegin != pEnd;++pBegin)
- {
- aSQL.append( static_cast<sal_Int32>(*pBegin), 16 );
- }
+ for (sal_Int32 byte : aSeq)
+ aSQL.append(byte, 16);
if(nSearchable == ColumnSearch::CHAR)
aSQL.append( "\'" );
}
@@ -1716,7 +1747,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
sal_Int32 nFilterOp = filterOperator;
if ( filterOperator != SQLFilterOperator::SQLNULL && filterOperator != SQLFilterOperator::NOT_SQLNULL )
nFilterOp = SQLFilterOperator::SQLNULL;
- lcl_addFilterCriteria_throw(nFilterOp,"",aSQL);
+ lcl_addFilterCriteria_throw(nFilterOp,u"",aSQL);
}
// Attach filter
@@ -1726,7 +1757,7 @@ void OSingleSelectQueryComposer::setConditionByColumn( const Reference< XPropert
if ( !sFilter.isEmpty() && !aSQL.isEmpty() )
{
sFilter = L_BRACKET + sFilter + R_BRACKET +
- (andCriteria ? std::u16string_view(u"" STR_AND) : std::u16string_view(u"" STR_OR));
+ (andCriteria ? std::u16string_view(STR_AND) : std::u16string_view(STR_OR));
}
sFilter += aSQL;
diff --git a/dbaccess/source/core/api/StaticSet.cxx b/dbaccess/source/core/api/StaticSet.cxx
index 0a5bd2c2d5fe..57eea66f34cf 100644
--- a/dbaccess/source/core/api/StaticSet.cxx
+++ b/dbaccess/source/core/api/StaticSet.cxx
@@ -23,17 +23,14 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <connectivity/CommonTools.hxx>
#include <comphelper/types.hxx>
+#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
using namespace dbaccess;
using namespace connectivity;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
-using namespace ::osl;
void OStaticSet::fillValueRow(ORowSetRow& _rRow,sal_Int32 /*_nPosition*/)
{
@@ -43,7 +40,7 @@ void OStaticSet::fillValueRow(ORowSetRow& _rRow,sal_Int32 /*_nPosition*/)
// css::sdbcx::XRowLocate
Any OStaticSet::getBookmark()
{
- return makeAny(getRow());
+ return Any(getRow());
}
bool OStaticSet::moveToBookmark( const Any& bookmark )
@@ -80,7 +77,7 @@ bool OStaticSet::fetchRow()
m_aSet.push_back(new connectivity::ORowVector< connectivity::ORowSetValue >(m_xSetMetaData->getColumnCount()));
m_aSetIter = m_aSet.end() - 1;
(**m_aSetIter)[0] = getRow();
- OCacheSet::fillValueRow(*m_aSetIter,(**m_aSetIter)[0]);
+ OCacheSet::fillValueRow(*m_aSetIter,(**m_aSetIter)[0].getInt32());
}
else
m_bEnd = true;
@@ -99,7 +96,7 @@ void OStaticSet::fillAllRows()
m_aSet.push_back(pRow);
m_aSetIter = m_aSet.end() - 1;
(*pRow)[0] = getRow();
- OCacheSet::fillValueRow(pRow,(*pRow)[0]);
+ OCacheSet::fillValueRow(pRow,(*pRow)[0].getInt32());
}
m_bEnd = true;
}
@@ -193,7 +190,7 @@ bool OStaticSet::absolute( sal_Int32 row )
}
else if(row > 0)
{
- if(row >= static_cast<sal_Int32>(m_aSet.size()))
+ if(o3tl::make_unsigned(row) >= m_aSet.size())
{
if(!m_bEnd)
{
@@ -202,7 +199,7 @@ bool OStaticSet::absolute( sal_Int32 row )
bNext = fetchRow();
}
- if(row > static_cast<sal_Int32>(m_aSet.size()))
+ if(o3tl::make_unsigned(row) > m_aSet.size())
m_aSetIter = m_aSet.end(); // check again
else
m_aSetIter = m_aSet.begin() + row;
@@ -270,10 +267,7 @@ void OStaticSet::deleteRow(const ORowSetRow& _rDeleteRow ,const connectivity::OS
void OStaticSet::reset(const Reference< XResultSet> &_xDriverSet)
{
OCacheSet::construct(_xDriverSet, m_sRowSetFilter);
- {
- ORowSetMatrix t;
- m_aSet.swap(t);
- }
+ ORowSetMatrix().swap(m_aSet);
m_aSetIter = m_aSet.end();
m_bEnd = false;
m_aSet.emplace_back(nullptr); // this is the beforefirst record
diff --git a/dbaccess/source/core/api/TableDeco.cxx b/dbaccess/source/core/api/TableDeco.cxx
index 702723676c97..3d7d9c56b1a5 100644
--- a/dbaccess/source/core/api/TableDeco.cxx
+++ b/dbaccess/source/core/api/TableDeco.cxx
@@ -18,15 +18,14 @@
*/
#include <TableDeco.hxx>
-#include <apitools.hxx>
#include <definitioncolumn.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
#include <osl/diagnose.h>
#include <sal/log.hxx>
-#include <cppuhelper/typeprovider.hxx>
#include <comphelper/property.hxx>
#include <comphelper/servicehelper.hxx>
#include <com/sun/star/sdbc/SQLException.hpp>
@@ -311,7 +310,7 @@ void ODBTableDecorator::construct()
Reference<XPropertySetInfo> xInfo = xProp->getPropertySetInfo();
Sequence< Property > aTableProps = xInfo->getProperties();
- for (Property & prop : aTableProps)
+ for (Property & prop : asNonConstRange(aTableProps))
{
if (prop.Name == PROPERTY_CATALOGNAME)
prop.Handle = PROPERTY_ID_CATALOGNAME;
@@ -351,7 +350,24 @@ void ODBTableDecorator::construct()
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO1(ODBTableDecorator, "com.sun.star.sdb.dbaccess.ODBTableDecorator", SERVICE_SDBCX_TABLE)
+OUString SAL_CALL ODBTableDecorator::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.ODBTableDecorator"_ustr;
+ }
+sal_Bool SAL_CALL ODBTableDecorator::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL ODBTableDecorator::getSupportedServiceNames()
+{
+ return { SERVICE_SDBCX_TABLE };
+}
+
Any SAL_CALL ODBTableDecorator::queryInterface( const Type & rType )
{
@@ -451,8 +467,8 @@ OUString SAL_CALL ODBTableDecorator::getName()
sal_Int64 SAL_CALL ODBTableDecorator::getSomething( const Sequence< sal_Int8 >& rId )
{
- if (isUnoTunnelId<ODBTableDecorator>(rId))
- return reinterpret_cast<sal_Int64>(this);
+ if (comphelper::isUnoTunnelId<ODBTableDecorator>(rId))
+ return comphelper::getSomething_cast(this);
sal_Int64 nRet = 0;
Reference<XUnoTunnel> xTunnel(m_xTable,UNO_QUERY);
@@ -461,11 +477,10 @@ sal_Int64 SAL_CALL ODBTableDecorator::getSomething( const Sequence< sal_Int8 >&
return nRet;
}
-Sequence< sal_Int8 > ODBTableDecorator::getUnoTunnelId()
+const Sequence< sal_Int8 > & ODBTableDecorator::getUnoTunnelId()
{
- static ::cppu::OImplementationId implId;
-
- return implId.getImplementationId();
+ static const comphelper::UnoIdInit implId;
+ return implId.getSeq();
}
void ODBTableDecorator::fillPrivileges() const
@@ -534,11 +549,8 @@ void ODBTableDecorator::refreshColumns()
xNames = m_xTable->getColumns();
if(xNames.is())
{
- Sequence< OUString> aNames = xNames->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
- for(;pIter != pEnd;++pIter)
- aVector.push_back(*pIter);
+ const Sequence< OUString> aNames = xNames->getElementNames();
+ aVector.insert(aVector.end(), aNames.begin(), aNames.end());
}
}
if(!m_pColumns)
@@ -549,18 +561,18 @@ void ODBTableDecorator::refreshColumns()
m_xMetaData.is() && m_xMetaData->supportsAlterTableWithDropColumn());
pCol->setParent(*this);
- OContainerMediator* pMediator = new OContainerMediator( pCol, m_xColumnDefinitions );
+ rtl::Reference<OContainerMediator> pMediator = new OContainerMediator( pCol, m_xColumnDefinitions );
m_xColumnMediator = pMediator;
- pCol->setMediator( pMediator );
+ pCol->setMediator( pMediator.get() );
m_pColumns.reset(pCol);
}
else
m_pColumns->reFill(aVector);
}
-OColumn* ODBTableDecorator::createColumn(const OUString& _rName) const
+rtl::Reference<OColumn> ODBTableDecorator::createColumn(const OUString& _rName) const
{
- OColumn* pReturn = nullptr;
+ rtl::Reference<OColumn> pReturn;
Reference<XNameAccess> xNames;
if ( m_xTable.is() )
@@ -595,28 +607,27 @@ void ODBTableDecorator::columnDropped(const OUString& _sName)
Reference< XPropertySet > ODBTableDecorator::createColumnDescriptor()
{
- Reference<XDataDescriptorFactory> xNames;
- if(m_xTable.is())
- xNames.set(m_xTable->getColumns(),UNO_QUERY);
- Reference< XPropertySet > xRet;
- if ( xNames.is() )
- xRet = new OTableColumnDescriptorWrapper( xNames->createDataDescriptor(), false, true );
- return xRet;
+ if(!m_xTable.is())
+ return nullptr;
+ Reference<XDataDescriptorFactory> xNames(m_xTable->getColumns(),UNO_QUERY);
+ if ( !xNames.is() )
+ return nullptr;
+ return new OTableColumnDescriptorWrapper( xNames->createDataDescriptor(), false, true );
}
-void SAL_CALL ODBTableDecorator::acquire() throw()
+void SAL_CALL ODBTableDecorator::acquire() noexcept
{
OTableDescriptor_BASE::acquire();
}
-void SAL_CALL ODBTableDecorator::release() throw()
+void SAL_CALL ODBTableDecorator::release() noexcept
{
OTableDescriptor_BASE::release();
}
void SAL_CALL ODBTableDecorator::setName( const OUString& /*aName*/ )
{
- throwFunctionNotSupportedRuntimeException( "XNamed::setName", *this );
+ throwFunctionNotSupportedRuntimeException( u"XNamed::setName"_ustr, *this );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/api/View.cxx b/dbaccess/source/core/api/View.cxx
index c52c4885c757..efbbd8b412df 100644
--- a/dbaccess/source/core/api/View.cxx
+++ b/dbaccess/source/core/api/View.cxx
@@ -24,7 +24,7 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -52,7 +52,7 @@ namespace dbaccess
try
{
Reference<XMultiServiceFactory> xFac(_rxConnection,UNO_QUERY_THROW);
- m_xViewAccess.set(xFac->createInstance(lcl_getServiceNameForSetting(_rxConnection,"ViewAccessServiceName")),UNO_QUERY);
+ m_xViewAccess.set(xFac->createInstance(lcl_getServiceNameForSetting(_rxConnection,u"ViewAccessServiceName"_ustr)),UNO_QUERY);
}
catch(const Exception& )
{
@@ -85,13 +85,9 @@ namespace dbaccess
std::vector<Type> aOwnTypes;
aOwnTypes.reserve(aTypes.getLength());
- const Type* pIter = aTypes.getConstArray();
- const Type* pEnd = pIter + aTypes.getLength();
- for(;pIter != pEnd ;++pIter)
- {
- if( *pIter != aAlterType || m_xViewAccess.is() )
- aOwnTypes.push_back(*pIter);
- }
+ for (auto& type : aTypes)
+ if (m_xViewAccess || type != aAlterType)
+ aOwnTypes.push_back(type);
return Sequence< Type >(aOwnTypes.data(), aOwnTypes.size());
}
diff --git a/dbaccess/source/core/api/WrappedResultSet.cxx b/dbaccess/source/core/api/WrappedResultSet.cxx
index a0999e5f32aa..a4ad9f363cae 100644
--- a/dbaccess/source/core/api/WrappedResultSet.cxx
+++ b/dbaccess/source/core/api/WrappedResultSet.cxx
@@ -23,12 +23,8 @@
using namespace dbaccess;
using namespace ::connectivity;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
-using namespace ::osl;
void WrappedResultSet::construct(const Reference< XResultSet>& _xDriverSet,const OUString& i_sRowSetFilter)
{
@@ -49,7 +45,7 @@ Any WrappedResultSet::getBookmark()
{
return m_xRowLocate->getBookmark( );
}
- return makeAny(m_xDriverSet->getRow());
+ return Any(m_xDriverSet->getRow());
}
bool WrappedResultSet::moveToBookmark( const Any& bookmark )
@@ -122,56 +118,56 @@ void WrappedResultSet::updateColumn(sal_Int32 nPos, const Reference< XRowUpdate
break;
case DataType::CHAR:
case DataType::VARCHAR:
- _xParameter->updateString(nPos,_rValue);
+ _xParameter->updateString(nPos,_rValue.getString());
break;
case DataType::BIGINT:
if ( _rValue.isSigned() )
- _xParameter->updateLong(nPos,_rValue);
+ _xParameter->updateLong(nPos,_rValue.getLong());
else
- _xParameter->updateString(nPos,_rValue);
+ _xParameter->updateString(nPos,_rValue.getString());
break;
case DataType::BIT:
case DataType::BOOLEAN:
- _xParameter->updateBoolean(nPos,static_cast<bool>(_rValue));
+ _xParameter->updateBoolean(nPos,_rValue.getBool());
break;
case DataType::TINYINT:
if ( _rValue.isSigned() )
- _xParameter->updateByte(nPos,_rValue);
+ _xParameter->updateByte(nPos,_rValue.getInt8());
else
- _xParameter->updateShort(nPos,_rValue);
+ _xParameter->updateShort(nPos,_rValue.getInt16());
break;
case DataType::SMALLINT:
if ( _rValue.isSigned() )
- _xParameter->updateShort(nPos,_rValue);
+ _xParameter->updateShort(nPos,_rValue.getInt16());
else
- _xParameter->updateInt(nPos,_rValue);
+ _xParameter->updateInt(nPos,_rValue.getInt32());
break;
case DataType::INTEGER:
if ( _rValue.isSigned() )
- _xParameter->updateInt(nPos,_rValue);
+ _xParameter->updateInt(nPos,_rValue.getInt32());
else
- _xParameter->updateLong(nPos,_rValue);
+ _xParameter->updateLong(nPos,_rValue.getLong());
break;
case DataType::FLOAT:
- _xParameter->updateFloat(nPos,_rValue);
+ _xParameter->updateFloat(nPos,_rValue.getFloat());
break;
case DataType::DOUBLE:
case DataType::REAL:
- _xParameter->updateDouble(nPos,_rValue);
+ _xParameter->updateDouble(nPos,_rValue.getDouble());
break;
case DataType::DATE:
- _xParameter->updateDate(nPos,_rValue);
+ _xParameter->updateDate(nPos,_rValue.getDate());
break;
case DataType::TIME:
- _xParameter->updateTime(nPos,_rValue);
+ _xParameter->updateTime(nPos,_rValue.getTime());
break;
case DataType::TIMESTAMP:
- _xParameter->updateTimestamp(nPos,_rValue);
+ _xParameter->updateTimestamp(nPos,_rValue.getDateTime());
break;
case DataType::BINARY:
case DataType::VARBINARY:
case DataType::LONGVARBINARY:
- _xParameter->updateBytes(nPos,_rValue);
+ _xParameter->updateBytes(nPos,_rValue.getSequence());
break;
case DataType::BLOB:
case DataType::CLOB:
diff --git a/dbaccess/source/core/api/callablestatement.cxx b/dbaccess/source/core/api/callablestatement.cxx
index cfddeac19139..c03fe0aab96e 100644
--- a/dbaccess/source/core/api/callablestatement.cxx
+++ b/dbaccess/source/core/api/callablestatement.cxx
@@ -24,10 +24,7 @@
using namespace dbaccess;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
using namespace ::cppu;
using namespace ::osl;
@@ -58,12 +55,12 @@ Any OCallableStatement::queryInterface( const Type & rType )
return aIface;
}
-void OCallableStatement::acquire() throw ()
+void OCallableStatement::acquire() noexcept
{
OPreparedStatement::acquire();
}
-void OCallableStatement::release() throw ()
+void OCallableStatement::release() noexcept
{
OPreparedStatement::release();
}
@@ -71,7 +68,7 @@ void OCallableStatement::release() throw ()
// XServiceInfo
OUString OCallableStatement::getImplementationName( )
{
- return "com.sun.star.sdb.OCallableStatement";
+ return u"com.sun.star.sdb.OCallableStatement"_ustr;
}
Sequence< OUString > OCallableStatement::getSupportedServiceNames( )
@@ -84,7 +81,7 @@ void SAL_CALL OCallableStatement::registerOutParameter( sal_Int32 parameterIndex
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
Reference< XOutParameters >(m_xAggregateAsSet, UNO_QUERY_THROW)->registerOutParameter( parameterIndex, sqlType, typeName );
}
@@ -92,7 +89,7 @@ void SAL_CALL OCallableStatement::registerOutParameter( sal_Int32 parameterIndex
void SAL_CALL OCallableStatement::registerNumericOutParameter( sal_Int32 parameterIndex, sal_Int32 sqlType, sal_Int32 scale )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
Reference< XOutParameters >(m_xAggregateAsSet, UNO_QUERY_THROW)->registerNumericOutParameter( parameterIndex, sqlType, scale );
}
@@ -101,7 +98,7 @@ void SAL_CALL OCallableStatement::registerNumericOutParameter( sal_Int32 paramet
sal_Bool SAL_CALL OCallableStatement::wasNull( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->wasNull();
}
@@ -109,7 +106,7 @@ sal_Bool SAL_CALL OCallableStatement::wasNull( )
OUString SAL_CALL OCallableStatement::getString( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getString( columnIndex );
}
@@ -117,7 +114,7 @@ OUString SAL_CALL OCallableStatement::getString( sal_Int32 columnIndex )
sal_Bool SAL_CALL OCallableStatement::getBoolean( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getBoolean( columnIndex );
}
@@ -125,7 +122,7 @@ sal_Bool SAL_CALL OCallableStatement::getBoolean( sal_Int32 columnIndex )
sal_Int8 SAL_CALL OCallableStatement::getByte( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getByte( columnIndex );
}
@@ -133,63 +130,63 @@ sal_Int8 SAL_CALL OCallableStatement::getByte( sal_Int32 columnIndex )
sal_Int16 SAL_CALL OCallableStatement::getShort( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getShort( columnIndex );
}
sal_Int32 SAL_CALL OCallableStatement::getInt( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getInt( columnIndex );
}
sal_Int64 SAL_CALL OCallableStatement::getLong( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getLong( columnIndex );
}
float SAL_CALL OCallableStatement::getFloat( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getFloat( columnIndex );
}
double SAL_CALL OCallableStatement::getDouble( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getDouble( columnIndex );
}
Sequence< sal_Int8 > SAL_CALL OCallableStatement::getBytes( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getBytes( columnIndex );
}
css::util::Date SAL_CALL OCallableStatement::getDate( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getDate( columnIndex );
}
css::util::Time SAL_CALL OCallableStatement::getTime( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getTime( columnIndex );
}
css::util::DateTime SAL_CALL OCallableStatement::getTimestamp( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getTimestamp( columnIndex );
}
@@ -197,7 +194,7 @@ css::util::DateTime SAL_CALL OCallableStatement::getTimestamp( sal_Int32 columnI
Reference< css::io::XInputStream > SAL_CALL OCallableStatement::getBinaryStream( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getBinaryStream( columnIndex );
}
@@ -205,7 +202,7 @@ Reference< css::io::XInputStream > SAL_CALL OCallableStatement::getBinaryStream(
Reference< css::io::XInputStream > SAL_CALL OCallableStatement::getCharacterStream( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getCharacterStream( columnIndex );
}
@@ -213,7 +210,7 @@ Reference< css::io::XInputStream > SAL_CALL OCallableStatement::getCharacterStre
Any SAL_CALL OCallableStatement::getObject( sal_Int32 columnIndex, const Reference< css::container::XNameAccess >& typeMap )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getObject( columnIndex, typeMap );
}
@@ -221,28 +218,28 @@ Any SAL_CALL OCallableStatement::getObject( sal_Int32 columnIndex, const Referen
Reference< XRef > SAL_CALL OCallableStatement::getRef( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getRef( columnIndex );
}
Reference< XBlob > SAL_CALL OCallableStatement::getBlob( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getBlob( columnIndex );
}
Reference< XClob > SAL_CALL OCallableStatement::getClob( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getClob( columnIndex );
}
Reference< XArray > SAL_CALL OCallableStatement::getArray( sal_Int32 columnIndex )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XRow >(m_xAggregateAsSet, UNO_QUERY_THROW)->getArray( columnIndex );
}
diff --git a/dbaccess/source/core/api/column.cxx b/dbaccess/source/core/api/column.cxx
index 5bc70affbce0..e0775417c3dd 100644
--- a/dbaccess/source/core/api/column.cxx
+++ b/dbaccess/source/core/api/column.cxx
@@ -34,19 +34,16 @@
#include <connectivity/TTableHelper.hxx>
#include <connectivity/dbexception.hxx>
#include <cppuhelper/supportsservice.hxx>
+#include <utility>
#include <osl/diagnose.h>
using namespace dbaccess;
using namespace connectivity;
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::io;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::osl;
using namespace ::comphelper;
using namespace ::cppu;
@@ -81,7 +78,7 @@ IMPLEMENT_FORWARD_XINTERFACE2( OColumn, OColumnBase, ::comphelper::OPropertyCont
// css::lang::XServiceInfo
OUString OColumn::getImplementationName( )
{
- return "com.sun.star.sdb.OColumn";
+ return u"com.sun.star.sdb.OColumn"_ustr;
}
sal_Bool OColumn::supportsService( const OUString& _rServiceName )
@@ -147,7 +144,7 @@ OColumns::OColumns(::cppu::OWeakObject& _rParent,
}
OColumns::OColumns(::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex,
- const css::uno::Reference< css::container::XNameAccess >& _rxDrvColumns,
+ css::uno::Reference< css::container::XNameAccess > _xDrvColumns,
bool _bCaseSensitive,const std::vector< OUString> &_rVector,
IColumnFactory* _pColFactory,
::connectivity::sdbcx::IRefreshableColumns* _pRefresh,
@@ -156,7 +153,7 @@ OColumns::OColumns(::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex,
bool _bUseHardRef)
: OColumns_BASE(_rParent,_bCaseSensitive,_rMutex,_rVector,_bUseHardRef)
,m_pMediator(nullptr)
- ,m_xDrvColumns(_rxDrvColumns)
+ ,m_xDrvColumns(std::move(_xDrvColumns))
,m_pColFactoryImpl(_pColFactory)
,m_pRefreshColumns(_pRefresh)
,m_bInitialized(false)
@@ -172,7 +169,7 @@ OColumns::~OColumns()
// XServiceInfo
OUString OColumns::getImplementationName( )
{
- return "com.sun.star.sdb.OColumns";
+ return u"com.sun.star.sdb.OColumns"_ustr;
}
sal_Bool OColumns::supportsService( const OUString& _rServiceName )
@@ -189,7 +186,7 @@ void OColumns::append( const OUString& _rName, OColumn* _pColumn )
{
MutexGuard aGuard(m_rMutex);
- OSL_ENSURE( _pColumn, "OColumns::append: invalid column!" );
+ assert(_pColumn && "OColumns::append: invalid column!");
OSL_ENSURE( !m_pElements->exists( _rName ),"OColumns::append: Column already exists");
_pColumn->m_sName = _rName;
@@ -219,22 +216,21 @@ void OColumns::impl_refresh()
m_pRefreshColumns->refreshColumns();
}
-connectivity::sdbcx::ObjectType OColumns::createObject(const OUString& _rName)
+css::uno::Reference< css::beans::XPropertySet > OColumns::createObject(const OUString& _rName)
{
OSL_ENSURE(m_pColFactoryImpl, "OColumns::createObject: no column factory!");
- connectivity::sdbcx::ObjectType xRet;
+ rtl::Reference< OColumn > xRet;
if ( m_pColFactoryImpl )
{
xRet = m_pColFactoryImpl->createColumn(_rName);
- Reference<XChild> xChild(xRet,UNO_QUERY);
+ Reference<XChild> xChild(cppu::getXWeak(xRet.get()),UNO_QUERY);
if ( xChild.is() )
xChild->setParent(static_cast<XChild*>(static_cast<TXChild*>(this)));
}
- Reference<XPropertySet> xDest(xRet,UNO_QUERY);
- if ( m_pMediator && xDest.is() )
- m_pMediator->notifyElementCreated(_rName,xDest);
+ if ( m_pMediator && xRet.is() )
+ m_pMediator->notifyElementCreated(_rName, Reference<XPropertySet>(xRet));
return xRet;
}
@@ -283,21 +279,18 @@ Sequence< Type > SAL_CALL OColumns::getTypes( )
{
bool bAppendFound = false,bDropFound = false;
- sal_Int32 nSize = 0;
+ sal_Int32 nSize;
Type aAppendType = cppu::UnoType<XAppend>::get();
Type aDropType = cppu::UnoType<XDrop>::get();
if(m_xDrvColumns.is())
{
Reference<XTypeProvider> xTypes(m_xDrvColumns,UNO_QUERY);
- Sequence< Type > aTypes(xTypes->getTypes());
- const Type* pBegin = aTypes.getConstArray();
- const Type* pEnd = pBegin + aTypes.getLength();
- for (;pBegin != pEnd ; ++pBegin)
+ for (auto& type : xTypes->getTypes())
{
- if(aAppendType == *pBegin)
+ if (aAppendType == type)
bAppendFound = true;
- else if(aDropType == *pBegin)
+ else if (aDropType == type)
bDropFound = true;
}
nSize = (bDropFound ? (bAppendFound ? 0 : 1) : (bAppendFound ? 1 : 2));
@@ -315,25 +308,25 @@ Sequence< Type > SAL_CALL OColumns::getTypes( )
}
Sequence< Type > aTypes(::comphelper::concatSequences(OColumns_BASE::getTypes(),TXChild::getTypes()));
Sequence< Type > aRet(aTypes.getLength() - nSize);
+ auto* pRet = aRet.getArray();
- const Type* pBegin = aTypes.getConstArray();
- const Type* pEnd = pBegin + aTypes.getLength();
- for(sal_Int32 i=0;pBegin != pEnd ;++pBegin)
+ sal_Int32 i = 0;
+ for (auto& type : aTypes)
{
- if(*pBegin != aAppendType && *pBegin != aDropType)
- aRet.getArray()[i++] = *pBegin;
- else if(bDropFound && *pBegin == aDropType)
- aRet.getArray()[i++] = *pBegin;
- else if(bAppendFound && *pBegin == aAppendType)
- aRet.getArray()[i++] = *pBegin;
+ if (type != aAppendType && type != aDropType)
+ pRet[i++] = type;
+ else if (bDropFound && type == aDropType)
+ pRet[i++] = type;
+ else if (bAppendFound && type == aAppendType)
+ pRet[i++] = type;
}
return aRet;
}
// XAppend
-sdbcx::ObjectType OColumns::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
+css::uno::Reference< css::beans::XPropertySet > OColumns::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
- sdbcx::ObjectType xReturn;
+ css::uno::Reference< css::beans::XPropertySet > xReturn;
Reference< XAppend > xAppend( m_xDrvColumns, UNO_QUERY );
if ( xAppend.is() )
diff --git a/dbaccess/source/core/api/columnsettings.cxx b/dbaccess/source/core/api/columnsettings.cxx
index 3f62a5a691fe..505e0d36b98f 100644
--- a/dbaccess/source/core/api/columnsettings.cxx
+++ b/dbaccess/source/core/api/columnsettings.cxx
@@ -24,7 +24,7 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <comphelper/property.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -121,14 +121,14 @@ namespace dbaccess
};
const PropertyDescriptor aProps[] =
{
- { OUString(PROPERTY_ALIGN), PROPERTY_ID_ALIGN },
- { OUString(PROPERTY_NUMBERFORMAT), PROPERTY_ID_NUMBERFORMAT },
- { OUString(PROPERTY_RELATIVEPOSITION), PROPERTY_ID_RELATIVEPOSITION },
- { OUString(PROPERTY_WIDTH), PROPERTY_ID_WIDTH },
- { OUString(PROPERTY_HELPTEXT), PROPERTY_ID_HELPTEXT },
- { OUString(PROPERTY_CONTROLDEFAULT), PROPERTY_ID_CONTROLDEFAULT },
- { OUString(PROPERTY_CONTROLMODEL), PROPERTY_ID_CONTROLMODEL },
- { OUString(PROPERTY_HIDDEN), PROPERTY_ID_HIDDEN }
+ { PROPERTY_ALIGN, PROPERTY_ID_ALIGN },
+ { PROPERTY_NUMBERFORMAT, PROPERTY_ID_NUMBERFORMAT },
+ { PROPERTY_RELATIVEPOSITION, PROPERTY_ID_RELATIVEPOSITION },
+ { PROPERTY_WIDTH, PROPERTY_ID_WIDTH },
+ { PROPERTY_HELPTEXT, PROPERTY_ID_HELPTEXT },
+ { PROPERTY_CONTROLDEFAULT, PROPERTY_ID_CONTROLDEFAULT },
+ { PROPERTY_CONTROLMODEL, PROPERTY_ID_CONTROLMODEL },
+ { PROPERTY_HIDDEN, PROPERTY_ID_HIDDEN }
};
for (const auto & aProp : aProps)
diff --git a/dbaccess/source/core/api/datacolumn.cxx b/dbaccess/source/core/api/datacolumn.cxx
index c597a40649bf..041cbf5f4f03 100644
--- a/dbaccess/source/core/api/datacolumn.cxx
+++ b/dbaccess/source/core/api/datacolumn.cxx
@@ -25,12 +25,9 @@
using namespace dbaccess;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::osl;
-using namespace ::comphelper;
using namespace ::cppu;
@@ -78,7 +75,7 @@ Any SAL_CALL ODataColumn::queryInterface( const Type & _rType )
// XServiceInfo
OUString ODataColumn::getImplementationName( )
{
- return "com.sun.star.sdb.ODataColumn";
+ return u"com.sun.star.sdb.ODataColumn"_ustr;
}
Sequence< OUString > ODataColumn::getSupportedServiceNames( )
diff --git a/dbaccess/source/core/api/datacolumn.hxx b/dbaccess/source/core/api/datacolumn.hxx
index 5b5290dfcbe6..46512d94559c 100644
--- a/dbaccess/source/core/api/datacolumn.hxx
+++ b/dbaccess/source/core/api/datacolumn.hxx
@@ -51,8 +51,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override { OResultColumn::acquire(); }
- virtual void SAL_CALL release() throw() override { OResultColumn::release(); }
+ virtual void SAL_CALL acquire() noexcept override { OResultColumn::acquire(); }
+ virtual void SAL_CALL release() noexcept override { OResultColumn::release(); }
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
diff --git a/dbaccess/source/core/api/datasettings.cxx b/dbaccess/source/core/api/datasettings.cxx
index 28167184442f..f810f8669917 100644
--- a/dbaccess/source/core/api/datasettings.cxx
+++ b/dbaccess/source/core/api/datasettings.cxx
@@ -27,7 +27,6 @@
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::comphelper;
using namespace ::cppu;
@@ -95,7 +94,6 @@ void ODataSettings::registerPropertiesFor(ODataSettings_Base* _pItem)
ODataSettings::ODataSettings(OBroadcastHelper& _rBHelper,bool _bQuery)
:OPropertyStateContainer(_rBHelper)
- ,ODataSettings_Base()
,m_bQuery(_bQuery)
{
}
diff --git a/dbaccess/source/core/api/definitioncolumn.cxx b/dbaccess/source/core/api/definitioncolumn.cxx
index 7854a97f1816..49aa4c39e48c 100644
--- a/dbaccess/source/core/api/definitioncolumn.cxx
+++ b/dbaccess/source/core/api/definitioncolumn.cxx
@@ -19,8 +19,8 @@
#include <bitset>
-#include <apitools.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <definitioncolumn.hxx>
#include <sdbcoretools.hxx>
@@ -30,13 +30,13 @@
#include <comphelper/property.hxx>
#include <connectivity/dbtools.hxx>
#include <sal/log.hxx>
-#include <tools/diagnose_ex.h>
+#include <utility>
+#include <comphelper/diagnose_ex.hxx>
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::cppu;
using namespace ::comphelper;
@@ -84,12 +84,12 @@ IMPLEMENT_GET_IMPLEMENTATION_ID( OTableColumnDescriptor )
// css::lang::XServiceInfo
OUString OTableColumnDescriptor::getImplementationName( )
{
- return "com.sun.star.sdb.OTableColumnDescriptor";
+ return u"com.sun.star.sdb.OTableColumnDescriptor"_ustr;
}
Sequence< OUString > OTableColumnDescriptor::getSupportedServiceNames( )
{
- return { m_bActAsDescriptor? OUString(SERVICE_SDBCX_COLUMNDESCRIPTOR) : OUString(SERVICE_SDBCX_COLUMN),
+ return { m_bActAsDescriptor? SERVICE_SDBCX_COLUMNDESCRIPTOR : SERVICE_SDBCX_COLUMN,
SERVICE_SDB_COLUMNSETTINGS };
}
@@ -141,7 +141,7 @@ IMPLEMENT_GET_IMPLEMENTATION_ID( OTableColumn )
OUString OTableColumn::getImplementationName( )
{
- return "com.sun.star.sdb.OTableColumn";
+ return u"com.sun.star.sdb.OTableColumn"_ustr;
}
::cppu::IPropertyArrayHelper& SAL_CALL OTableColumn::getInfoHelper()
@@ -156,9 +156,9 @@ OUString OTableColumn::getImplementationName( )
// OQueryColumn
-OQueryColumn::OQueryColumn( const Reference< XPropertySet >& _rxParserColumn, const Reference< XConnection >& _rxConnection, const OUString &i_sLabel )
+OQueryColumn::OQueryColumn( const Reference< XPropertySet >& _rxParserColumn, const Reference< XConnection >& _rxConnection, OUString i_sLabel )
:OTableColumnDescriptor( false /* do not act as descriptor */ )
- ,m_sLabel(i_sLabel)
+ ,m_sLabel(std::move(i_sLabel))
{
const sal_Int32 nPropAttr = PropertyAttribute::READONLY;
registerProperty( PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME, nPropAttr, &m_sCatalogName, cppu::UnoType<decltype(m_sCatalogName)>::get() );
@@ -169,35 +169,35 @@ OQueryColumn::OQueryColumn( const Reference< XPropertySet >& _rxParserColumn, co
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_TYPENAME ) >>= m_aTypeName) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_TYPENAME);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_TYPENAME);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_ISNULLABLE ) >>= m_nIsNullable) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_ISNULLABLE);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_ISNULLABLE);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_PRECISION ) >>= m_nPrecision) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_PRECISION);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_PRECISION);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_SCALE ) >>= m_nScale) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_SCALE);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_SCALE);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_TYPE ) >>= m_nType) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_TYPE);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_TYPE);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_ISAUTOINCREMENT ) >>= m_bAutoIncrement) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_ISAUTOINCREMENT);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_ISAUTOINCREMENT);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_ISCURRENCY ) >>= m_bCurrency) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_ISCURRENCY);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_ISCURRENCY);
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_NAME ) >>= m_sName) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_NAME);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_NAME);
m_bRowVersion = false;
Reference< XPropertySetInfo > xPSI( _rxParserColumn->getPropertySetInfo(), UNO_SET_THROW );
if ( xPSI->hasPropertyByName( PROPERTY_DEFAULTVALUE ) )
if( ! (_rxParserColumn->getPropertyValue( PROPERTY_DEFAULTVALUE ) >>= m_aDefaultValue) )
- SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " PROPERTY_DEFAULTVALUE);
+ SAL_WARN("dbaccess.core", "OQueryColumn: unable to get property " + PROPERTY_DEFAULTVALUE);
// copy some optional properties from the parser column
struct PropertyDescriptor
@@ -207,10 +207,10 @@ OQueryColumn::OQueryColumn( const Reference< XPropertySet >& _rxParserColumn, co
};
const PropertyDescriptor aProps[] =
{
- { OUString(PROPERTY_CATALOGNAME), PROPERTY_ID_CATALOGNAME },
- { OUString(PROPERTY_SCHEMANAME), PROPERTY_ID_SCHEMANAME },
- { OUString(PROPERTY_TABLENAME), PROPERTY_ID_TABLENAME },
- { OUString(PROPERTY_REALNAME), PROPERTY_ID_REALNAME }
+ { PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME },
+ { PROPERTY_SCHEMANAME, PROPERTY_ID_SCHEMANAME },
+ { PROPERTY_TABLENAME, PROPERTY_ID_TABLENAME },
+ { PROPERTY_REALNAME, PROPERTY_ID_REALNAME }
};
for (const auto & aProp : aProps)
{
@@ -243,11 +243,11 @@ Reference< XPropertySet > OQueryColumn::impl_determineOriginalTableColumn( const
// respective properties
OUString sCatalog, sSchema, sTable;
if( ! (getPropertyValue( PROPERTY_CATALOGNAME ) >>= sCatalog) )
- SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " PROPERTY_CATALOGNAME);
+ SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " + PROPERTY_CATALOGNAME);
if( ! (getPropertyValue( PROPERTY_SCHEMANAME ) >>= sSchema) )
- SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " PROPERTY_SCHEMANAME);
+ SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " + PROPERTY_SCHEMANAME);
if( ! (getPropertyValue( PROPERTY_TABLENAME ) >>= sTable) )
- SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " PROPERTY_TABLENAME);
+ SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " + PROPERTY_TABLENAME);
if ( sCatalog.isEmpty() && sSchema.isEmpty() && sTable.isEmpty() )
return nullptr;
@@ -265,7 +265,7 @@ Reference< XPropertySet > OQueryColumn::impl_determineOriginalTableColumn( const
OUString sColumn;
if( ! (getPropertyValue( PROPERTY_REALNAME ) >>= sColumn) )
- SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " PROPERTY_REALNAME);
+ SAL_WARN("dbaccess.core", "impl_determineOriginalTableColumn: unable to get property " + PROPERTY_REALNAME);
if ( !xColumns->hasByName( sColumn ) )
return nullptr;
@@ -282,7 +282,7 @@ IMPLEMENT_GET_IMPLEMENTATION_ID( OQueryColumn )
OUString SAL_CALL OQueryColumn::getImplementationName( )
{
- return "org.openoffice.comp.dbaccess.OQueryColumn";
+ return u"org.openoffice.comp.dbaccess.OQueryColumn"_ustr;
}
::cppu::IPropertyArrayHelper& SAL_CALL OQueryColumn::getInfoHelper()
@@ -428,7 +428,7 @@ IMPLEMENT_GET_IMPLEMENTATION_ID( OTableColumnDescriptorWrapper )
// css::lang::XServiceInfo
OUString OTableColumnDescriptorWrapper::getImplementationName( )
{
- return "com.sun.star.sdb.OTableColumnDescriptorWrapper";
+ return u"com.sun.star.sdb.OTableColumnDescriptorWrapper"_ustr;
}
Sequence< OUString > OTableColumnDescriptorWrapper::getSupportedServiceNames( )
@@ -444,50 +444,52 @@ Sequence< OUString > OTableColumnDescriptorWrapper::getSupportedServiceNames( )
// Which optional properties are contained?
const sal_Int32 nHaveOptionally (std::bitset<7>(nId).count());
- BEGIN_PROPERTY_SEQUENCE( nHaveAlways + nHaveOptionally )
+ css::uno::Sequence< css::beans::Property> aDescriptor(nHaveAlways + nHaveOptionally);
+ css::beans::Property* pDesc = aDescriptor.getArray();
+ sal_Int32 nPos = 0;
- DECL_PROP0_BOOL( ISAUTOINCREMENT );
- DECL_PROP0_BOOL( ISCURRENCY );
- DECL_PROP0( ISNULLABLE, sal_Int32 );
- DECL_PROP0( PRECISION, sal_Int32 );
- DECL_PROP0( SCALE, sal_Int32 );
- DECL_PROP0( TYPE, sal_Int32 );
- DECL_PROP0( TYPENAME, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_ISAUTOINCREMENT, PROPERTY_ID_ISAUTOINCREMENT, cppu::UnoType<bool>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_ISCURRENCY, PROPERTY_ID_ISCURRENCY, cppu::UnoType<bool>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_ISNULLABLE, PROPERTY_ID_ISNULLABLE, cppu::UnoType<sal_Int32>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_PRECISION, PROPERTY_ID_PRECISION, cppu::UnoType<sal_Int32>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_SCALE, PROPERTY_ID_SCALE, cppu::UnoType<sal_Int32>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_TYPE, PROPERTY_ID_TYPE, cppu::UnoType<sal_Int32>::get(), 0);
+ pDesc[nPos++] = css::beans::Property(PROPERTY_TYPENAME, PROPERTY_ID_TYPENAME, cppu::UnoType<OUString >::get(), 0);
if ( nId & HAS_AUTOINCREMENT_CREATION )
{
- DECL_PROP1( AUTOINCREMENTCREATION, OUString, MAYBEVOID );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_AUTOINCREMENTCREATION, PROPERTY_ID_AUTOINCREMENTCREATION, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::MAYBEVOID );
}
if ( nId & HAS_DEFAULTVALUE )
{
- DECL_PROP0( DEFAULTVALUE, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_DEFAULTVALUE, PROPERTY_ID_DEFAULTVALUE, cppu::UnoType<OUString >::get(), 0);
}
if ( nId & HAS_DESCRIPTION )
{
- DECL_PROP0( DESCRIPTION, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_DESCRIPTION, PROPERTY_ID_DESCRIPTION, cppu::UnoType<OUString >::get(), 0);
}
if ( nId & HAS_ROWVERSION )
{
- DECL_PROP0_BOOL( ISROWVERSION );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_ISROWVERSION, PROPERTY_ID_ISROWVERSION, cppu::UnoType<bool>::get(), 0);
}
if ( nId & HAS_CATALOGNAME )
{
- DECL_PROP0( CATALOGNAME, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME, cppu::UnoType<OUString >::get(), 0);
}
if ( nId & HAS_SCHEMANAME )
{
- DECL_PROP0( SCHEMANAME, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_SCHEMANAME, PROPERTY_ID_SCHEMANAME, cppu::UnoType<OUString >::get(), 0);
}
if ( nId & HAS_TABLENAME )
{
- DECL_PROP0( TABLENAME, OUString );
+ pDesc[nPos++] = css::beans::Property(PROPERTY_TABLENAME, PROPERTY_ID_TABLENAME, cppu::UnoType<OUString >::get(), 0);
}
- END_PROPERTY_SEQUENCE()
+ OSL_ENSURE(nPos == aDescriptor.getLength(), "forgot to adjust the count ?");
if ( !m_bIsDescriptor )
{
- for ( auto & prop : aDescriptor )
+ for ( auto & prop : asNonConstRange(aDescriptor) )
{
prop.Attributes |= PropertyAttribute::READONLY;
}
@@ -586,7 +588,7 @@ IMPLEMENT_GET_IMPLEMENTATION_ID( OTableColumnWrapper )
OUString OTableColumnWrapper::getImplementationName( )
{
- return "com.sun.star.sdb.OTableColumnWrapper";
+ return u"com.sun.star.sdb.OTableColumnWrapper"_ustr;
}
Sequence< OUString > OTableColumnWrapper::getSupportedServiceNames( )
diff --git a/dbaccess/source/core/api/preparedstatement.cxx b/dbaccess/source/core/api/preparedstatement.cxx
index d65ea616d8c7..506da4908f44 100644
--- a/dbaccess/source/core/api/preparedstatement.cxx
+++ b/dbaccess/source/core/api/preparedstatement.cxx
@@ -28,13 +28,14 @@
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <preparedstatement.hxx>
+#include <strings.hxx>
#include "resultcolumn.hxx"
#include "resultset.hxx"
-#include <tools/diagnose_ex.h>
+#include <connection.hxx>
+#include <comphelper/diagnose_ex.hxx>
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::cppu;
@@ -42,7 +43,7 @@ using namespace ::osl;
using namespace dbaccess;
-OPreparedStatement::OPreparedStatement(const Reference< XConnection > & _xConn,
+OPreparedStatement::OPreparedStatement(const rtl::Reference< OConnection > & _xConn,
const Reference< XInterface > & _xStatement)
:OStatementBase(_xConn, _xStatement)
{
@@ -93,12 +94,12 @@ Any OPreparedStatement::queryInterface( const Type & rType )
return aIface;
}
-void OPreparedStatement::acquire() throw ()
+void OPreparedStatement::acquire() noexcept
{
OStatementBase::acquire();
}
-void OPreparedStatement::release() throw ()
+void OPreparedStatement::release() noexcept
{
OStatementBase::release();
}
@@ -106,7 +107,7 @@ void OPreparedStatement::release() throw ()
// XServiceInfo
OUString OPreparedStatement::getImplementationName( )
{
- return "com.sun.star.sdb.OPreparedStatement";
+ return u"com.sun.star.sdb.OPreparedStatement"_ustr;
}
sal_Bool OPreparedStatement::supportsService( const OUString& _rServiceName )
@@ -116,7 +117,7 @@ sal_Bool OPreparedStatement::supportsService( const OUString& _rServiceName )
Sequence< OUString > OPreparedStatement::getSupportedServiceNames( )
{
- return { SERVICE_SDBC_PREPAREDSTATEMENT, SERVICE_SDB_PREPAREDSTATMENT };
+ return { SERVICE_SDBC_PREPAREDSTATEMENT, SERVICE_SDB_PREPAREDSTATEMENT };
}
// OComponentHelper
@@ -134,7 +135,7 @@ void OPreparedStatement::disposing()
Reference< css::container::XNameAccess > OPreparedStatement::getColumns()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// do we have to populate the columns
if (!m_pColumns->isInitialized())
@@ -151,14 +152,14 @@ Reference< css::container::XNameAccess > OPreparedStatement::getColumns()
{
// retrieve the name of the column
OUString aName = xMetaData->getColumnName(i + 1);
- OResultColumn* pColumn = new OResultColumn(xMetaData, i + 1, xDBMeta);
+ rtl::Reference<OResultColumn> pColumn = new OResultColumn(xMetaData, i + 1, xDBMeta);
// don't silently assume that the name is unique - preparedStatement implementations
// are allowed to return duplicate names, but we are required to have
// unique column names
if ( m_pColumns->hasByName( aName ) )
aName = ::dbtools::createUniqueName( m_pColumns.get(), aName );
- m_pColumns->append(aName, pColumn);
+ m_pColumns->append(aName, pColumn.get());
}
}
catch (const SQLException& )
@@ -174,7 +175,7 @@ Reference< css::container::XNameAccess > OPreparedStatement::getColumns()
Reference< XResultSetMetaData > OPreparedStatement::getMetaData()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XResultSetMetaDataSupplier >( m_xAggregateAsSet, UNO_QUERY_THROW )->getMetaData();
}
@@ -182,18 +183,18 @@ Reference< XResultSetMetaData > OPreparedStatement::getMetaData()
Reference< XResultSet > OPreparedStatement::executeQuery()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
- Reference< XResultSet > xResultSet;
+ rtl::Reference< OResultSet > xResultSet;
Reference< XResultSet > xDrvResultSet = Reference< XPreparedStatement >( m_xAggregateAsSet, UNO_QUERY_THROW )->executeQuery();
if (xDrvResultSet.is())
{
xResultSet = new OResultSet(xDrvResultSet, *this, m_pColumns->isCaseSensitive());
// keep the resultset weak
- m_aResultSet = xResultSet;
+ m_xWeakResultSet = xResultSet.get();
}
return xResultSet;
}
@@ -201,7 +202,7 @@ Reference< XResultSet > OPreparedStatement::executeQuery()
sal_Int32 OPreparedStatement::executeUpdate()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
@@ -211,7 +212,7 @@ sal_Int32 OPreparedStatement::executeUpdate()
sal_Bool OPreparedStatement::execute()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
@@ -220,14 +221,14 @@ sal_Bool OPreparedStatement::execute()
Reference< XConnection > OPreparedStatement::getConnection()
{
- return Reference< XConnection > (m_xParent, UNO_QUERY);
+ return m_xParent.get();
}
// XParameters
void SAL_CALL OPreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 sqlType )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setNull(parameterIndex, sqlType);
}
@@ -235,7 +236,7 @@ void SAL_CALL OPreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 s
void SAL_CALL OPreparedStatement::setObjectNull( sal_Int32 parameterIndex, sal_Int32 sqlType, const OUString& typeName )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setObjectNull(parameterIndex, sqlType, typeName);
}
@@ -243,7 +244,7 @@ void SAL_CALL OPreparedStatement::setObjectNull( sal_Int32 parameterIndex, sal_I
void SAL_CALL OPreparedStatement::setBoolean( sal_Int32 parameterIndex, sal_Bool x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setBoolean(parameterIndex, x);
}
@@ -251,7 +252,7 @@ void SAL_CALL OPreparedStatement::setBoolean( sal_Int32 parameterIndex, sal_Bool
void SAL_CALL OPreparedStatement::setByte( sal_Int32 parameterIndex, sal_Int8 x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setByte(parameterIndex, x);
}
@@ -259,7 +260,7 @@ void SAL_CALL OPreparedStatement::setByte( sal_Int32 parameterIndex, sal_Int8 x
void SAL_CALL OPreparedStatement::setShort( sal_Int32 parameterIndex, sal_Int16 x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setShort(parameterIndex, x);
}
@@ -267,7 +268,7 @@ void SAL_CALL OPreparedStatement::setShort( sal_Int32 parameterIndex, sal_Int16
void SAL_CALL OPreparedStatement::setInt( sal_Int32 parameterIndex, sal_Int32 x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setInt(parameterIndex, x);
}
@@ -275,7 +276,7 @@ void SAL_CALL OPreparedStatement::setInt( sal_Int32 parameterIndex, sal_Int32 x
void SAL_CALL OPreparedStatement::setLong( sal_Int32 parameterIndex, sal_Int64 x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setLong(parameterIndex, x);
}
@@ -283,7 +284,7 @@ void SAL_CALL OPreparedStatement::setLong( sal_Int32 parameterIndex, sal_Int64 x
void SAL_CALL OPreparedStatement::setFloat( sal_Int32 parameterIndex, float x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setFloat(parameterIndex, x);
}
@@ -291,7 +292,7 @@ void SAL_CALL OPreparedStatement::setFloat( sal_Int32 parameterIndex, float x )
void SAL_CALL OPreparedStatement::setDouble( sal_Int32 parameterIndex, double x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setDouble(parameterIndex, x);
}
@@ -299,7 +300,7 @@ void SAL_CALL OPreparedStatement::setDouble( sal_Int32 parameterIndex, double x
void SAL_CALL OPreparedStatement::setString( sal_Int32 parameterIndex, const OUString& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setString(parameterIndex, x);
}
@@ -307,7 +308,7 @@ void SAL_CALL OPreparedStatement::setString( sal_Int32 parameterIndex, const OUS
void SAL_CALL OPreparedStatement::setBytes( sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setBytes(parameterIndex, x);
}
@@ -315,7 +316,7 @@ void SAL_CALL OPreparedStatement::setBytes( sal_Int32 parameterIndex, const Sequ
void SAL_CALL OPreparedStatement::setDate( sal_Int32 parameterIndex, const css::util::Date& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setDate(parameterIndex, x);
}
@@ -323,7 +324,7 @@ void SAL_CALL OPreparedStatement::setDate( sal_Int32 parameterIndex, const css::
void SAL_CALL OPreparedStatement::setTime( sal_Int32 parameterIndex, const css::util::Time& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setTime(parameterIndex, x);
}
@@ -331,7 +332,7 @@ void SAL_CALL OPreparedStatement::setTime( sal_Int32 parameterIndex, const css::
void SAL_CALL OPreparedStatement::setTimestamp( sal_Int32 parameterIndex, const css::util::DateTime& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setTimestamp(parameterIndex, x);
}
@@ -339,7 +340,7 @@ void SAL_CALL OPreparedStatement::setTimestamp( sal_Int32 parameterIndex, const
void SAL_CALL OPreparedStatement::setBinaryStream( sal_Int32 parameterIndex, const Reference< css::io::XInputStream >& x, sal_Int32 length )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setBinaryStream(parameterIndex, x, length);
}
@@ -347,7 +348,7 @@ void SAL_CALL OPreparedStatement::setBinaryStream( sal_Int32 parameterIndex, con
void SAL_CALL OPreparedStatement::setCharacterStream( sal_Int32 parameterIndex, const Reference< css::io::XInputStream >& x, sal_Int32 length )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setCharacterStream(parameterIndex, x, length);
}
@@ -355,7 +356,7 @@ void SAL_CALL OPreparedStatement::setCharacterStream( sal_Int32 parameterIndex,
void SAL_CALL OPreparedStatement::setObject( sal_Int32 parameterIndex, const Any& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setObject(parameterIndex, x);
}
@@ -363,7 +364,7 @@ void SAL_CALL OPreparedStatement::setObject( sal_Int32 parameterIndex, const Any
void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, const Any& x, sal_Int32 targetSqlType, sal_Int32 scale )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setObjectWithInfo(parameterIndex, x, targetSqlType, scale);
}
@@ -371,7 +372,7 @@ void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, c
void SAL_CALL OPreparedStatement::setRef( sal_Int32 parameterIndex, const Reference< XRef >& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setRef(parameterIndex, x);
}
@@ -379,7 +380,7 @@ void SAL_CALL OPreparedStatement::setRef( sal_Int32 parameterIndex, const Refere
void SAL_CALL OPreparedStatement::setBlob( sal_Int32 parameterIndex, const Reference< XBlob >& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setBlob(parameterIndex, x);
}
@@ -387,7 +388,7 @@ void SAL_CALL OPreparedStatement::setBlob( sal_Int32 parameterIndex, const Refer
void SAL_CALL OPreparedStatement::setClob( sal_Int32 parameterIndex, const Reference< XClob >& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setClob(parameterIndex, x);
}
@@ -395,7 +396,7 @@ void SAL_CALL OPreparedStatement::setClob( sal_Int32 parameterIndex, const Refer
void SAL_CALL OPreparedStatement::setArray( sal_Int32 parameterIndex, const Reference< XArray >& x )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->setArray(parameterIndex, x);
}
@@ -403,7 +404,7 @@ void SAL_CALL OPreparedStatement::setArray( sal_Int32 parameterIndex, const Refe
void SAL_CALL OPreparedStatement::clearParameters( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
m_xAggregateAsParameters->clearParameters();
}
diff --git a/dbaccess/source/core/api/query.cxx b/dbaccess/source/core/api/query.cxx
index 051c11148075..8d50eacde1ff 100644
--- a/dbaccess/source/core/api/query.cxx
+++ b/dbaccess/source/core/api/query.cxx
@@ -25,9 +25,9 @@
#include "HelperCollections.hxx"
#include <core_resource.hxx>
#include <strings.hrc>
+#include <strings.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <com/sun/star/sdbc/XConnection.hpp>
@@ -40,6 +40,7 @@
#include <definitioncolumn.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <ContainerMediator.hxx>
using namespace dbaccess;
@@ -48,7 +49,6 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::comphelper;
@@ -105,7 +105,15 @@ css::uno::Sequence<sal_Int8> OQuery::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES3(OQuery,OQueryDescriptor_Base,ODataSettings,OContentHelper);
+css::uno::Sequence< css::uno::Type > OQuery::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OQueryDescriptor_Base::getTypes( ),
+ ODataSettings::getTypes( ),
+ OContentHelper::getTypes( )
+ );
+}
+
IMPLEMENT_FORWARD_XINTERFACE3( OQuery,OContentHelper,OQueryDescriptor_Base,ODataSettings)
void OQuery::rebuildColumns()
@@ -173,11 +181,10 @@ void OQuery::rebuildColumns()
Reference<XPropertySet> xCommandColumn(xColumnDefinitions->getByName( rName ),UNO_QUERY);
xCommandColumn->getPropertyValue(PROPERTY_LABEL) >>= sLabel;
}
- OQueryColumn* pColumn = new OQueryColumn( xSource, m_xConnection, sLabel);
- Reference< XChild > xChild( *pColumn, UNO_QUERY_THROW );
- xChild->setParent( *this );
+ rtl::Reference<OQueryColumn> pColumn = new OQueryColumn( xSource, m_xConnection, sLabel);
+ pColumn->setParent( *this );
- implAppendColumn( rName, pColumn );
+ implAppendColumn( rName, pColumn.get() );
Reference< XPropertySet > xDest( *pColumn, UNO_QUERY_THROW );
if ( m_pColumnMediator.is() )
m_pColumnMediator->notifyElementCreated( rName, xDest );
@@ -205,7 +212,23 @@ void OQuery::rebuildColumns()
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO3(OQuery, "com.sun.star.sdb.dbaccess.OQuery", SERVICE_SDB_DATASETTINGS, SERVICE_SDB_QUERY, "com.sun.star.sdb.QueryDefinition")
+OUString SAL_CALL OQuery::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.OQuery"_ustr;
+ }
+sal_Bool SAL_CALL OQuery::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OQuery::getSupportedServiceNames( )
+{
+ return { SERVICE_SDB_DATASETTINGS, SERVICE_SDB_QUERY, u"com.sun.star.sdb.QueryDefinition"_ustr };
+}
// css::beans::XPropertyChangeListener
void SAL_CALL OQuery::propertyChange( const PropertyChangeEvent& _rSource )
@@ -309,7 +332,7 @@ Reference< XPropertySetInfo > SAL_CALL OQuery::getPropertySetInfo( )
return new ::cppu::OPropertyArrayHelper(aProps);
}
-OColumn* OQuery::createColumn(const OUString& /*_rName*/) const
+rtl::Reference<OColumn> OQuery::createColumn(const OUString& /*_rName*/) const
{
return nullptr;
}
@@ -351,7 +374,7 @@ void OQuery::registerProperties()
OUString OQuery::determineContentType() const
{
- return "application/vnd.org.openoffice.DatabaseQuery";
+ return u"application/vnd.org.openoffice.DatabaseQuery"_ustr;
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/api/query.hxx b/dbaccess/source/core/api/query.hxx
index 7c25dc43086f..fefcb94b47e7 100644
--- a/dbaccess/source/core/api/query.hxx
+++ b/dbaccess/source/core/api/query.hxx
@@ -131,7 +131,7 @@ public:
protected:
virtual void SAL_CALL disposing() override;
- virtual OColumn* createColumn(const OUString& _rName) const override;
+ virtual rtl::Reference<OColumn> createColumn(const OUString& _rName) const override;
virtual void rebuildColumns( ) override;
diff --git a/dbaccess/source/core/api/querycomposer.cxx b/dbaccess/source/core/api/querycomposer.cxx
index 043b0c083a17..68d59673e310 100644
--- a/dbaccess/source/core/api/querycomposer.cxx
+++ b/dbaccess/source/core/api/querycomposer.cxx
@@ -18,6 +18,7 @@
*/
#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdbc/ColumnSearch.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <comphelper/sequence.hxx>
@@ -26,6 +27,7 @@
#include <comphelper/types.hxx>
#include <com/sun/star/sdb/SQLFilterOperator.hpp>
#include <querycomposer.hxx>
+#include <strings.hxx>
#include <composertools.hxx>
#include <algorithm>
@@ -41,7 +43,6 @@ using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
using namespace ::cppu;
using namespace ::osl;
-using namespace ::utl;
OQueryComposer::OQueryComposer(const Reference< XConnection>& _xConnection)
@@ -86,7 +87,7 @@ Any SAL_CALL OQueryComposer::queryInterface( const Type & rType )
// XServiceInfo
OUString OQueryComposer::getImplementationName( )
{
- return "com.sun.star.sdb.dbaccess.OQueryComposer";
+ return u"com.sun.star.sdb.dbaccess.OQueryComposer"_ustr;
}
sal_Bool OQueryComposer::supportsService( const OUString& _rServiceName )
@@ -250,12 +251,12 @@ Reference< XIndexAccess > SAL_CALL OQueryComposer::getParameters( )
return Reference<XParametersSupplier>(m_xComposer,UNO_QUERY_THROW)->getParameters();
}
-void SAL_CALL OQueryComposer::acquire() throw()
+void SAL_CALL OQueryComposer::acquire() noexcept
{
OSubComponent::acquire();
}
-void SAL_CALL OQueryComposer::release() throw()
+void SAL_CALL OQueryComposer::release() noexcept
{
OSubComponent::release();
}
diff --git a/dbaccess/source/core/api/querycontainer.cxx b/dbaccess/source/core/api/querycontainer.cxx
index 27ecf51ef5c1..2b615a878468 100644
--- a/dbaccess/source/core/api/querycontainer.cxx
+++ b/dbaccess/source/core/api/querycontainer.cxx
@@ -19,6 +19,7 @@
#include <querycontainer.hxx>
#include "query.hxx"
+#include <strings.hxx>
#include <objectnameapproval.hxx>
#include <veto.hxx>
@@ -43,7 +44,6 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
using namespace ::osl;
@@ -78,13 +78,10 @@ void OQueryContainer::init()
// fill my structures
ODefinitionContainer_Impl& rDefinitions( getDefinitions() );
- Sequence< OUString > sDefinitionNames = m_xCommandDefinitions->getElementNames();
- const OUString* pDefinitionName = sDefinitionNames.getConstArray();
- const OUString* pEnd = pDefinitionName + sDefinitionNames.getLength();
- for ( ; pDefinitionName != pEnd; ++pDefinitionName )
+ for (auto& definitionName : m_xCommandDefinitions->getElementNames())
{
- rDefinitions.insert( *pDefinitionName, TContentPtr() );
- m_aDocuments.push_back(m_aDocumentMap.emplace( *pDefinitionName,Documents::mapped_type()).first);
+ rDefinitions.insert(definitionName, TContentPtr());
+ m_aDocuments.push_back(m_aDocumentMap.emplace(definitionName, Documents::mapped_type()).first);
}
setElementApproval( std::make_shared<ObjectNameApproval>( m_xConnection, ObjectNameApproval::TypeQuery ) );
@@ -131,7 +128,23 @@ void OQueryContainer::disposing()
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO2(OQueryContainer, "com.sun.star.sdb.dbaccess.OQueryContainer", SERVICE_SDBCX_CONTAINER, SERVICE_SDB_QUERIES)
+OUString SAL_CALL OQueryContainer::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.OQueryContainer"_ustr;
+ }
+sal_Bool SAL_CALL OQueryContainer::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OQueryContainer::getSupportedServiceNames()
+{
+ return { SERVICE_SDBCX_CONTAINER, SERVICE_SDB_QUERIES };
+}
// XDataDescriptorFactory
Reference< XPropertySet > SAL_CALL OQueryContainer::createDataDescriptor( )
@@ -179,7 +192,7 @@ void SAL_CALL OQueryContainer::appendByDescriptor( const Reference< XPropertySet
{
m_eDoingCurrently = AggregateAction::Inserting;
OAutoActionReset aAutoReset(*this);
- m_xCommandDefinitions->insertByName(sNewObjectName, makeAny(xCommandDefinitionPart));
+ m_xCommandDefinitions->insertByName(sNewObjectName, Any(xCommandDefinitionPart));
}
implAppend( sNewObjectName, xNewObject );
@@ -244,7 +257,7 @@ void SAL_CALL OQueryContainer::elementInserted( const css::container::ContainerE
// insert an own new element
xNewElement = implCreateWrapper(sElementName);
}
- insertByName(sElementName,makeAny(xNewElement));
+ insertByName(sElementName,Any(xNewElement));
}
void SAL_CALL OQueryContainer::elementRemoved( const css::container::ContainerEvent& _rEvent )
@@ -253,7 +266,7 @@ void SAL_CALL OQueryContainer::elementRemoved( const css::container::ContainerEv
_rEvent.Accessor >>= sAccessor;
{
OSL_ENSURE(!sAccessor.isEmpty(), "OQueryContainer::elementRemoved : invalid name !");
- OSL_ENSURE(m_aDocumentMap.find(sAccessor) != m_aDocumentMap.end(), "OQueryContainer::elementRemoved : oops... we're inconsistent with our master container !");
+ OSL_ENSURE(m_aDocumentMap.contains(sAccessor), "OQueryContainer::elementRemoved : oops... we're inconsistent with our master container !");
if ( sAccessor.isEmpty() || !hasByName(sAccessor) )
return;
}
@@ -269,14 +282,14 @@ void SAL_CALL OQueryContainer::elementReplaced( const css::container::ContainerE
{
MutexGuard aGuard(m_aMutex);
OSL_ENSURE(!sAccessor.isEmpty(), "OQueryContainer::elementReplaced : invalid name !");
- OSL_ENSURE(m_aDocumentMap.find(sAccessor) != m_aDocumentMap.end(), "OQueryContainer::elementReplaced : oops... we're inconsistent with our master container !");
+ OSL_ENSURE(m_aDocumentMap.contains(sAccessor), "OQueryContainer::elementReplaced : oops... we're inconsistent with our master container !");
if (sAccessor.isEmpty() || !hasByName(sAccessor))
return;
xNewElement = implCreateWrapper(sAccessor);
}
- replaceByName(sAccessor,makeAny(xNewElement));
+ replaceByName(sAccessor,Any(xNewElement));
}
Reference< XVeto > SAL_CALL OQueryContainer::approveInsertElement( const ContainerEvent& Event )
@@ -285,7 +298,7 @@ Reference< XVeto > SAL_CALL OQueryContainer::approveInsertElement( const Contain
OSL_VERIFY( Event.Accessor >>= sName );
Reference< XContent > xElement( Event.Element, UNO_QUERY_THROW );
- Reference< XVeto > xReturn;
+ rtl::Reference< Veto > xReturn;
try
{
getElementApproval()->approveElement( sName );
@@ -332,7 +345,7 @@ void SAL_CALL OQueryContainer::disposing( const css::lang::EventObject& _rSource
OUString OQueryContainer::determineContentType() const
{
- return "application/vnd.org.openoffice.DatabaseQueryContainer";
+ return u"application/vnd.org.openoffice.DatabaseQueryContainer"_ustr;
}
Reference< XContent > OQueryContainer::implCreateWrapper(const OUString& _rName)
@@ -344,7 +357,7 @@ Reference< XContent > OQueryContainer::implCreateWrapper(const OUString& _rName)
Reference< XContent > OQueryContainer::implCreateWrapper(const Reference< XContent >& _rxCommandDesc)
{
Reference<XNameContainer> xContainer(_rxCommandDesc,UNO_QUERY);
- Reference< XContent > xReturn;
+ rtl::Reference< OContentHelper > xReturn;
if ( xContainer .is() )
{
xReturn = create( xContainer, m_xConnection, m_aContext, m_pWarnings ).
@@ -352,7 +365,7 @@ Reference< XContent > OQueryContainer::implCreateWrapper(const Reference< XConte
}
else
{
- OQuery* pNewObject = new OQuery( Reference< XPropertySet >( _rxCommandDesc, UNO_QUERY ), m_xConnection, m_aContext );
+ rtl::Reference<OQuery> pNewObject = new OQuery( Reference< XPropertySet >( _rxCommandDesc, UNO_QUERY ), m_xConnection, m_aContext );
xReturn = pNewObject;
pNewObject->setWarningsContainer( m_pWarnings );
diff --git a/dbaccess/source/core/api/querydescriptor.cxx b/dbaccess/source/core/api/querydescriptor.cxx
index c52febb5db6c..116a132eb72d 100644
--- a/dbaccess/source/core/api/querydescriptor.cxx
+++ b/dbaccess/source/core/api/querydescriptor.cxx
@@ -18,19 +18,15 @@
*/
#include "querydescriptor.hxx"
-#include <apitools.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <comphelper/servicehelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <cppuhelper/typeprovider.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::awt;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::osl;
using namespace ::cppu;
@@ -64,7 +60,14 @@ css::uno::Sequence<sal_Int8> OQueryDescriptor::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES2(OQueryDescriptor,OQueryDescriptor_Base,ODataSettings);
+css::uno::Sequence< css::uno::Type > OQueryDescriptor::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OQueryDescriptor_Base::getTypes( ),
+ ODataSettings::getTypes( )
+ );
+}
+
IMPLEMENT_FORWARD_XINTERFACE3( OQueryDescriptor,OWeakObject,OQueryDescriptor_Base,ODataSettings)
void OQueryDescriptor::registerProperties()
@@ -138,25 +141,6 @@ OQueryDescriptor_Base::~OQueryDescriptor_Base()
m_pColumns->disposing();
}
-sal_Int64 SAL_CALL OQueryDescriptor_Base::getSomething( const Sequence< sal_Int8 >& _rIdentifier )
-{
- if (isUnoTunnelId<OQueryDescriptor_Base>(_rIdentifier))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
-}
-
-css::uno::Sequence<sal_Int8> OQueryDescriptor_Base::getUnoTunnelId()
-{
- static cppu::OImplementationId aId;
- return aId.getImplementationId();
-}
-
-css::uno::Sequence<sal_Int8> OQueryDescriptor_Base::getImplementationId()
-{
- return css::uno::Sequence<sal_Int8>();
-}
-
void OQueryDescriptor_Base::setColumnsOutOfDate( bool _bOutOfDate )
{
m_bColumnsOutOfDate = _bOutOfDate;
@@ -208,7 +192,7 @@ Reference< XNameAccess > SAL_CALL OQueryDescriptor_Base::getColumns( )
OUString SAL_CALL OQueryDescriptor_Base::getImplementationName( )
{
- return "com.sun.star.sdb.OQueryDescriptor";
+ return u"com.sun.star.sdb.OQueryDescriptor"_ustr;
}
sal_Bool SAL_CALL OQueryDescriptor_Base::supportsService( const OUString& _rServiceName )
@@ -255,7 +239,7 @@ void OQueryDescriptor_Base::refreshColumns()
rebuildColumns();
}
-OColumn* OQueryDescriptor_Base::createColumn( const OUString& /*_rName*/ ) const
+rtl::Reference<OColumn> OQueryDescriptor_Base::createColumn( const OUString& /*_rName*/ ) const
{
// creating a column/descriptor for a query/descriptor does not make sense at all
return nullptr;
diff --git a/dbaccess/source/core/api/querydescriptor.hxx b/dbaccess/source/core/api/querydescriptor.hxx
index 0266a82f1436..181b8e4d436d 100644
--- a/dbaccess/source/core/api/querydescriptor.hxx
+++ b/dbaccess/source/core/api/querydescriptor.hxx
@@ -19,13 +19,12 @@
#pragma once
-#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implbase2.hxx>
#include <comphelper/proparrhlp.hxx>
#include <osl/mutex.hxx>
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <apitools.hxx>
#include <column.hxx>
@@ -38,9 +37,8 @@ namespace dbaccess
{
// OQueryDescriptor_Base - a query descriptor (as the name suggests :)
-typedef ::cppu::ImplHelper3<
+typedef ::cppu::ImplHelper2<
css::sdbcx::XColumnsSupplier,
- css::lang::XUnoTunnel,
css::lang::XServiceInfo > OQueryDescriptor_BASE;
class OQueryDescriptor_Base
@@ -75,12 +73,6 @@ public:
// css::sdbcx::XColumnsSupplier
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getColumns( ) override;
-// css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- virtual css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId( ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
-
-
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
@@ -89,7 +81,7 @@ public:
protected:
// IColumnFactory
- virtual OColumn* createColumn(const OUString& _rName) const override;
+ virtual rtl::Reference<OColumn> createColumn(const OUString& _rName) const override;
virtual css::uno::Reference< css::beans::XPropertySet > createColumnDescriptor() override;
virtual void columnAppended( const css::uno::Reference< css::beans::XPropertySet >& _rxSourceDescriptor ) override;
virtual void columnDropped(const OUString& _sName) override;
diff --git a/dbaccess/source/core/api/resultcolumn.cxx b/dbaccess/source/core/api/resultcolumn.cxx
index afb2e3f574b5..45d722431bee 100644
--- a/dbaccess/source/core/api/resultcolumn.cxx
+++ b/dbaccess/source/core/api/resultcolumn.cxx
@@ -18,19 +18,18 @@
*/
#include "resultcolumn.hxx"
+#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/ColumnValue.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <stringconstants.hxx>
-#include <apitools.hxx>
+#include <strings.hxx>
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::container;
using namespace ::osl;
using namespace ::comphelper;
using namespace ::cppu;
@@ -67,7 +66,7 @@ void OResultColumn::impl_determineIsRowVersion_nothrow()
try
{
Reference< XResultSet > xVersionColumns = m_xDBMetaData->getVersionColumns(
- makeAny( sCatalog ), sSchema, sTable );
+ Any( sCatalog ), sSchema, sTable );
if ( xVersionColumns.is() ) // allowed to be NULL
{
Reference< XRow > xResultRow( xVersionColumns, UNO_QUERY_THROW );
@@ -104,7 +103,7 @@ Sequence< sal_Int8 > OResultColumn::getImplementationId()
// XServiceInfo
OUString OResultColumn::getImplementationName( )
{
- return "com.sun.star.sdb.OResultColumn";
+ return u"com.sun.star.sdb.OResultColumn"_ustr;
}
Sequence< OUString > OResultColumn::getSupportedServiceNames( )
@@ -124,29 +123,32 @@ void OResultColumn::disposing()
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* OResultColumn::createArrayHelper( ) const
{
- BEGIN_PROPERTY_HELPER(21)
- DECL_PROP1(CATALOGNAME, OUString, READONLY);
- DECL_PROP1(DISPLAYSIZE, sal_Int32, READONLY);
- DECL_PROP1_BOOL(ISAUTOINCREMENT, READONLY);
- DECL_PROP1_BOOL(ISCASESENSITIVE, READONLY);
- DECL_PROP1_BOOL(ISCURRENCY, READONLY);
- DECL_PROP1_BOOL(ISDEFINITELYWRITABLE, READONLY);
- DECL_PROP1(ISNULLABLE, sal_Int32, READONLY);
- DECL_PROP1_BOOL(ISREADONLY, READONLY);
- DECL_PROP1_BOOL(ISROWVERSION, READONLY);
- DECL_PROP1_BOOL(ISSEARCHABLE, READONLY);
- DECL_PROP1_BOOL(ISSIGNED, READONLY);
- DECL_PROP1_BOOL(ISWRITABLE, READONLY);
- DECL_PROP1(LABEL, OUString, READONLY);
- DECL_PROP1(NAME, OUString, READONLY);
- DECL_PROP1(PRECISION, sal_Int32, READONLY);
- DECL_PROP1(SCALE, sal_Int32, READONLY);
- DECL_PROP1(SCHEMANAME, OUString, READONLY);
- DECL_PROP1(SERVICENAME, OUString, READONLY);
- DECL_PROP1(TABLENAME, OUString, READONLY);
- DECL_PROP1(TYPE, sal_Int32, READONLY);
- DECL_PROP1(TYPENAME, OUString, READONLY);
- END_PROPERTY_HELPER();
+ return new ::cppu::OPropertyArrayHelper
+ {
+ {
+ { PROPERTY_CATALOGNAME, PROPERTY_ID_CATALOGNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_DISPLAYSIZE, PROPERTY_ID_DISPLAYSIZE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISAUTOINCREMENT, PROPERTY_ID_ISAUTOINCREMENT, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCASESENSITIVE, PROPERTY_ID_ISCASESENSITIVE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISCURRENCY, PROPERTY_ID_ISCURRENCY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISDEFINITELYWRITABLE, PROPERTY_ID_ISDEFINITELYWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISNULLABLE, PROPERTY_ID_ISNULLABLE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISREADONLY, PROPERTY_ID_ISREADONLY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISROWVERSION, PROPERTY_ID_ISROWVERSION, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSEARCHABLE, PROPERTY_ID_ISSEARCHABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISSIGNED, PROPERTY_ID_ISSIGNED, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_ISWRITABLE, PROPERTY_ID_ISWRITABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_LABEL, PROPERTY_ID_LABEL, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_NAME, PROPERTY_ID_NAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_PRECISION, PROPERTY_ID_PRECISION, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCALE, PROPERTY_ID_SCALE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SCHEMANAME, PROPERTY_ID_SCHEMANAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SERVICENAME, PROPERTY_ID_SERVICENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TABLENAME, PROPERTY_ID_TABLENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPE, PROPERTY_ID_TYPE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_TYPENAME, PROPERTY_ID_TYPENAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY }
+ }
+ };
}
// cppu::OPropertySetHelper
diff --git a/dbaccess/source/core/api/resultset.cxx b/dbaccess/source/core/api/resultset.cxx
index ee93aa42ac53..20840d3682d3 100644
--- a/dbaccess/source/core/api/resultset.cxx
+++ b/dbaccess/source/core/api/resultset.cxx
@@ -20,14 +20,15 @@
#include "resultset.hxx"
#include <sal/log.hxx>
#include <stringconstants.hxx>
-#include <apitools.hxx>
+#include <strings.hxx>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/sdbc/ResultSetType.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <comphelper/types.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include "datacolumn.hxx"
#include <connectivity/dbexception.hxx>
#include <connectivity/dbtools.hxx>
@@ -119,12 +120,12 @@ Any OResultSet::queryInterface( const Type & rType )
return aIface;
}
-void OResultSet::acquire() throw ()
+void OResultSet::acquire() noexcept
{
OResultSetBase::acquire();
}
-void OResultSet::release() throw ()
+void OResultSet::release() noexcept
{
OResultSetBase::release();
}
@@ -163,7 +164,7 @@ void OResultSet::close()
// XServiceInfo
OUString OResultSet::getImplementationName( )
{
- return "com.sun.star.sdb.OResultSet";
+ return u"com.sun.star.sdb.OResultSet"_ustr;
}
sal_Bool OResultSet::supportsService( const OUString& _rServiceName )
@@ -185,14 +186,17 @@ Reference< XPropertySetInfo > OResultSet::getPropertySetInfo()
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* OResultSet::createArrayHelper( ) const
{
- BEGIN_PROPERTY_HELPER(6)
- DECL_PROP1(CURSORNAME, OUString, READONLY);
- DECL_PROP0(FETCHDIRECTION, sal_Int32);
- DECL_PROP0(FETCHSIZE, sal_Int32);
- DECL_PROP1_BOOL(ISBOOKMARKABLE, READONLY);
- DECL_PROP1(RESULTSETCONCURRENCY, sal_Int32, READONLY);
- DECL_PROP1(RESULTSETTYPE, sal_Int32, READONLY);
- END_PROPERTY_HELPER();
+ return new ::cppu::OPropertyArrayHelper
+ {
+ {
+ { PROPERTY_CURSORNAME, PROPERTY_ID_CURSORNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_FETCHDIRECTION, PROPERTY_ID_FETCHDIRECTION, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_FETCHSIZE, PROPERTY_ID_FETCHSIZE, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_ISBOOKMARKABLE, PROPERTY_ID_ISBOOKMARKABLE, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_RESULTSETCONCURRENCY, PROPERTY_ID_RESULTSETCONCURRENCY, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_RESULTSETTYPE, PROPERTY_ID_RESULTSETTYPE, cppu::UnoType<sal_Int32>::get(), css::beans::PropertyAttribute::READONLY }
+ }
+ };
}
// cppu::OPropertySetHelper
@@ -330,7 +334,7 @@ Reference< css::container::XNameAccess > OResultSet::getColumns()
{
// retrieve the name of the column
OUString sName = xMetaData->getColumnName(i + 1);
- ODataColumn* pColumn = new ODataColumn(xMetaData, m_xDelegatorRow, m_xDelegatorRowUpdate, i + 1, xDBMetaData);
+ rtl::Reference<ODataColumn> pColumn = new ODataColumn(xMetaData, m_xDelegatorRow, m_xDelegatorRowUpdate, i + 1, xDBMetaData);
// don't silently assume that the name is unique - result set implementations
// are allowed to return duplicate names, but we are required to have
@@ -338,7 +342,7 @@ Reference< css::container::XNameAccess > OResultSet::getColumns()
if ( m_pColumns->hasByName( sName ) )
sName = ::dbtools::createUniqueName( m_pColumns.get(), sName );
- m_pColumns->append( sName, pColumn );
+ m_pColumns->append( sName, pColumn.get() );
}
}
catch ( const SQLException& )
@@ -978,13 +982,13 @@ void OResultSet::checkReadOnly() const
if ( ( m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
|| !m_xDelegatorResultSetUpdate.is()
)
- throwSQLException( "The result set is read-only.", StandardSQLState::GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
+ throwSQLException( u"The result set is read-only."_ustr, StandardSQLState::GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
}
void OResultSet::checkBookmarkable() const
{
if ( !m_bIsBookmarkable )
- throwSQLException( "The result set does not have bookmark support.", StandardSQLState::GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
+ throwSQLException( u"The result set does not have bookmark support."_ustr, StandardSQLState::GENERAL_ERROR, *const_cast< OResultSet* >( this ) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/api/resultset.hxx b/dbaccess/source/core/api/resultset.hxx
index 3334d8229937..b2da0f2483e5 100644
--- a/dbaccess/source/core/api/resultset.hxx
+++ b/dbaccess/source/core/api/resultset.hxx
@@ -86,8 +86,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
diff --git a/dbaccess/source/core/api/statement.cxx b/dbaccess/source/core/api/statement.cxx
index 812d91c64a47..0334802ab244 100644
--- a/dbaccess/source/core/api/statement.cxx
+++ b/dbaccess/source/core/api/statement.cxx
@@ -20,6 +20,8 @@
#include <statement.hxx>
#include "resultset.hxx"
#include <stringconstants.hxx>
+#include <strings.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <cppuhelper/queryinterface.hxx>
@@ -27,8 +29,9 @@
#include <cppuhelper/typeprovider.hxx>
#include <comphelper/property.hxx>
#include <comphelper/types.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <connectivity/dbexception.hxx>
+#include <connection.hxx>
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
@@ -41,10 +44,11 @@ using namespace dbaccess;
using namespace dbtools;
-OStatementBase::OStatementBase(const Reference< XConnection > & _xConn,
+OStatementBase::OStatementBase(const rtl::Reference< OConnection > & _xConn,
const Reference< XInterface > & _xStatement)
- :OSubComponent(m_aMutex, _xConn)
- ,OPropertySetHelper(OComponentHelper::rBHelper)
+ :WeakComponentImplHelper(m_aMutex)
+ ,OPropertySetHelper(WeakComponentImplHelper::rBHelper)
+ ,m_xParent(_xConn.get())
,m_bUseBookmarks( false )
,m_bEscapeProcessing( true )
@@ -66,7 +70,7 @@ Sequence< Type > OStatementBase::getTypes()
cppu::UnoType<XCloseable>::get(),
cppu::UnoType<XMultipleResults>::get(),
cppu::UnoType<css::util::XCancellable>::get(),
- OSubComponent::getTypes() );
+ ::cppu::WeakComponentImplHelper<>::getTypes() );
Reference< XGeneratedResultSet > xGRes(m_xAggregateAsSet, UNO_QUERY);
if ( xGRes.is() )
aTypes = OTypeCollection(cppu::UnoType<XGeneratedResultSet>::get(),aTypes.getTypes());
@@ -80,7 +84,7 @@ Sequence< Type > OStatementBase::getTypes()
// css::uno::XInterface
Any OStatementBase::queryInterface( const Type & rType )
{
- Any aIface = OSubComponent::queryInterface( rType );
+ Any aIface = ::cppu::WeakComponentImplHelper<>::queryInterface( rType );
if (!aIface.hasValue())
{
aIface = ::cppu::queryInterface(
@@ -106,23 +110,22 @@ Any OStatementBase::queryInterface( const Type & rType )
return aIface;
}
-void OStatementBase::acquire() throw ()
+void OStatementBase::acquire() noexcept
{
- OSubComponent::acquire();
+ ::cppu::WeakComponentImplHelper<>::acquire();
}
-void OStatementBase::release() throw ()
+void OStatementBase::release() noexcept
{
- OSubComponent::release();
+ ::cppu::WeakComponentImplHelper<>::release();
}
void OStatementBase::disposeResultSet()
{
// free the cursor if alive
- Reference< XComponent > xComp(m_aResultSet.get(), UNO_QUERY);
- if (xComp.is())
- xComp->dispose();
- m_aResultSet = nullptr;
+ if (auto xRes = m_xWeakResultSet.get())
+ xRes->dispose();
+ m_xWeakResultSet.clear();
}
// OComponentHelper
@@ -150,11 +153,14 @@ void OStatementBase::disposing()
catch(RuntimeException& )
{// don't care for anymore
}
+ catch (SQLException&)
+ {// don't care for anymore
+ }
}
m_xAggregateAsSet = nullptr;
// free the parent at last
- OSubComponent::disposing();
+ ::cppu::WeakComponentImplHelper<>::disposing();
}
// XCloseable
@@ -162,7 +168,7 @@ void OStatementBase::close()
{
{
MutexGuard aGuard( m_aMutex );
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
}
dispose();
}
@@ -176,18 +182,21 @@ Reference< XPropertySetInfo > OStatementBase::getPropertySetInfo()
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* OStatementBase::createArrayHelper( ) const
{
- BEGIN_PROPERTY_HELPER(10)
- DECL_PROP0(CURSORNAME, OUString);
- DECL_PROP0_BOOL(ESCAPE_PROCESSING);
- DECL_PROP0(FETCHDIRECTION, sal_Int32);
- DECL_PROP0(FETCHSIZE, sal_Int32);
- DECL_PROP0(MAXFIELDSIZE, sal_Int32);
- DECL_PROP0(MAXROWS, sal_Int32);
- DECL_PROP0(QUERYTIMEOUT, sal_Int32);
- DECL_PROP0(RESULTSETCONCURRENCY, sal_Int32);
- DECL_PROP0(RESULTSETTYPE, sal_Int32);
- DECL_PROP0_BOOL(USEBOOKMARKS);
- END_PROPERTY_HELPER();
+ return new ::cppu::OPropertyArrayHelper
+ {
+ {
+ { PROPERTY_CURSORNAME, PROPERTY_ID_CURSORNAME, cppu::UnoType<OUString>::get(), 0 },
+ { PROPERTY_ESCAPE_PROCESSING, PROPERTY_ID_ESCAPE_PROCESSING, cppu::UnoType<bool>::get(), 0 },
+ { PROPERTY_FETCHDIRECTION, PROPERTY_ID_FETCHDIRECTION, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_FETCHSIZE, PROPERTY_ID_FETCHSIZE, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_MAXFIELDSIZE, PROPERTY_ID_MAXFIELDSIZE, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_MAXROWS, PROPERTY_ID_MAXROWS, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_QUERYTIMEOUT, PROPERTY_ID_QUERYTIMEOUT, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_RESULTSETCONCURRENCY, PROPERTY_ID_RESULTSETCONCURRENCY, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_RESULTSETTYPE, PROPERTY_ID_RESULTSETTYPE, cppu::UnoType<sal_Int32>::get(), 0 },
+ { PROPERTY_USEBOOKMARKS, PROPERTY_ID_USEBOOKMARKS, cppu::UnoType<bool>::get(), 0 }
+ }
+ };
}
// cppu::OPropertySetHelper
@@ -220,7 +229,7 @@ sal_Bool OStatementBase::convertFastPropertyValue(Any & rConvertedValue, Any & r
Any aCurrentValue = m_xAggregateAsSet->getPropertyValue( sPropName );
if ( aCurrentValue != rValue )
{
- rOldValue = aCurrentValue;
+ rOldValue = std::move(aCurrentValue);
rConvertedValue = rValue;
bModified = true;
}
@@ -288,7 +297,7 @@ void OStatementBase::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) cons
Any OStatementBase::getWarnings()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
return Reference< XWarningsSupplier >(m_xAggregateAsSet, UNO_QUERY_THROW)->getWarnings();
}
@@ -296,7 +305,7 @@ Any OStatementBase::getWarnings()
void OStatementBase::clearWarnings()
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
Reference< XWarningsSupplier >(m_xAggregateAsSet, UNO_QUERY_THROW)->clearWarnings();
}
@@ -315,7 +324,7 @@ void OStatementBase::cancel()
Reference< XResultSet > SAL_CALL OStatementBase::getResultSet( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -328,7 +337,7 @@ Reference< XResultSet > SAL_CALL OStatementBase::getResultSet( )
sal_Int32 SAL_CALL OStatementBase::getUpdateCount( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -341,7 +350,7 @@ sal_Int32 SAL_CALL OStatementBase::getUpdateCount( )
sal_Bool SAL_CALL OStatementBase::getMoreResults( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -358,7 +367,7 @@ sal_Bool SAL_CALL OStatementBase::getMoreResults( )
void SAL_CALL OStatementBase::addBatch( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -371,7 +380,7 @@ void SAL_CALL OStatementBase::addBatch( )
void SAL_CALL OStatementBase::clearBatch( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -384,7 +393,7 @@ void SAL_CALL OStatementBase::clearBatch( )
Sequence< sal_Int32 > SAL_CALL OStatementBase::executeBatch( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -400,7 +409,7 @@ Sequence< sal_Int32 > SAL_CALL OStatementBase::executeBatch( )
Reference< XResultSet > SAL_CALL OStatementBase::getGeneratedValues( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
Reference< XGeneratedResultSet > xGRes(m_xAggregateAsSet, UNO_QUERY);
if ( xGRes.is() )
@@ -411,7 +420,7 @@ Reference< XResultSet > SAL_CALL OStatementBase::getGeneratedValues( )
// OStatement
-OStatement::OStatement( const Reference< XConnection >& _xConn, const Reference< XInterface > & _xStatement )
+OStatement::OStatement( const rtl::Reference< OConnection >& _xConn, const Reference< XInterface > & _xStatement )
:OStatementBase( _xConn, _xStatement )
,m_bAttemptedComposerCreation( false )
{
@@ -424,7 +433,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( OStatement, OStatementBase, OStatement_IFACE )
// XServiceInfo
OUString OStatement::getImplementationName( )
{
- return "com.sun.star.sdb.OStatement";
+ return u"com.sun.star.sdb.OStatement"_ustr;
}
sal_Bool OStatement::supportsService( const OUString& _rServiceName )
@@ -441,10 +450,10 @@ Sequence< OUString > OStatement::getSupportedServiceNames( )
Reference< XResultSet > OStatement::executeQuery( const OUString& _rSQL )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
- Reference< XResultSet > xResultSet;
+ rtl::Reference< OResultSet > xResultSet;
OUString sSQL( impl_doEscapeProcessing_nothrow( _rSQL ) );
@@ -458,7 +467,7 @@ Reference< XResultSet > OStatement::executeQuery( const OUString& _rSQL )
xResultSet = new OResultSet( xInnerResultSet, *this, bCaseSensitive );
// keep the resultset weak
- m_aResultSet = xResultSet;
+ m_xWeakResultSet = xResultSet.get();
}
return xResultSet;
@@ -467,7 +476,7 @@ Reference< XResultSet > OStatement::executeQuery( const OUString& _rSQL )
sal_Int32 OStatement::executeUpdate( const OUString& _rSQL )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
@@ -478,7 +487,7 @@ sal_Int32 OStatement::executeUpdate( const OUString& _rSQL )
sal_Bool OStatement::execute( const OUString& _rSQL )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
disposeResultSet();
@@ -489,7 +498,7 @@ sal_Bool OStatement::execute( const OUString& _rSQL )
void OStatement::addBatch( const OUString& _rSQL )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
@@ -503,7 +512,7 @@ void OStatement::addBatch( const OUString& _rSQL )
void OStatement::clearBatch( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
if (!xMeta.is() || !xMeta->supportsBatchUpdates())
@@ -515,7 +524,7 @@ void OStatement::clearBatch( )
Sequence< sal_Int32 > OStatement::executeBatch( )
{
MutexGuard aGuard(m_aMutex);
- ::connectivity::checkDisposed(OComponentHelper::rBHelper.bDisposed);
+ ::connectivity::checkDisposed(WeakComponentImplHelper::rBHelper.bDisposed);
// first check the meta data
Reference<XDatabaseMetaData> xMeta = Reference< XConnection > (m_xParent, UNO_QUERY_THROW)->getMetaData();
if (!xMeta.is() || !xMeta->supportsBatchUpdates())
@@ -526,7 +535,7 @@ Sequence< sal_Int32 > OStatement::executeBatch( )
Reference< XConnection > OStatement::getConnection()
{
- return Reference< XConnection >( m_xParent, UNO_QUERY );
+ return m_xParent.get();
}
void SAL_CALL OStatement::disposing()
diff --git a/dbaccess/source/core/api/table.cxx b/dbaccess/source/core/api/table.cxx
index 1fb27cd87fea..2ba0dda7bc32 100644
--- a/dbaccess/source/core/api/table.cxx
+++ b/dbaccess/source/core/api/table.cxx
@@ -17,20 +17,18 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <apitools.hxx>
#include <table.hxx>
#include <definitioncolumn.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
#include "CIndexes.hxx"
#include <osl/diagnose.h>
-#include <cppuhelper/typeprovider.hxx>
#include <comphelper/servicehelper.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
-#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/sdb/tools/XTableRename.hpp>
#include <com/sun/star/sdb/tools/XTableAlteration.hpp>
@@ -42,7 +40,6 @@
using namespace dbaccess;
using namespace connectivity;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
@@ -85,10 +82,8 @@ ODBTable::~ODBTable()
{
}
-OColumn* ODBTable::createColumn(const OUString& _rName) const
+rtl::Reference<OColumn> ODBTable::createColumn(const OUString& _rName) const
{
- OColumn* pReturn = nullptr;
-
Reference<XPropertySet> xProp;
if ( m_xDriverColumns.is() && m_xDriverColumns->hasByName(_rName) )
{
@@ -97,15 +92,13 @@ OColumn* ODBTable::createColumn(const OUString& _rName) const
else
{
OColumns* pColumns = static_cast<OColumns*>(m_xColumns.get());
- xProp.set(pColumns->createBaseObject(_rName),UNO_QUERY);
+ xProp = pColumns->createBaseObject(_rName);
}
Reference<XPropertySet> xColumnDefinition;
if ( m_xColumnDefinitions.is() && m_xColumnDefinitions->hasByName(_rName) )
xColumnDefinition.set(m_xColumnDefinitions->getByName(_rName),UNO_QUERY);
- pReturn = new OTableColumnWrapper( xProp, xColumnDefinition, false );
-
- return pReturn;
+ return new OTableColumnWrapper( xProp, xColumnDefinition, false );
}
void ODBTable::columnAppended( const Reference< XPropertySet >& /*_rxSourceDescriptor*/ )
@@ -216,7 +209,7 @@ void ODBTable::construct()
describeProperties(aProps);
if(!_nId)
{
- for(Property & prop : aProps)
+ for(Property & prop : asNonConstRange(aProps))
{
if (prop.Name == PROPERTY_CATALOGNAME)
prop.Attributes = PropertyAttribute::READONLY;
@@ -238,7 +231,24 @@ void ODBTable::construct()
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO1(ODBTable, "com.sun.star.sdb.dbaccess.ODBTable", SERVICE_SDBCX_TABLE)
+OUString SAL_CALL ODBTable::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.ODBTable"_ustr;
+ }
+sal_Bool SAL_CALL ODBTable::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL ODBTable::getSupportedServiceNames()
+{
+ return { SERVICE_SDBCX_TABLE };
+}
+
Any SAL_CALL ODBTable::queryInterface( const Type & rType )
{
@@ -258,12 +268,10 @@ Sequence< Type > SAL_CALL ODBTable::getTypes( )
std::vector<Type> aOwnTypes;
aOwnTypes.reserve(aTypes.getLength());
- const Type* pIter = aTypes.getConstArray();
- const Type* pEnd = pIter + aTypes.getLength();
- for(;pIter != pEnd ;++pIter)
+ for (auto& type : aTypes)
{
- if( (*pIter != aRenameType || getRenameService().is()) && (*pIter != aAlterType || getAlterService().is()))
- aOwnTypes.push_back(*pIter);
+ if( (type != aRenameType || getRenameService().is()) && (type != aAlterType || getAlterService().is()))
+ aOwnTypes.push_back(type);
}
return Sequence< Type >(aOwnTypes.data(), aOwnTypes.size());
@@ -298,24 +306,6 @@ void SAL_CALL ODBTable::alterColumnByName( const OUString& _rName, const Referen
m_xColumns->refresh();
}
-sal_Int64 SAL_CALL ODBTable::getSomething( const Sequence< sal_Int8 >& rId )
-{
- sal_Int64 nRet(0);
- if (isUnoTunnelId<ODBTable>(rId))
- nRet = reinterpret_cast<sal_Int64>(this);
- else
- nRet = OTable_Base::getSomething(rId);
-
- return nRet;
-}
-
-Sequence< sal_Int8 > ODBTable::getUnoTunnelId()
-{
- static ::cppu::OImplementationId s_Id;
-
- return s_Id.getImplementationId();
-}
-
Reference< XPropertySet > ODBTable::createColumnDescriptor()
{
return new OTableColumnDescriptor( true );
diff --git a/dbaccess/source/core/api/tablecontainer.cxx b/dbaccess/source/core/api/tablecontainer.cxx
index 443e78a67de7..841fc46d46b3 100644
--- a/dbaccess/source/core/api/tablecontainer.cxx
+++ b/dbaccess/source/core/api/tablecontainer.cxx
@@ -17,14 +17,13 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <apitools.hxx>
#include <tablecontainer.hxx>
#include <table.hxx>
-#include <sal/log.hxx>
#include <comphelper/property.hxx>
#include <comphelper/processfactory.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
+#include <strings.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/PropertyState.hpp>
#include <com/sun/star/beans/XPropertyState.hpp>
@@ -41,7 +40,7 @@
#include <sdbcoretools.hxx>
#include <ContainerMediator.hxx>
#include <objectnameapproval.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
using namespace dbaccess;
using namespace dbtools;
@@ -52,7 +51,6 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::osl;
using namespace ::comphelper;
using namespace ::cppu;
@@ -63,26 +61,22 @@ namespace
bool lcl_isPropertySetDefaulted(const Sequence< OUString>& _aNames,const Reference<XPropertySet>& _xProp)
{
Reference<XPropertyState> xState(_xProp,UNO_QUERY);
- if ( xState.is() )
+ if ( !xState )
+ return false;
+ for (auto& name : _aNames)
{
- const OUString* pIter = _aNames.getConstArray();
- const OUString* pEnd = pIter + _aNames.getLength();
- for(;pIter != pEnd;++pIter)
+ try
{
- try
- {
- PropertyState aState = xState->getPropertyState(*pIter);
- if ( aState != PropertyState_DEFAULT_VALUE )
- break;
- }
- catch(const Exception&)
- {
- TOOLS_WARN_EXCEPTION("dbaccess", "" );
- }
+ PropertyState aState = xState->getPropertyState(name);
+ if ( aState != PropertyState_DEFAULT_VALUE )
+ return false;
+ }
+ catch(const Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("dbaccess", "" );
}
- return ( pIter == pEnd );
}
- return false;
+ return true;
}
}
@@ -124,7 +118,24 @@ OUString OTableContainer::getTableTypeRestriction() const
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO2(OTableContainer, "com.sun.star.sdb.dbaccess.OTableContainer", SERVICE_SDBCX_CONTAINER, SERVICE_SDBCX_TABLES)
+OUString SAL_CALL OTableContainer::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.OTableContainer"_ustr;
+ }
+sal_Bool SAL_CALL OTableContainer::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OTableContainer::getSupportedServiceNames()
+{
+ return { SERVICE_SDBCX_CONTAINER, SERVICE_SDBCX_TABLES };
+}
+
namespace
{
@@ -142,7 +153,7 @@ void lcl_createDefinitionObject(const OUString& _rName
{
// set as folder
_xTableDefinition = TableDefinition::createWithName( ::comphelper::getProcessComponentContext(), _rName );
- _xTableDefinitions->insertByName(_rName,makeAny(_xTableDefinition));
+ _xTableDefinitions->insertByName(_rName,Any(_xTableDefinition));
}
Reference<XColumnsSupplier> xColumnsSupplier(_xTableDefinition,UNO_QUERY);
if ( xColumnsSupplier.is() )
@@ -151,13 +162,13 @@ void lcl_createDefinitionObject(const OUString& _rName
}
-connectivity::sdbcx::ObjectType OTableContainer::createObject(const OUString& _rName)
+css::uno::Reference< css::beans::XPropertySet > OTableContainer::createObject(const OUString& _rName)
{
Reference<XColumnsSupplier > xSup;
if(m_xMasterContainer.is() && m_xMasterContainer->hasByName(_rName))
xSup.set(m_xMasterContainer->getByName(_rName),UNO_QUERY);
- connectivity::sdbcx::ObjectType xRet;
+ css::uno::Reference< css::beans::XPropertySet > xRet;
if ( m_xMetaData.is() )
{
Reference<XPropertySet> xTableDefinition;
@@ -166,7 +177,7 @@ connectivity::sdbcx::ObjectType OTableContainer::createObject(const OUString& _r
if ( xSup.is() )
{
- ODBTableDecorator* pTable = new ODBTableDecorator( m_xConnection, xSup, ::dbtools::getNumberFormats( m_xConnection ) ,xColumnDefinitions);
+ rtl::Reference<ODBTableDecorator> pTable = new ODBTableDecorator( m_xConnection, xSup, ::dbtools::getNumberFormats( m_xConnection ) ,xColumnDefinitions);
xRet = pTable;
pTable->construct();
}
@@ -199,7 +210,7 @@ connectivity::sdbcx::ObjectType OTableContainer::createObject(const OUString& _r
}
}
::comphelper::disposeComponent(xRes);
- ODBTable* pTable = new ODBTable(this
+ rtl::Reference<ODBTable> pTable = new ODBTable(this
,m_xConnection
,sCatalog
,sSchema
@@ -210,13 +221,13 @@ connectivity::sdbcx::ObjectType OTableContainer::createObject(const OUString& _r
xRet = pTable;
pTable->construct();
}
- Reference<XPropertySet> xDest(xRet,UNO_QUERY);
+ Reference<XPropertySet> xDest(xRet);
if ( xTableDefinition.is() )
::comphelper::copyProperties(xTableDefinition,xDest);
if ( !m_pTableMediator.is() )
m_pTableMediator = new OContainerMediator(
- this, m_xTableDefinitions.get() );
+ this, m_xTableDefinitions );
if ( m_pTableMediator.is() )
m_pTableMediator->notifyElementCreated(_rName,xDest);
}
@@ -235,13 +246,13 @@ Reference< XPropertySet > OTableContainer::createDescriptor()
if ( xDataFactory.is() && m_xMetaData.is() )
{
xMasterColumnsSup.set( xDataFactory->createDataDescriptor(), UNO_QUERY );
- ODBTableDecorator* pTable = new ODBTableDecorator( m_xConnection, xMasterColumnsSup, ::dbtools::getNumberFormats( m_xConnection ) ,nullptr);
+ rtl::Reference<ODBTableDecorator> pTable = new ODBTableDecorator( m_xConnection, xMasterColumnsSup, ::dbtools::getNumberFormats( m_xConnection ) ,nullptr);
xRet = pTable;
pTable->construct();
}
else
{
- ODBTable* pTable = new ODBTable(this, m_xConnection);
+ rtl::Reference<ODBTable> pTable = new ODBTable(this, m_xConnection);
xRet = pTable;
pTable->construct();
}
@@ -249,7 +260,7 @@ Reference< XPropertySet > OTableContainer::createDescriptor()
}
// XAppend
-ObjectType OTableContainer::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
+css::uno::Reference< css::beans::XPropertySet > OTableContainer::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
// append the new table with a create stmt
OUString aName = getString(descriptor->getPropertyValue(PROPERTY_NAME));
@@ -299,14 +310,11 @@ ObjectType OTableContainer::appendObject( const OUString& _rForName, const Refer
if ( xNames.is() )
{
Reference<XPropertySet> xProp = xFac->createDataDescriptor();
- Sequence< OUString> aSeq = xNames->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& name : xNames->getElementNames())
{
- if ( !xColumnDefinitions->hasByName(*pIter) )
+ if (!xColumnDefinitions->hasByName(name))
{
- Reference<XPropertySet> xColumn(xNames->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xColumn(xNames->getByName(name), UNO_QUERY);
if ( !OColumnSettings::hasDefaultSettings( xColumn ) )
{
::comphelper::copyProperties( xColumn, xProp );
@@ -338,7 +346,7 @@ void OTableContainer::dropObject(sal_Int32 _nPos, const OUString& _sElementName)
OUString sComposedName;
bool bIsView = false;
- Reference<XPropertySet> xTable(getObject(_nPos),UNO_QUERY);
+ Reference<XPropertySet> xTable(getObject(_nPos));
if ( xTable.is() && m_xMetaData.is() )
{
OUString sSchema,sCatalog,sTable;
@@ -358,7 +366,7 @@ void OTableContainer::dropObject(sal_Int32 _nPos, const OUString& _sElementName)
if(sComposedName.isEmpty())
::dbtools::throwFunctionSequenceException(static_cast<XTypeProvider*>(static_cast<OFilteredContainer*>(this)));
- OUString aSql("DROP ");
+ OUString aSql(u"DROP "_ustr);
if ( bIsView ) // here we have a view
aSql += "VIEW ";
@@ -391,10 +399,10 @@ void SAL_CALL OTableContainer::elementInserted( const ContainerEvent& Event )
{
if(!m_xMasterContainer.is() || m_xMasterContainer->hasByName(sName))
{
- ObjectType xName = createObject(sName);
+ css::uno::Reference< css::beans::XPropertySet > xName = createObject(sName);
insertElement(sName,xName);
// and notify our listeners
- ContainerEvent aEvent(static_cast<XContainer*>(this), makeAny(sName), makeAny(xName), Any());
+ ContainerEvent aEvent(static_cast<XContainer*>(this), Any(sName), Any(xName), Any());
m_aContainerListeners.notifyEach( &XContainerListener::elementInserted, aEvent );
}
}
diff --git a/dbaccess/source/core/api/viewcontainer.cxx b/dbaccess/source/core/api/viewcontainer.cxx
index 796e23c9f49d..82b3dacbcbf0 100644
--- a/dbaccess/source/core/api/viewcontainer.cxx
+++ b/dbaccess/source/core/api/viewcontainer.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <apitools.hxx>
+#include <strings.hxx>
#include <viewcontainer.hxx>
#include <View.hxx>
@@ -34,9 +34,7 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::container;
using namespace ::osl;
using namespace ::comphelper;
@@ -61,11 +59,28 @@ OViewContainer::~OViewContainer()
}
// XServiceInfo
-IMPLEMENT_SERVICE_INFO2(OViewContainer, "com.sun.star.sdb.dbaccess.OViewContainer", SERVICE_SDBCX_CONTAINER, SERVICE_SDBCX_TABLES)
+OUString SAL_CALL OViewContainer::getImplementationName()
+ {
+ return u"com.sun.star.sdb.dbaccess.OViewContainer"_ustr;
+ }
+sal_Bool SAL_CALL OViewContainer::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OViewContainer::getSupportedServiceNames()
+{
+ return { SERVICE_SDBCX_CONTAINER, SERVICE_SDBCX_TABLES };
+}
+
-ObjectType OViewContainer::createObject(const OUString& _rName)
+css::uno::Reference< css::beans::XPropertySet > OViewContainer::createObject(const OUString& _rName)
{
- ObjectType xProp;
+ css::uno::Reference< css::beans::XPropertySet > xProp;
if ( m_xMasterContainer.is() && m_xMasterContainer->hasByName(_rName) )
xProp.set(m_xMasterContainer->getByName(_rName),UNO_QUERY);
@@ -104,7 +119,7 @@ Reference< XPropertySet > OViewContainer::createDescriptor()
}
// XAppend
-ObjectType OViewContainer::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
+css::uno::Reference< css::beans::XPropertySet > OViewContainer::appendObject( const OUString& _rForName, const Reference< XPropertySet >& descriptor )
{
// append the new table with a create stmt
OUString aName = getString(descriptor->getPropertyValue(PROPERTY_NAME));
@@ -156,7 +171,7 @@ void OViewContainer::dropObject(sal_Int32 _nPos, const OUString& _sElementName)
{
OUString sComposedName;
- Reference<XPropertySet> xTable(getObject(_nPos),UNO_QUERY);
+ Reference<XPropertySet> xTable(getObject(_nPos));
if ( xTable.is() )
{
OUString sCatalog,sSchema,sTable;
@@ -231,7 +246,7 @@ void SAL_CALL OViewContainer::elementReplaced( const ContainerEvent& /*Event*/ )
OUString OViewContainer::getTableTypeRestriction() const
{
// no restriction at all (other than the ones provided externally)
- return "VIEW";
+ return u"VIEW"_ustr;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/ComponentDefinition.cxx b/dbaccess/source/core/dataaccess/ComponentDefinition.cxx
index a6110bdb2dab..a36adad3f40a 100644
--- a/dbaccess/source/core/dataaccess/ComponentDefinition.cxx
+++ b/dbaccess/source/core/dataaccess/ComponentDefinition.cxx
@@ -18,18 +18,17 @@
*/
#include "ComponentDefinition.hxx"
-#include <apitools.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <osl/diagnose.h>
#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <cppuhelper/interfacecontainer.hxx>
+//#include <cppuhelper/interfacecontainer.hxx>
#include <comphelper/property.hxx>
#include <comphelper/propertysequence.hxx>
#include <definitioncolumn.hxx>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
@@ -142,17 +141,24 @@ css::uno::Sequence<sal_Int8> OComponentDefinition::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES3(OComponentDefinition,ODataSettings,OContentHelper,OComponentDefinition_BASE);
+css::uno::Sequence< css::uno::Type > OComponentDefinition::getTypes()
+{
+ return ::comphelper::concatSequences(
+ ODataSettings::getTypes( ),
+ OContentHelper::getTypes( ),
+ OComponentDefinition_BASE::getTypes( )
+ );
+}
IMPLEMENT_FORWARD_XINTERFACE3( OComponentDefinition,OContentHelper,ODataSettings,OComponentDefinition_BASE)
OUString SAL_CALL OComponentDefinition::getImplementationName()
{
- return "com.sun.star.comp.dba.OComponentDefinition";
+ return u"com.sun.star.comp.dba.OComponentDefinition"_ustr;
}
Sequence< OUString > SAL_CALL OComponentDefinition::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.TableDefinition", "com.sun.star.ucb.Content" };
+ return { u"com.sun.star.sdb.TableDefinition"_ustr, u"com.sun.star.ucb.Content"_ustr };
}
void SAL_CALL OComponentDefinition::disposing()
@@ -187,8 +193,8 @@ Reference< XPropertySetInfo > SAL_CALL OComponentDefinition::getPropertySetInfo(
OUString OComponentDefinition::determineContentType() const
{
return m_bTable
- ? OUString( "application/vnd.org.openoffice.DatabaseTable" )
- : OUString( "application/vnd.org.openoffice.DatabaseCommandDefinition" );
+ ? u"application/vnd.org.openoffice.DatabaseTable"_ustr
+ : u"application/vnd.org.openoffice.DatabaseCommandDefinition"_ustr;
}
Reference< XNameAccess> OComponentDefinition::getColumns()
@@ -213,13 +219,13 @@ Reference< XNameAccess> OComponentDefinition::getColumns()
return m_pColumns.get();
}
-OColumn* OComponentDefinition::createColumn(const OUString& _rName) const
+rtl::Reference<OColumn> OComponentDefinition::createColumn(const OUString& _rName) const
{
const OComponentDefinition_Impl& rDefinition( getDefinition() );
OComponentDefinition_Impl::const_iterator aFind = rDefinition.find( _rName );
if ( aFind != rDefinition.end() )
{
- aFind->second->addPropertyChangeListener(OUString(),m_xColumnPropertyListener.get());
+ aFind->second->addPropertyChangeListener(OUString(),m_xColumnPropertyListener);
return new OTableColumnWrapper( aFind->second, aFind->second, true );
}
OSL_FAIL( "OComponentDefinition::createColumn: is this a valid case?" );
diff --git a/dbaccess/source/core/dataaccess/ComponentDefinition.hxx b/dbaccess/source/core/dataaccess/ComponentDefinition.hxx
index 014bafb0fa1a..4c10a5354b30 100644
--- a/dbaccess/source/core/dataaccess/ComponentDefinition.hxx
+++ b/dbaccess/source/core/dataaccess/ComponentDefinition.hxx
@@ -133,7 +133,7 @@ public:
virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
// IColumnFactory
- virtual OColumn* createColumn(const OUString& _rName) const override;
+ virtual rtl::Reference<OColumn> createColumn(const OUString& _rName) const override;
virtual css::uno::Reference< css::beans::XPropertySet > createColumnDescriptor() override;
virtual void columnAppended( const css::uno::Reference< css::beans::XPropertySet >& _rxSourceDescriptor ) override;
virtual void columnDropped(const OUString& _sName) override;
diff --git a/dbaccess/source/core/dataaccess/ContentHelper.cxx b/dbaccess/source/core/dataaccess/ContentHelper.cxx
index 7ad1d22ba2f4..6736e22d9bd6 100644
--- a/dbaccess/source/core/dataaccess/ContentHelper.cxx
+++ b/dbaccess/source/core/dataaccess/ContentHelper.cxx
@@ -31,14 +31,14 @@
#include <com/sun/star/container/ElementExistException.hpp>
#include <ucbhelper/propertyvalueset.hxx>
#include <ucbhelper/contentidentifier.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
#include <comphelper/servicehelper.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <apitools.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <sdbcoretools.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <map>
+#include <utility>
namespace dbaccess
{
@@ -48,8 +48,6 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::embed;
using namespace ::com::sun::star::container;
using namespace ::cppu;
@@ -64,13 +62,13 @@ OContentHelper_Impl::~OContentHelper_Impl()
OContentHelper::OContentHelper(const Reference< XComponentContext >& _xORB
,const Reference< XInterface >& _xParentContainer
- ,const TContentPtr& _pImpl)
+ ,TContentPtr _pImpl)
: OContentHelper_COMPBASE(m_aMutex)
,m_aContentListeners(m_aMutex)
,m_aPropertyChangeListeners(m_aMutex)
,m_xParentContainer( _xParentContainer )
,m_aContext( _xORB )
- ,m_pImpl(_pImpl)
+ ,m_pImpl(std::move(_pImpl))
,m_nCommandId(0)
{
}
@@ -86,14 +84,25 @@ void SAL_CALL OContentHelper::disposing()
m_xParentContainer = nullptr;
}
-IMPLEMENT_SERVICE_INFO1(OContentHelper,"com.sun.star.comp.sdb.Content","com.sun.star.ucb.Content");
+OUString SAL_CALL OContentHelper::getImplementationName()
+ {
+ return u"com.sun.star.comp.sdb.Content"_ustr;
+ }
+sal_Bool SAL_CALL OContentHelper::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
-css::uno::Sequence<sal_Int8> OContentHelper::getUnoTunnelId()
+ return false;
+ }
+css::uno::Sequence< OUString > SAL_CALL OContentHelper::getSupportedServiceNames()
{
- static cppu::OImplementationId aId;
- return aId.getImplementationId();
+ return { u"com.sun.star.ucb.Content"_ustr };
}
+
css::uno::Sequence<sal_Int8> OContentHelper::getImplementationId()
{
return css::uno::Sequence<sal_Int8>();
@@ -122,7 +131,7 @@ OUString OContentHelper::impl_getHierarchicalName( bool _includingRootContainer
xProp->getPropertyValue( PROPERTY_NAME ) >>= sName;
OUString sPrevious = aHierarchicalName.makeStringAndClear();
- aHierarchicalName.append( sName ).append( "/" ).append( sPrevious );
+ aHierarchicalName.append( sName + "/" + sPrevious );
}
}
OUString sHierarchicalName( aHierarchicalName.makeStringAndClear() );
@@ -177,7 +186,7 @@ Any SAL_CALL OContentHelper::execute( const Command& aCommand, sal_Int32 /*Comma
{
OSL_FAIL( "Wrong argument type!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -195,7 +204,7 @@ Any SAL_CALL OContentHelper::execute( const Command& aCommand, sal_Int32 /*Comma
{
OSL_FAIL( "Wrong argument type!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -207,7 +216,7 @@ Any SAL_CALL OContentHelper::execute( const Command& aCommand, sal_Int32 /*Comma
{
OSL_FAIL( "No properties!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -233,7 +242,7 @@ Any SAL_CALL OContentHelper::execute( const Command& aCommand, sal_Int32 /*Comma
OSL_FAIL( "Content::execute - unsupported command!" );
ucbhelper::cancelCommandExecution(
- makeAny( UnsupportedCommandException(
+ Any( UnsupportedCommandException(
OUString(),
static_cast< cppu::OWeakObject * >( this ) ) ),
Environment );
@@ -251,44 +260,32 @@ void SAL_CALL OContentHelper::abort( sal_Int32 /*CommandId*/ )
void SAL_CALL OContentHelper::addPropertiesChangeListener( const Sequence< OUString >& PropertyNames, const Reference< XPropertiesChangeListener >& Listener )
{
::osl::MutexGuard aGuard(m_aMutex);
- sal_Int32 nCount = PropertyNames.getLength();
- if ( !nCount )
+ if (!PropertyNames.hasElements())
{
// Note: An empty sequence means a listener for "all" properties.
m_aPropertyChangeListeners.addInterface(OUString(), Listener );
}
else
{
- const OUString* pSeq = PropertyNames.getConstArray();
-
- for ( sal_Int32 n = 0; n < nCount; ++n )
- {
- const OUString& rName = pSeq[ n ];
+ for (auto& rName : PropertyNames)
if ( !rName.isEmpty() )
m_aPropertyChangeListeners.addInterface(rName, Listener );
- }
}
}
void SAL_CALL OContentHelper::removePropertiesChangeListener( const Sequence< OUString >& PropertyNames, const Reference< XPropertiesChangeListener >& Listener )
{
::osl::MutexGuard aGuard(m_aMutex);
- sal_Int32 nCount = PropertyNames.getLength();
- if ( !nCount )
+ if (!PropertyNames.hasElements())
{
// Note: An empty sequence means a listener for "all" properties.
m_aPropertyChangeListeners.removeInterface( OUString(), Listener );
}
else
{
- const OUString* pSeq = PropertyNames.getConstArray();
-
- for ( sal_Int32 n = 0; n < nCount; ++n )
- {
- const OUString& rName = pSeq[ n ];
+ for (auto& rName : PropertyNames)
if ( !rName.isEmpty() )
m_aPropertyChangeListeners.removeInterface( rName, Listener );
- }
}
}
@@ -306,12 +303,10 @@ void SAL_CALL OContentHelper::removeProperty( const OUString& /*Name*/ )
// XInitialization
void SAL_CALL OContentHelper::initialize( const Sequence< Any >& _aArguments )
{
- const Any* pBegin = _aArguments.getConstArray();
- const Any* pEnd = pBegin + _aArguments.getLength();
- PropertyValue aValue;
- for(;pBegin != pEnd;++pBegin)
+ for (auto& arg : _aArguments)
{
- *pBegin >>= aValue;
+ PropertyValue aValue;
+ arg >>= aValue;
if ( aValue.Name == "Parent" )
{
m_xParentContainer.set(aValue.Value,UNO_QUERY);
@@ -332,6 +327,7 @@ Sequence< Any > OContentHelper::setPropertyValues(const Sequence< PropertyValue
osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
Sequence< Any > aRet( rValues.getLength() );
+ auto aRetRange = asNonConstRange(aRet);
Sequence< PropertyChangeEvent > aChanges( rValues.getLength() );
sal_Int32 nChanged = 0;
@@ -340,17 +336,14 @@ Sequence< Any > OContentHelper::setPropertyValues(const Sequence< PropertyValue
aEvent.Further = false;
aEvent.PropertyHandle = -1;
- const PropertyValue* pValues = rValues.getConstArray();
- sal_Int32 nCount = rValues.getLength();
-
- for ( sal_Int32 n = 0; n < nCount; ++n )
+ for (sal_Int32 n = 0; n < rValues.getLength(); ++n)
{
- const PropertyValue& rValue = pValues[ n ];
+ const PropertyValue& rValue = rValues[n];
if ( rValue.Name == "ContentType" || rValue.Name == "IsDocument" || rValue.Name == "IsFolder" )
{
// Read-only property!
- aRet[ n ] <<= IllegalAccessException("Property is read-only!",
+ aRetRange[ n ] <<= IllegalAccessException(u"Property is read-only!"_ustr,
static_cast< cppu::OWeakObject * >( this ) );
}
else if ( rValue.Name == "Title" )
@@ -374,7 +367,7 @@ Sequence< Any > OContentHelper::setPropertyValues(const Sequence< PropertyValue
}
catch( const Exception& )
{
- OSL_FAIL( "OContentHelper::setPropertyValues('Title'): caught an exception while renaming!" );
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OContentHelper::setPropertyValues('Title'): caught an exception while renaming!" );
}
}
else
@@ -384,14 +377,14 @@ Sequence< Any > OContentHelper::setPropertyValues(const Sequence< PropertyValue
}
else
{
- aRet[ n ] <<= IllegalTypeException("Property value has wrong type!",
+ aRetRange[ n ] <<= IllegalTypeException(u"Property value has wrong type!"_ustr,
static_cast< cppu::OWeakObject * >( this ) );
}
}
else
{
- aRet[ n ] <<= Exception("No property set for storing the value!",
+ aRetRange[ n ] <<= Exception(u"No property set for storing the value!"_ustr,
static_cast< cppu::OWeakObject * >( this ) );
}
}
@@ -414,14 +407,10 @@ Reference< XRow > OContentHelper::getPropertyValues( const Sequence< Property >&
rtl::Reference< ::ucbhelper::PropertyValueSet > xRow = new ::ucbhelper::PropertyValueSet( m_aContext );
- sal_Int32 nCount = rProperties.getLength();
- if ( nCount )
+ if (rProperties.hasElements())
{
- const Property* pProps = rProperties.getConstArray();
- for ( sal_Int32 n = 0; n < nCount; ++n )
+ for (auto& rProp : rProperties)
{
- const Property& rProp = pProps[ n ];
-
// Process Core properties.
if ( rProp.Name == "ContentType" )
@@ -448,24 +437,24 @@ Reference< XRow > OContentHelper::getPropertyValues( const Sequence< Property >&
{
// Append all Core Properties.
xRow->appendString (
- Property( "ContentType", -1,
+ Property( u"ContentType"_ustr, -1,
cppu::UnoType<OUString>::get(),
PropertyAttribute::BOUND
| PropertyAttribute::READONLY ),
getContentType() );
xRow->appendString (
- Property( "Title", -1,
+ Property( u"Title"_ustr, -1,
cppu::UnoType<OUString>::get(),
PropertyAttribute::BOUND ),
m_pImpl->m_aProps.aTitle );
xRow->appendBoolean(
- Property( "IsDocument", -1,
+ Property( u"IsDocument"_ustr, -1,
cppu::UnoType<bool>::get(),
PropertyAttribute::BOUND
| PropertyAttribute::READONLY ),
m_pImpl->m_aProps.bIsDocument );
xRow->appendBoolean(
- Property( "IsFolder", -1,
+ Property( u"IsFolder"_ustr, -1,
cppu::UnoType<bool>::get(),
PropertyAttribute::BOUND
| PropertyAttribute::READONLY ),
@@ -474,7 +463,7 @@ Reference< XRow > OContentHelper::getPropertyValues( const Sequence< Property >&
// @@@ Append other properties supported directly.
}
- return Reference< XRow >( xRow.get() );
+ return xRow;
}
void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent >& evt ) const
@@ -485,38 +474,27 @@ void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent
return;
// First, notify listeners interested in changes of every property.
- OInterfaceContainerHelper* pAllPropsContainer = m_aPropertyChangeListeners.getContainer( OUString() );
+ comphelper::OInterfaceContainerHelper3<XPropertiesChangeListener>* pAllPropsContainer = m_aPropertyChangeListeners.getContainer( OUString() );
if ( pAllPropsContainer )
- {
- OInterfaceIteratorHelper aIter( *pAllPropsContainer );
- while ( aIter.hasMoreElements() )
- {
- // Propagate event.
- Reference< XPropertiesChangeListener > xListener( aIter.next(), UNO_QUERY );
- if ( xListener.is() )
- xListener->propertiesChange( evt );
- }
- }
+ pAllPropsContainer->notifyEach( &XPropertiesChangeListener::propertiesChange, evt );
typedef std::map< XPropertiesChangeListener*, Sequence< PropertyChangeEvent > > PropertiesEventListenerMap;
PropertiesEventListenerMap aListeners;
- const PropertyChangeEvent* propertyChangeEvent = evt.getConstArray();
-
- for ( sal_Int32 n = 0; n < nCount; ++n, ++propertyChangeEvent )
+ for (sal_Int32 n = 0; n < nCount; ++n)
{
- const PropertyChangeEvent& rEvent = *propertyChangeEvent;
+ const PropertyChangeEvent& rEvent = evt[n];
const OUString& rName = rEvent.PropertyName;
- OInterfaceContainerHelper* pPropsContainer = m_aPropertyChangeListeners.getContainer( rName );
+ comphelper::OInterfaceContainerHelper3<XPropertiesChangeListener>* pPropsContainer = m_aPropertyChangeListeners.getContainer( rName );
if ( pPropsContainer )
{
- OInterfaceIteratorHelper aIter( *pPropsContainer );
+ comphelper::OInterfaceIteratorHelper3 aIter( *pPropsContainer );
while ( aIter.hasMoreElements() )
{
Sequence< PropertyChangeEvent >* propertyEvents;
- XPropertiesChangeListener* pListener = static_cast< XPropertiesChangeListener * >( aIter.next() );
+ XPropertiesChangeListener* pListener = aIter.next().get();
PropertiesEventListenerMap::iterator it = aListeners.find( pListener );
if ( it == aListeners.end() )
{
@@ -527,7 +505,7 @@ void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent
else
propertyEvents = &(*it).second;
- (*propertyEvents)[n] = rEvent;
+ asNonConstRange(*propertyEvents)[n] = rEvent;
}
}
}
@@ -543,15 +521,6 @@ void OContentHelper::notifyPropertiesChange( const Sequence< PropertyChangeEvent
}
}
-// css::lang::XUnoTunnel
-sal_Int64 OContentHelper::getSomething( const Sequence< sal_Int8 > & rId )
-{
- if (isUnoTunnelId<OContentHelper>(rId))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
-}
-
Reference< XInterface > SAL_CALL OContentHelper::getParent( )
{
::osl::MutexGuard aGuard(m_aMutex);
@@ -571,14 +540,14 @@ void OContentHelper::impl_rename_throw(const OUString& _sNewName,bool _bNotify )
return;
try
{
- Sequence< PropertyChangeEvent > aChanges( 1 );
-
- aChanges[0].Source = static_cast< cppu::OWeakObject * >( this );
- aChanges[0].Further = false;
- aChanges[0].PropertyName = PROPERTY_NAME;
- aChanges[0].PropertyHandle = PROPERTY_ID_NAME;
- aChanges[0].OldValue <<= m_pImpl->m_aProps.aTitle;
- aChanges[0].NewValue <<= _sNewName;
+ Sequence<PropertyChangeEvent> aChanges{
+ { /* Source */ static_cast<cppu::OWeakObject*>(this),
+ /* PropertyName */ PROPERTY_NAME,
+ /* Further */ false,
+ /* PropertyHandle */ PROPERTY_ID_NAME,
+ /* OldValue */ Any(m_pImpl->m_aProps.aTitle),
+ /* NewValue */ Any(_sNewName) }
+ };
aGuard.clear();
diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx
index e54712ff9ae5..9970f97ddf83 100644
--- a/dbaccess/source/core/dataaccess/ModelImpl.cxx
+++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx
@@ -43,13 +43,12 @@
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/implbase.hxx>
-#include <comphelper/documentinfo.hxx>
#include <comphelper/storagehelper.hxx>
#include <comphelper/types.hxx>
#include <comphelper/processfactory.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/signaturestate.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/file.hxx>
#include <osl/diagnose.h>
#include <sal/log.hxx>
@@ -59,11 +58,11 @@
#include <i18nlangtag/languagetag.hxx>
#include <algorithm>
+#include <utility>
using namespace css;
using namespace ::com::sun::star::document;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::uno;
@@ -72,9 +71,7 @@ using namespace ::com::sun::star::embed;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::view;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::script;
using namespace ::cppu;
@@ -252,7 +249,7 @@ bool DocumentStorageAccess::commitEmbeddedStorage( bool _bPreventRootCommits )
bool bSuccess = false;
try
{
- NamedStorages::const_iterator pos = m_aExposedStorages.find( "database" );
+ NamedStorages::const_iterator pos = m_aExposedStorages.find( u"database"_ustr );
if ( pos != m_aExposedStorages.end() )
bSuccess = tools::stor::commitStorageIfWriteable( pos->second );
}
@@ -318,7 +315,7 @@ void SAL_CALL DocumentStorageAccess::commited( const css::lang::EventObject& aEv
Reference< XStorage > xStorage( aEvent.Source, UNO_QUERY );
// check if this is the dedicated "database" sub storage
- NamedStorages::const_iterator pos = m_aExposedStorages.find( "database" );
+ NamedStorages::const_iterator pos = m_aExposedStorages.find( u"database"_ustr );
if ( ( pos != m_aExposedStorages.end() )
&& ( pos->second == xStorage )
)
@@ -354,14 +351,11 @@ void SAL_CALL DocumentStorageAccess::disposing( const css::lang::EventObject& So
// ODatabaseModelImpl
ODatabaseModelImpl::ODatabaseModelImpl( const Reference< XComponentContext >& _rxContext, ODatabaseContext& _rDBContext )
- :m_xModel()
- ,m_xDataSource()
- ,m_aContainer(4)
+ :m_aContainer()
,m_aMacroMode( *this )
,m_nImposedMacroExecMode( MacroExecMode::NEVER_EXECUTE )
,m_rDBContext( _rDBContext )
,m_refCount(0)
- ,m_aEmbeddedMacros()
,m_bModificationLock( false )
,m_bDocumentInitialized( false )
,m_nScriptingSignatureState(SignatureState::UNKNOWN)
@@ -373,34 +367,29 @@ ODatabaseModelImpl::ODatabaseModelImpl( const Reference< XComponentContext >& _r
,m_bModified(false)
,m_bDocumentReadOnly(false)
,m_bMacroCallsSeenWhileLoading(false)
- ,m_pSharedConnectionManager(nullptr)
,m_nControllerLockCount(0)
{
// some kind of default
m_sConnectURL = "jdbc:";
- m_aTableFilter.realloc(1);
- m_aTableFilter[0] = "%";
+ m_aTableFilter = { u"%"_ustr };
impl_construct_nothrow();
}
ODatabaseModelImpl::ODatabaseModelImpl(
- const OUString& _rRegistrationName,
+ OUString _sRegistrationName,
const Reference< XComponentContext >& _rxContext,
ODatabaseContext& _rDBContext
)
- :m_xModel()
- ,m_xDataSource()
- ,m_aContainer(4)
+ :m_aContainer()
,m_aMacroMode( *this )
,m_nImposedMacroExecMode( MacroExecMode::NEVER_EXECUTE )
,m_rDBContext( _rDBContext )
,m_refCount(0)
- ,m_aEmbeddedMacros()
,m_bModificationLock( false )
,m_bDocumentInitialized( false )
,m_nScriptingSignatureState(SignatureState::UNKNOWN)
,m_aContext( _rxContext )
- ,m_sName(_rRegistrationName)
+ ,m_sName(std::move(_sRegistrationName))
,m_nLoginTimeout(0)
,m_bReadOnly(false)
,m_bPasswordRequired(false)
@@ -408,7 +397,6 @@ ODatabaseModelImpl::ODatabaseModelImpl(
,m_bModified(false)
,m_bDocumentReadOnly(false)
,m_bMacroCallsSeenWhileLoading(false)
- ,m_pSharedConnectionManager(nullptr)
,m_nControllerLockCount(0)
{
impl_construct_nothrow();
@@ -438,25 +426,22 @@ void ODatabaseModelImpl::impl_construct_nothrow()
// insert the default settings
Reference< XPropertyContainer > xContainer( m_xSettings, UNO_QUERY_THROW );
Reference< XSet > xSettingsSet( m_xSettings, UNO_QUERY_THROW );
- const AsciiPropertyValue* pSettings = getDefaultDataSourceSettings();
- for ( ; pSettings->AsciiName; ++pSettings )
+ for (auto& setting : getDefaultDataSourceSettings())
{
- if ( !pSettings->DefaultValue.hasValue() )
+ if (!setting.DefaultValue.hasValue())
{
- Property aProperty(
- OUString::createFromAscii( pSettings->AsciiName ),
+ Property aProperty(setting.Name,
-1,
- pSettings->ValueType,
+ setting.ValueType,
PropertyAttribute::BOUND | PropertyAttribute::MAYBEDEFAULT | PropertyAttribute::MAYBEVOID
);
- xSettingsSet->insert( makeAny( aProperty ) );
+ xSettingsSet->insert( Any( aProperty ) );
}
else
{
- xContainer->addProperty(
- OUString::createFromAscii( pSettings->AsciiName ),
+ xContainer->addProperty(setting.Name,
PropertyAttribute::BOUND | PropertyAttribute::MAYBEDEFAULT,
- pSettings->DefaultValue
+ setting.DefaultValue
);
}
}
@@ -472,17 +457,17 @@ namespace
{
OUString lcl_getContainerStorageName_throw( ODatabaseModelImpl::ObjectType _eType )
{
- const char* pAsciiName( nullptr );
+ OUString sName;
switch ( _eType )
{
- case ODatabaseModelImpl::E_FORM: pAsciiName = "forms"; break;
- case ODatabaseModelImpl::E_REPORT: pAsciiName = "reports"; break;
- case ODatabaseModelImpl::E_QUERY: pAsciiName = "queries"; break;
- case ODatabaseModelImpl::E_TABLE: pAsciiName = "tables"; break;
+ case ODatabaseModelImpl::ObjectType::Form: sName = u"forms"_ustr; break;
+ case ODatabaseModelImpl::ObjectType::Report: sName = u"reports"_ustr; break;
+ case ODatabaseModelImpl::ObjectType::Query: sName = u"queries"_ustr; break;
+ case ODatabaseModelImpl::ObjectType::Table: sName = u"tables"_ustr; break;
default:
throw RuntimeException();
}
- return OUString::createFromAscii( pAsciiName );
+ return sName;
}
bool lcl_hasObjectWithMacros_throw( const ODefinitionContainer_Impl& _rObjectDefinitions, const Reference< XStorage >& _rxContainerStorage )
@@ -568,8 +553,8 @@ bool ODatabaseModelImpl::objectHasMacros( const Reference< XStorage >& _rxContai
void ODatabaseModelImpl::reset()
{
m_bReadOnly = false;
- std::vector< TContentPtr > aEmptyContainers( 4 );
- m_aContainer.swap( aEmptyContainers );
+ for (auto & i : m_aContainer)
+ i.reset();
if ( m_pStorageAccess.is() )
{
@@ -631,7 +616,6 @@ void ODatabaseModelImpl::clearConnections()
}
}
- m_pSharedConnectionManager = nullptr;
m_xSharedConnectionManager = nullptr;
}
@@ -640,25 +624,34 @@ void ODatabaseModelImpl::dispose()
// dispose the data source and the model
try
{
- Reference< XDataSource > xDS( m_xDataSource );
- ::comphelper::disposeComponent( xDS );
+ rtl::Reference< ODatabaseSource > xDS( m_xDataSource );
+ if (xDS)
+ {
+ xDS->dispose();
+ m_xDataSource.clear();
+ }
- Reference< XModel > xModel( m_xModel );
- ::comphelper::disposeComponent( xModel );
+ rtl::Reference< ODatabaseDocument > xModel( m_xModel );
+ if (xModel)
+ {
+ xModel->dispose();
+ m_xModel.clear();
+ }
}
catch( const Exception& )
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_xDataSource = WeakReference<XDataSource>();
- m_xModel = WeakReference< XModel >();
+ m_xDataSource.clear();
+ m_xModel.clear();
for (auto const& elem : m_aContainer)
{
if ( elem )
elem->m_pDataSource = nullptr;
}
- m_aContainer.clear();
+ for (auto & i : m_aContainer)
+ i.reset();
clearConnections();
@@ -711,9 +704,9 @@ void ODatabaseModelImpl::setResource( const OUString& i_rDocumentURL, const Sequ
::comphelper::NamedValueCollection aMediaDescriptor( _rArgs );
#if OSL_DEBUG_LEVEL > 0
- if ( aMediaDescriptor.has( "SalvagedFile" ) )
+ if ( aMediaDescriptor.has( u"SalvagedFile"_ustr ) )
{
- OUString sSalvagedFile( aMediaDescriptor.getOrDefault( "SalvagedFile", OUString() ) );
+ OUString sSalvagedFile( aMediaDescriptor.getOrDefault( u"SalvagedFile"_ustr, OUString() ) );
// If SalvagedFile is an empty string, this indicates "the document is being recovered, but i_rDocumentURL already
// is the real document URL, not the temporary document location"
if ( sSalvagedFile.isEmpty() )
@@ -731,12 +724,12 @@ void ODatabaseModelImpl::setResource( const OUString& i_rDocumentURL, const Sequ
::comphelper::NamedValueCollection ODatabaseModelImpl::stripLoadArguments( const ::comphelper::NamedValueCollection& _rArguments )
{
- OSL_ENSURE( !_rArguments.has( "Model" ), "ODatabaseModelImpl::stripLoadArguments: this is suspicious (1)!" );
- OSL_ENSURE( !_rArguments.has( "ViewName" ), "ODatabaseModelImpl::stripLoadArguments: this is suspicious (2)!" );
+ OSL_ENSURE( !_rArguments.has( u"Model"_ustr ), "ODatabaseModelImpl::stripLoadArguments: this is suspicious (1)!" );
+ OSL_ENSURE( !_rArguments.has( u"ViewName"_ustr ), "ODatabaseModelImpl::stripLoadArguments: this is suspicious (2)!" );
::comphelper::NamedValueCollection aMutableArgs( _rArguments );
- aMutableArgs.remove( "Model" );
- aMutableArgs.remove( "ViewName" );
+ aMutableArgs.remove( u"Model"_ustr );
+ aMutableArgs.remove( u"ViewName"_ustr );
return aMutableArgs;
}
@@ -763,9 +756,9 @@ Reference< XStorage > const & ODatabaseModelImpl::getOrCreateRootStorage()
if ( !m_xDocumentStorage.is() )
{
Reference< XSingleServiceFactory> xStorageFactory = StorageFactory::create( m_aContext );
- Any aSource = m_aMediaDescriptor.get( "Stream" );
+ Any aSource = m_aMediaDescriptor.get( u"Stream"_ustr );
if ( !aSource.hasValue() )
- aSource = m_aMediaDescriptor.get( "InputStream" );
+ aSource = m_aMediaDescriptor.get( u"InputStream"_ustr );
if ( !aSource.hasValue() && !m_sDocFileLocation.isEmpty() )
aSource <<= m_sDocFileLocation;
// TODO: shouldn't we also check URL?
@@ -774,9 +767,7 @@ Reference< XStorage > const & ODatabaseModelImpl::getOrCreateRootStorage()
if ( aSource.hasValue() )
{
- Sequence< Any > aStorageCreationArgs(2);
- aStorageCreationArgs[0] = aSource;
- aStorageCreationArgs[1] <<= ElementModes::READWRITE;
+ Sequence< Any > aStorageCreationArgs{ aSource, Any(ElementModes::READWRITE) };
Reference< XStorage > xDocumentStorage;
OUString sURL;
@@ -791,7 +782,7 @@ Reference< XStorage > const & ODatabaseModelImpl::getOrCreateRootStorage()
catch( const Exception& )
{
m_bDocumentReadOnly = true;
- aStorageCreationArgs[1] <<= ElementModes::READ;
+ aStorageCreationArgs.getArray()[1] <<= ElementModes::READ;
try
{
xDocumentStorage.set( xStorageFactory->createInstanceWithArguments( aStorageCreationArgs ), UNO_QUERY_THROW );
@@ -844,7 +835,7 @@ bool ODatabaseModelImpl::commitEmbeddedStorage( bool _bPreventRootCommits )
bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference< XStorage >& _rxStorage )
{
bool bTryToPreserveScriptSignature = false;
- utl::TempFile aTempFile;
+ utl::TempFileNamed aTempFile;
aTempFile.EnableKillingFile();
OUString sTmpFileUrl = aTempFile.GetURL();
SignatureState aSignatureState = getScriptingSignatureState();
@@ -860,7 +851,7 @@ bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference<
// For that, we need a temporary copy of the original file.
osl::File::RC rc = osl::File::copy(sLocation, sTmpFileUrl);
if (rc != osl::FileBase::E_None)
- throw uno::RuntimeException("Could not create temp file");
+ throw uno::RuntimeException(u"Could not create temp file"_ustr);
}
bool bSuccess = false;
@@ -894,11 +885,11 @@ bool ODatabaseModelImpl::commitStorageIfWriteable_ignoreErrors( const Reference<
if (!xReadOrig.is())
throw uno::RuntimeException("Could not read " + sTmpFileUrl);
uno::Reference<embed::XStorage> xMetaInf
- = xReadOrig->openStorageElement("META-INF", embed::ElementModes::READ);
+ = xReadOrig->openStorageElement(u"META-INF"_ustr, embed::ElementModes::READ);
uno::Reference<embed::XStorage> xTargetMetaInf
- = _rxStorage->openStorageElement("META-INF", embed::ElementModes::READWRITE);
- if (xMetaInf.is() && xTargetMetaInf.is())
+ = _rxStorage->openStorageElement(u"META-INF"_ustr, embed::ElementModes::READWRITE);
+ if (xMetaInf.is() && xTargetMetaInf.is() && xMetaInf->hasByName(aScriptSignName))
{
xMetaInf->copyElementTo(aScriptSignName, xTargetMetaInf, aScriptSignName);
@@ -945,7 +936,7 @@ void ODatabaseModelImpl::setModified( bool _bModified )
try
{
- Reference< XModifiable > xModi( m_xModel.get(), UNO_QUERY );
+ rtl::Reference< ODatabaseDocument > xModi( m_xModel );
if ( xModi.is() )
xModi->setModified( _bModified );
else
@@ -959,35 +950,35 @@ void ODatabaseModelImpl::setModified( bool _bModified )
Reference<XDataSource> ODatabaseModelImpl::getOrCreateDataSource()
{
- Reference<XDataSource> xDs = m_xDataSource;
+ rtl::Reference<ODatabaseSource> xDs = m_xDataSource;
if ( !xDs.is() )
{
xDs = new ODatabaseSource(this);
- m_xDataSource = xDs;
+ m_xDataSource = xDs.get();
}
return xDs;
}
-Reference< XModel> ODatabaseModelImpl::getModel_noCreate() const
+rtl::Reference<ODatabaseDocument> ODatabaseModelImpl::getModel_noCreate() const
{
- return m_xModel;
+ return m_xModel.get();
}
-Reference< XModel > ODatabaseModelImpl::createNewModel_deliverOwnership()
+rtl::Reference< ODatabaseDocument > ODatabaseModelImpl::createNewModel_deliverOwnership()
{
- Reference< XModel > xModel( m_xModel );
+ rtl::Reference< ODatabaseDocument > xModel( m_xModel );
OSL_PRECOND( !xModel.is(), "ODatabaseModelImpl::createNewModel_deliverOwnership: not to be called if there already is a model!" );
if ( !xModel.is() )
{
bool bHadModelBefore = m_bDocumentInitialized;
xModel = ODatabaseDocument::createDatabaseDocument( this, ODatabaseDocument::FactoryAccess() );
- m_xModel = xModel;
+ m_xModel = xModel.get();
try
{
Reference< XGlobalEventBroadcaster > xModelCollection = theGlobalEventBroadcaster::get( m_aContext );
- xModelCollection->insert( makeAny( xModel ) );
+ xModelCollection->insert( Any( Reference< XModel >(xModel) ) );
}
catch( const Exception& )
{
@@ -1038,82 +1029,80 @@ Reference< XStorage > ODatabaseModelImpl::getStorage( const ObjectType _eType )
css::embed::ElementModes::READWRITE );
}
-const AsciiPropertyValue* ODatabaseModelImpl::getDefaultDataSourceSettings()
+// static
+std::span<const DefaultPropertyValue> ODatabaseModelImpl::getDefaultDataSourceSettings()
{
- static const AsciiPropertyValue aKnownSettings[] =
+ static const DefaultPropertyValue aKnownSettings[] =
{
// known JDBC settings
- AsciiPropertyValue( "JavaDriverClass", makeAny( OUString() ) ),
- AsciiPropertyValue( "JavaDriverClassPath", makeAny( OUString() ) ),
- AsciiPropertyValue( "IgnoreCurrency", makeAny( false ) ),
+ { u"JavaDriverClass"_ustr, Any( OUString() ) },
+ { u"JavaDriverClassPath"_ustr, Any( OUString() ) },
+ { u"IgnoreCurrency"_ustr, Any( false ) },
// known settings for file-based drivers
- AsciiPropertyValue( "Extension", makeAny( OUString() ) ),
- AsciiPropertyValue( "CharSet", makeAny( OUString() ) ),
- AsciiPropertyValue( "HeaderLine", makeAny( true ) ),
- AsciiPropertyValue( "FieldDelimiter", makeAny( OUString( "," ) ) ),
- AsciiPropertyValue( "StringDelimiter", makeAny( OUString( "\"" ) ) ),
- AsciiPropertyValue( "DecimalDelimiter", makeAny( OUString( "." ) ) ),
- AsciiPropertyValue( "ThousandDelimiter", makeAny( OUString() ) ),
- AsciiPropertyValue( "ShowDeleted", makeAny( false ) ),
+ { u"Extension"_ustr, Any( OUString() ) },
+ { u"CharSet"_ustr, Any( OUString() ) },
+ { u"HeaderLine"_ustr, Any( true ) },
+ { u"FieldDelimiter"_ustr, Any( u","_ustr ) },
+ { u"StringDelimiter"_ustr, Any( u"\""_ustr ) },
+ { u"DecimalDelimiter"_ustr, Any( u"."_ustr ) },
+ { u"ThousandDelimiter"_ustr, Any( OUString() ) },
+ { u"ShowDeleted"_ustr, Any( false ) },
// known ODBC settings
- AsciiPropertyValue( "SystemDriverSettings", makeAny( OUString() ) ),
- AsciiPropertyValue( "UseCatalog", makeAny( false ) ),
- AsciiPropertyValue( "TypeInfoSettings", makeAny( Sequence< Any >()) ),
+ { u"SystemDriverSettings"_ustr, Any( OUString() ) },
+ { u"UseCatalog"_ustr, Any( false ) },
+ { u"TypeInfoSettings"_ustr, Any( Sequence< Any >()) },
// settings related to auto increment handling
- AsciiPropertyValue( "AutoIncrementCreation", makeAny( OUString() ) ),
- AsciiPropertyValue( "AutoRetrievingStatement", makeAny( OUString() ) ),
- AsciiPropertyValue( "IsAutoRetrievingEnabled", makeAny( false ) ),
+ { u"AutoIncrementCreation"_ustr, Any( OUString() ) },
+ { u"AutoRetrievingStatement"_ustr, Any( OUString() ) },
+ { u"IsAutoRetrievingEnabled"_ustr, Any( false ) },
// known LDAP driver settings
- AsciiPropertyValue( "HostName", makeAny( OUString() ) ),
- AsciiPropertyValue( "PortNumber", makeAny( sal_Int32(389) ) ),
- AsciiPropertyValue( "BaseDN", makeAny( OUString() ) ),
- AsciiPropertyValue( "MaxRowCount", makeAny( sal_Int32(100) ) ),
+ { u"HostName"_ustr, Any( OUString() ) },
+ { u"PortNumber"_ustr, Any( sal_Int32(389) ) },
+ { u"BaseDN"_ustr, Any( OUString() ) },
+ { u"MaxRowCount"_ustr, Any( sal_Int32(100) ) },
// known MySQLNative driver settings
- AsciiPropertyValue( "LocalSocket", makeAny( OUString() ) ),
- AsciiPropertyValue( "NamedPipe", makeAny( OUString() ) ),
+ { u"LocalSocket"_ustr, Any( OUString() ) },
+ { u"NamedPipe"_ustr, Any( OUString() ) },
// misc known driver settings
- AsciiPropertyValue( "ParameterNameSubstitution", makeAny( false ) ),
- AsciiPropertyValue( "AddIndexAppendix", makeAny( true ) ),
- AsciiPropertyValue( "IgnoreDriverPrivileges", makeAny( true ) ),
- AsciiPropertyValue( "ImplicitCatalogRestriction", ::cppu::UnoType< OUString >::get() ),
- AsciiPropertyValue( "ImplicitSchemaRestriction", ::cppu::UnoType< OUString >::get() ),
- AsciiPropertyValue( "PrimaryKeySupport", ::cppu::UnoType< sal_Bool >::get() ),
- AsciiPropertyValue( "ShowColumnDescription", makeAny( false ) ),
+ { u"ParameterNameSubstitution"_ustr, Any( false ) },
+ { u"AddIndexAppendix"_ustr, Any( true ) },
+ { u"IgnoreDriverPrivileges"_ustr, Any( true ) },
+ { u"ImplicitCatalogRestriction"_ustr, ::cppu::UnoType< OUString >::get() },
+ { u"ImplicitSchemaRestriction"_ustr, ::cppu::UnoType< OUString >::get() },
+ { u"PrimaryKeySupport"_ustr, ::cppu::UnoType< sal_Bool >::get() },
+ { u"ShowColumnDescription"_ustr, Any( false ) },
// known SDB level settings
- AsciiPropertyValue( "NoNameLengthLimit", makeAny( false ) ),
- AsciiPropertyValue( "AppendTableAliasName", makeAny( false ) ),
- AsciiPropertyValue( "GenerateASBeforeCorrelationName", makeAny( false ) ),
- AsciiPropertyValue( "ColumnAliasInOrderBy", makeAny( true ) ),
- AsciiPropertyValue( "EnableSQL92Check", makeAny( false ) ),
- AsciiPropertyValue( "BooleanComparisonMode", makeAny( BooleanComparisonMode::EQUAL_INTEGER ) ),
- AsciiPropertyValue( "TableTypeFilterMode", makeAny( sal_Int32(3) ) ),
- AsciiPropertyValue( "RespectDriverResultSetType", makeAny( false ) ),
- AsciiPropertyValue( "UseSchemaInSelect", makeAny( true ) ),
- AsciiPropertyValue( "UseCatalogInSelect", makeAny( true ) ),
- AsciiPropertyValue( "EnableOuterJoinEscape", makeAny( true ) ),
- AsciiPropertyValue( "PreferDosLikeLineEnds", makeAny( false ) ),
- AsciiPropertyValue( "FormsCheckRequiredFields", makeAny( true ) ),
- AsciiPropertyValue( "EscapeDateTime", makeAny( true ) ),
+ { u"NoNameLengthLimit"_ustr, Any( false ) },
+ { u"AppendTableAliasName"_ustr, Any( false ) },
+ { u"GenerateASBeforeCorrelationName"_ustr, Any( false ) },
+ { u"ColumnAliasInOrderBy"_ustr, Any( true ) },
+ { u"EnableSQL92Check"_ustr, Any( false ) },
+ { u"BooleanComparisonMode"_ustr, Any( BooleanComparisonMode::EQUAL_INTEGER ) },
+ { u"TableTypeFilterMode"_ustr, Any( sal_Int32(3) ) },
+ { u"RespectDriverResultSetType"_ustr, Any( false ) },
+ { u"UseSchemaInSelect"_ustr, Any( true ) },
+ { u"UseCatalogInSelect"_ustr, Any( true ) },
+ { u"EnableOuterJoinEscape"_ustr, Any( true ) },
+ { u"PreferDosLikeLineEnds"_ustr, Any( false ) },
+ { u"FormsCheckRequiredFields"_ustr, Any( true ) },
+ { u"EscapeDateTime"_ustr, Any( true ) },
// known services to handle database tasks
- AsciiPropertyValue( "TableAlterationServiceName", makeAny( OUString() ) ),
- AsciiPropertyValue( "TableRenameServiceName", makeAny( OUString() ) ),
- AsciiPropertyValue( "ViewAlterationServiceName", makeAny( OUString() ) ),
- AsciiPropertyValue( "ViewAccessServiceName", makeAny( OUString() ) ),
- AsciiPropertyValue( "CommandDefinitions", makeAny( OUString() ) ),
- AsciiPropertyValue( "Forms", makeAny( OUString() ) ),
- AsciiPropertyValue( "Reports", makeAny( OUString() ) ),
- AsciiPropertyValue( "KeyAlterationServiceName", makeAny( OUString() ) ),
- AsciiPropertyValue( "IndexAlterationServiceName", makeAny( OUString() ) ),
-
- AsciiPropertyValue()
+ { u"TableAlterationServiceName"_ustr, Any( OUString() ) },
+ { u"TableRenameServiceName"_ustr, Any( OUString() ) },
+ { u"ViewAlterationServiceName"_ustr, Any( OUString() ) },
+ { u"ViewAccessServiceName"_ustr, Any( OUString() ) },
+ { u"CommandDefinitions"_ustr, Any( OUString() ) },
+ { u"Forms"_ustr, Any( OUString() ) },
+ { u"Reports"_ustr, Any( OUString() ) },
+ { u"KeyAlterationServiceName"_ustr, Any( OUString() ) },
+ { u"IndexAlterationServiceName"_ustr, Any( OUString() ) },
};
return aKnownSettings;
}
TContentPtr& ODatabaseModelImpl::getObjectContainer( ObjectType _eType )
{
- OSL_PRECOND( _eType >= E_FORM && _eType <= E_TABLE, "ODatabaseModelImpl::getObjectContainer: illegal index!" );
TContentPtr& rContentPtr = m_aContainer[ _eType ];
if ( !rContentPtr )
@@ -1133,8 +1122,9 @@ bool ODatabaseModelImpl::adjustMacroMode_AutoReject()
bool ODatabaseModelImpl::checkMacrosOnLoading()
{
Reference< XInteractionHandler > xInteraction;
- xInteraction = m_aMediaDescriptor.getOrDefault( "InteractionHandler", xInteraction );
- return m_aMacroMode.checkMacrosOnLoading( xInteraction );
+ xInteraction = m_aMediaDescriptor.getOrDefault( u"InteractionHandler"_ustr, xInteraction );
+ const bool bHasMacros = m_aMacroMode.hasMacros();
+ return m_aMacroMode.checkMacrosOnLoading(xInteraction, false /*HasValidContentSignature*/, bHasMacros);
}
void ODatabaseModelImpl::resetMacroExecutionMode()
@@ -1148,7 +1138,9 @@ Reference< XStorageBasedLibraryContainer > ODatabaseModelImpl::getLibraryContain
if ( rxContainer.is() )
return rxContainer;
- Reference< XStorageBasedDocument > xDocument( getModel_noCreate(), UNO_QUERY_THROW );
+ rtl::Reference< ODatabaseDocument > xDocument( getModel_noCreate() );
+ if (!xDocument)
+ throw uno::RuntimeException();
// this is only to be called if there already exists a document model - in fact, it is
// to be called by the document model only
@@ -1170,7 +1162,7 @@ Reference< XStorageBasedLibraryContainer > ODatabaseModelImpl::getLibraryContain
{
throw WrappedTargetRuntimeException(
OUString(),
- xDocument,
+ cppu::getXWeak(xDocument.get()),
::cppu::getCaughtException()
);
}
@@ -1205,7 +1197,7 @@ namespace
if ( xModify.is() && !_bListen && _inout_rListener.is() )
{
- xModify->removeModifyListener( _inout_rListener.get() );
+ xModify->removeModifyListener( _inout_rListener );
}
if ( _inout_rListener.is() )
@@ -1217,7 +1209,7 @@ namespace
if ( xModify.is() && _bListen )
{
_inout_rListener = new ::sfx2::DocumentStorageModifyListener( _rDocument, _rMutex );
- xModify->addModifyListener( _inout_rListener.get() );
+ xModify->addModifyListener( _inout_rListener );
}
}
}
@@ -1301,7 +1293,7 @@ sal_Int16 ODatabaseModelImpl::getCurrentMacroExecMode() const
sal_Int16 nCurrentMode = MacroExecMode::NEVER_EXECUTE;
try
{
- nCurrentMode = m_aMediaDescriptor.getOrDefault( "MacroExecutionMode", nCurrentMode );
+ nCurrentMode = m_aMediaDescriptor.getOrDefault( u"MacroExecutionMode"_ustr, nCurrentMode );
}
catch( const Exception& )
{
@@ -1312,7 +1304,7 @@ sal_Int16 ODatabaseModelImpl::getCurrentMacroExecMode() const
void ODatabaseModelImpl::setCurrentMacroExecMode( sal_uInt16 nMacroMode )
{
- m_aMediaDescriptor.put( "MacroExecutionMode", nMacroMode );
+ m_aMediaDescriptor.put( u"MacroExecutionMode"_ustr, nMacroMode );
}
OUString ODatabaseModelImpl::getDocumentLocation() const
@@ -1332,17 +1324,17 @@ ODatabaseModelImpl::EmbeddedMacros ODatabaseModelImpl::determineEmbeddedMacros()
{
if ( ::sfx2::DocumentMacroMode::storageHasMacros( getOrCreateRootStorage() ) )
{
- m_aEmbeddedMacros = eDocumentWideMacros;
+ m_aEmbeddedMacros = EmbeddedMacros::DocumentWide;
}
- else if ( lcl_hasObjectsWithMacros_nothrow( *this, E_FORM )
- || lcl_hasObjectsWithMacros_nothrow( *this, E_REPORT )
+ else if ( lcl_hasObjectsWithMacros_nothrow( *this, ObjectType::Form )
+ || lcl_hasObjectsWithMacros_nothrow( *this, ObjectType::Report )
)
{
- m_aEmbeddedMacros = eSubDocumentMacros;
+ m_aEmbeddedMacros = EmbeddedMacros::SubDocument;
}
else
{
- m_aEmbeddedMacros = eNoMacros;
+ m_aEmbeddedMacros = EmbeddedMacros::NONE;
}
}
return *m_aEmbeddedMacros;
@@ -1351,7 +1343,7 @@ ODatabaseModelImpl::EmbeddedMacros ODatabaseModelImpl::determineEmbeddedMacros()
bool ODatabaseModelImpl::documentStorageHasMacros() const
{
const_cast< ODatabaseModelImpl* >( this )->determineEmbeddedMacros();
- return ( *m_aEmbeddedMacros != eNoMacros );
+ return ( *m_aEmbeddedMacros != EmbeddedMacros::NONE );
}
bool ODatabaseModelImpl::macroCallsSeenWhileLoading() const
@@ -1361,7 +1353,7 @@ bool ODatabaseModelImpl::macroCallsSeenWhileLoading() const
Reference< XEmbeddedScripts > ODatabaseModelImpl::getEmbeddedDocumentScripts() const
{
- return Reference< XEmbeddedScripts >( getModel_noCreate(), UNO_QUERY );
+ return getModel_noCreate();
}
SignatureState ODatabaseModelImpl::getScriptingSignatureState()
@@ -1369,7 +1361,8 @@ SignatureState ODatabaseModelImpl::getScriptingSignatureState()
return m_nScriptingSignatureState;
}
-bool ODatabaseModelImpl::hasTrustedScriptingSignature(bool bAllowUIToAddAuthor)
+bool ODatabaseModelImpl::hasTrustedScriptingSignature(
+ const css::uno::Reference<css::task::XInteractionHandler>& _rxInteraction)
{
bool bResult = false;
@@ -1384,7 +1377,7 @@ bool ODatabaseModelImpl::hasTrustedScriptingSignature(bool bAllowUIToAddAuthor)
uno::Reference<security::XDocumentDigitalSignatures> xSigner(
security::DocumentDigitalSignatures::createWithVersion(
comphelper::getProcessComponentContext(), aODFVersion));
- uno::Sequence<security::DocumentSignatureInformation> aInfo
+ const uno::Sequence<security::DocumentSignatureInformation> aInfo
= xSigner->verifyScriptingContentSignatures(xStorage,
uno::Reference<io::XInputStream>());
@@ -1401,20 +1394,15 @@ bool ODatabaseModelImpl::hasTrustedScriptingSignature(bool bAllowUIToAddAuthor)
});
}
- if (!bResult && bAllowUIToAddAuthor)
+ if (!bResult && _rxInteraction)
{
- Reference<XInteractionHandler> xInteraction;
- xInteraction = m_aMediaDescriptor.getOrDefault("InteractionHandler", xInteraction);
- if (xInteraction.is())
- {
- task::DocumentMacroConfirmationRequest aRequest;
- aRequest.DocumentURL = m_sDocFileLocation;
- aRequest.DocumentStorage = xStorage;
- aRequest.DocumentSignatureInformation = aInfo;
- aRequest.DocumentVersion = aODFVersion;
- aRequest.Classification = task::InteractionClassification_QUERY;
- bResult = SfxMedium::CallApproveHandler(xInteraction, uno::makeAny(aRequest), true);
- }
+ task::DocumentMacroConfirmationRequest aRequest;
+ aRequest.DocumentURL = m_sDocFileLocation;
+ aRequest.DocumentStorage = std::move(xStorage);
+ aRequest.DocumentSignatureInformation = aInfo;
+ aRequest.DocumentVersion = aODFVersion;
+ aRequest.Classification = task::InteractionClassification_QUERY;
+ bResult = SfxMedium::CallApproveHandler(_rxInteraction, uno::Any(aRequest), true);
}
}
catch (uno::Exception&)
@@ -1429,8 +1417,8 @@ void ODatabaseModelImpl::storageIsModified()
setModified( true );
}
-ModelDependentComponent::ModelDependentComponent( const ::rtl::Reference< ODatabaseModelImpl >& _model )
- :m_pImpl( _model )
+ModelDependentComponent::ModelDependentComponent( ::rtl::Reference< ODatabaseModelImpl > _model )
+ :m_pImpl(std::move( _model ))
{
}
diff --git a/dbaccess/source/core/dataaccess/SharedConnection.cxx b/dbaccess/source/core/dataaccess/SharedConnection.cxx
index 93bd17ff71af..86dae318ede9 100644
--- a/dbaccess/source/core/dataaccess/SharedConnection.cxx
+++ b/dbaccess/source/core/dataaccess/SharedConnection.cxx
@@ -28,130 +28,118 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::container;
using namespace connectivity;
-OSharedConnection::OSharedConnection(Reference< XAggregation >& _rxProxyConnection)
- : OSharedConnection_BASE(m_aMutex)
+OSharedConnection::OSharedConnection(Reference<XAggregation>& _rxProxyConnection)
{
- setDelegation(_rxProxyConnection,m_refCount);
+ setDelegation(_rxProxyConnection);
}
-OSharedConnection::~OSharedConnection()
-{
-}
+OSharedConnection::~OSharedConnection() {}
-void SAL_CALL OSharedConnection::disposing()
+Reference<XStatement> SAL_CALL OSharedConnection::createStatement()
{
- OSharedConnection_BASE::disposing();
- OConnectionWrapper::disposing();
-}
-
-Reference< XStatement > SAL_CALL OSharedConnection::createStatement( )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->createStatement();
}
-Reference< XPreparedStatement > SAL_CALL OSharedConnection::prepareStatement( const OUString& sql )
+Reference<XPreparedStatement> SAL_CALL OSharedConnection::prepareStatement(const OUString& sql)
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->prepareStatement(sql);
}
-Reference< XPreparedStatement > SAL_CALL OSharedConnection::prepareCall( const OUString& sql )
+Reference<XPreparedStatement> SAL_CALL OSharedConnection::prepareCall(const OUString& sql)
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->prepareCall(sql);
}
-OUString SAL_CALL OSharedConnection::nativeSQL( const OUString& sql )
+OUString SAL_CALL OSharedConnection::nativeSQL(const OUString& sql)
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->nativeSQL(sql);
}
-sal_Bool SAL_CALL OSharedConnection::getAutoCommit( )
+sal_Bool SAL_CALL OSharedConnection::getAutoCommit()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->getAutoCommit();
}
-void SAL_CALL OSharedConnection::commit( )
+void SAL_CALL OSharedConnection::commit()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
m_xConnection->commit();
}
-void SAL_CALL OSharedConnection::rollback( )
+void SAL_CALL OSharedConnection::rollback()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
m_xConnection->rollback();
}
-sal_Bool SAL_CALL OSharedConnection::isClosed( )
+sal_Bool SAL_CALL OSharedConnection::isClosed()
{
- ::osl::MutexGuard aGuard( m_aMutex );
- if ( !m_xConnection.is() )
+ ::osl::MutexGuard aGuard(m_aMutex);
+ if (!m_xConnection.is())
return true;
return m_xConnection->isClosed();
}
-Reference< XDatabaseMetaData > SAL_CALL OSharedConnection::getMetaData( )
+Reference<XDatabaseMetaData> SAL_CALL OSharedConnection::getMetaData()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
-
return m_xConnection->getMetaData();
}
-sal_Bool SAL_CALL OSharedConnection::isReadOnly( )
+sal_Bool SAL_CALL OSharedConnection::isReadOnly()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->isReadOnly();
}
-OUString SAL_CALL OSharedConnection::getCatalog( )
+OUString SAL_CALL OSharedConnection::getCatalog()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->getCatalog();
}
-sal_Int32 SAL_CALL OSharedConnection::getTransactionIsolation( )
+sal_Int32 SAL_CALL OSharedConnection::getTransactionIsolation()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->getTransactionIsolation();
}
-Reference< css::container::XNameAccess > SAL_CALL OSharedConnection::getTypeMap( )
+Reference<css::container::XNameAccess> SAL_CALL OSharedConnection::getTypeMap()
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ ::osl::MutexGuard aGuard(m_aMutex);
checkDisposed(rBHelper.bDisposed);
return m_xConnection->getTypeMap();
}
-IMPLEMENT_GET_IMPLEMENTATION_ID( OSharedConnection )
-
-} // namespace dbaccess
+} // namespace dbaccess
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/SharedConnection.hxx b/dbaccess/source/core/dataaccess/SharedConnection.hxx
index c0ced3f1ca40..e4467c44d060 100644
--- a/dbaccess/source/core/dataaccess/SharedConnection.hxx
+++ b/dbaccess/source/core/dataaccess/SharedConnection.hxx
@@ -32,40 +32,17 @@ namespace dbaccess
// All methods will be forwarded with exception of the set methods, which are not allowed
// to be called on shared connections. Instances of this class will be created when the
// datasource is asked for not isolated connection.
- typedef ::cppu::WeakComponentImplHelper< css::sdbc::XConnection
+ typedef ::cppu::ImplInheritanceHelper<connectivity::OConnectionWrapper,
+ css::sdbc::XConnection
> OSharedConnection_BASE;
- typedef ::connectivity::OConnectionWrapper OSharedConnection_BASE2;
- class OSharedConnection : public ::cppu::BaseMutex
- , public OSharedConnection_BASE
- , public OSharedConnection_BASE2
+ class OSharedConnection : public OSharedConnection_BASE
{
protected:
- virtual void SAL_CALL disposing() override;
virtual ~OSharedConnection() override;
public:
explicit OSharedConnection(css::uno::Reference< css::uno::XAggregation >& _rxProxyConnection);
- virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override;
-
- virtual void SAL_CALL acquire() throw() override { OSharedConnection_BASE::acquire(); }
- virtual void SAL_CALL release() throw() override { OSharedConnection_BASE::release(); }
- virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override
- {
- return ::comphelper::concatSequences(
- OSharedConnection_BASE::getTypes(),
- OSharedConnection_BASE2::getTypes()
- );
- }
-
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& _rType ) override
- {
- css::uno::Any aReturn = OSharedConnection_BASE::queryInterface(_rType);
- if ( !aReturn.hasValue() )
- aReturn = OSharedConnection_BASE2::queryInterface(_rType);
- return aReturn;
- }
-
// XCloseable
virtual void SAL_CALL close( ) override
{
@@ -79,23 +56,23 @@ namespace dbaccess
// XConnection
virtual void SAL_CALL setAutoCommit( sal_Bool /*autoCommit*/ ) override
{
- throw css::sdbc::SQLException("This call is not allowed when sharing connections.",*this,"S10000",0,css::uno::Any());
+ throw css::sdbc::SQLException(u"This call is not allowed when sharing connections."_ustr,*this,u"S10000"_ustr,0,css::uno::Any());
}
virtual void SAL_CALL setReadOnly( sal_Bool /*readOnly*/ ) override
{
- throw css::sdbc::SQLException("This call is not allowed when sharing connections.",*this,"S10000",0,css::uno::Any());
+ throw css::sdbc::SQLException(u"This call is not allowed when sharing connections."_ustr,*this,u"S10000"_ustr,0,css::uno::Any());
}
virtual void SAL_CALL setCatalog( const OUString& /*catalog*/ ) override
{
- throw css::sdbc::SQLException("This call is not allowed when sharing connections.",*this,"S10000",0,css::uno::Any());
+ throw css::sdbc::SQLException(u"This call is not allowed when sharing connections."_ustr,*this,u"S10000"_ustr,0,css::uno::Any());
}
virtual void SAL_CALL setTransactionIsolation( sal_Int32 /*level*/ ) override
{
- throw css::sdbc::SQLException("This call is not allowed when sharing connections.",*this,"S10000",0,css::uno::Any());
+ throw css::sdbc::SQLException(u"This call is not allowed when sharing connections."_ustr,*this,u"S10000"_ustr,0,css::uno::Any());
}
virtual void SAL_CALL setTypeMap( const css::uno::Reference< css::container::XNameAccess >& /*typeMap*/ ) override
{
- throw css::sdbc::SQLException("This call is not allowed when sharing connections.",*this,"S10000",0,css::uno::Any());
+ throw css::sdbc::SQLException(u"This call is not allowed when sharing connections."_ustr,*this,u"S10000"_ustr,0,css::uno::Any());
}
// XConnection
virtual css::uno::Reference< css::sdbc::XStatement > SAL_CALL createStatement( ) override;
diff --git a/dbaccess/source/core/dataaccess/bookmarkcontainer.cxx b/dbaccess/source/core/dataaccess/bookmarkcontainer.cxx
index 647aaf557f97..3d0657e26603 100644
--- a/dbaccess/source/core/dataaccess/bookmarkcontainer.cxx
+++ b/dbaccess/source/core/dataaccess/bookmarkcontainer.cxx
@@ -19,6 +19,7 @@
#include <bookmarkcontainer.hxx>
+#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
#include <comphelper/enumhelper.hxx>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
@@ -45,12 +46,12 @@ OBookmarkContainer::OBookmarkContainer(OWeakObject& _rParent, Mutex& _rMutex)
}
-void SAL_CALL OBookmarkContainer::acquire( ) throw()
+void SAL_CALL OBookmarkContainer::acquire( ) noexcept
{
m_rParent.acquire();
}
-void SAL_CALL OBookmarkContainer::release( ) throw()
+void SAL_CALL OBookmarkContainer::release( ) noexcept
{
m_rParent.release();
}
@@ -62,7 +63,7 @@ OBookmarkContainer::~OBookmarkContainer()
// XServiceInfo
OUString SAL_CALL OBookmarkContainer::getImplementationName( )
{
- return "com.sun.star.comp.dba.OBookmarkContainer";
+ return u"com.sun.star.comp.dba.OBookmarkContainer"_ustr;
}
sal_Bool SAL_CALL OBookmarkContainer::supportsService( const OUString& _rServiceName )
@@ -72,7 +73,7 @@ sal_Bool SAL_CALL OBookmarkContainer::supportsService( const OUString& _rService
Sequence< OUString > SAL_CALL OBookmarkContainer::getSupportedServiceNames( )
{
- return { "com.sun.star.sdb.DefinitionContainer" };
+ return { u"com.sun.star.sdb.DefinitionContainer"_ustr };
}
// XNameContainer
@@ -96,10 +97,8 @@ void SAL_CALL OBookmarkContainer::insertByName( const OUString& _rName, const An
// notify the listeners
if (m_aContainerListeners.getLength())
{
- ContainerEvent aEvent(*this, makeAny(_rName), makeAny(sNewLink), Any());
- OInterfaceIteratorHelper2 aListenerIterator(m_aContainerListeners);
- while (aListenerIterator.hasMoreElements())
- static_cast< XContainerListener* >(aListenerIterator.next())->elementInserted(aEvent);
+ ContainerEvent aEvent(*this, Any(_rName), Any(sNewLink), Any());
+ m_aContainerListeners.notifyEach( &XContainerListener::elementInserted, aEvent );
}
}
@@ -126,10 +125,8 @@ void SAL_CALL OBookmarkContainer::removeByName( const OUString& _rName )
// notify the listeners
if (m_aContainerListeners.getLength())
{
- ContainerEvent aEvent(*this, makeAny(_rName), makeAny(sOldBookmark), Any());
- OInterfaceIteratorHelper2 aListenerIterator(m_aContainerListeners);
- while (aListenerIterator.hasMoreElements())
- static_cast< XContainerListener* >(aListenerIterator.next())->elementRemoved(aEvent);
+ ContainerEvent aEvent(*this, Any(_rName), Any(sOldBookmark), Any());
+ m_aContainerListeners.notifyEach( &XContainerListener::elementRemoved, aEvent );
}
}
@@ -161,10 +158,8 @@ void SAL_CALL OBookmarkContainer::replaceByName( const OUString& _rName, const A
aGuard.clear();
if (m_aContainerListeners.getLength())
{
- ContainerEvent aEvent(*this, makeAny(_rName), makeAny(sNewLink), makeAny(sOldLink));
- OInterfaceIteratorHelper2 aListenerIterator(m_aContainerListeners);
- while (aListenerIterator.hasMoreElements())
- static_cast< XContainerListener* >(aListenerIterator.next())->elementReplaced(aEvent);
+ ContainerEvent aEvent(*this, Any(_rName), Any(sNewLink), Any(sOldLink));
+ m_aContainerListeners.notifyEach( &XContainerListener::elementReplaced, aEvent );
}
}
@@ -185,7 +180,6 @@ void SAL_CALL OBookmarkContainer::removeContainerListener( const Reference< XCon
// XElementAccess
Type SAL_CALL OBookmarkContainer::getElementType( )
{
- MutexGuard aGuard(m_rMutex);
return ::cppu::UnoType<OUString>::get();
}
@@ -213,10 +207,10 @@ Any SAL_CALL OBookmarkContainer::getByIndex( sal_Int32 _nIndex )
{
MutexGuard aGuard(m_rMutex);
- if ((_nIndex < 0) || (_nIndex >= static_cast<sal_Int32>(m_aBookmarksIndexed.size())))
+ if ((_nIndex < 0) || (o3tl::make_unsigned(_nIndex) >= m_aBookmarksIndexed.size()))
throw IndexOutOfBoundsException();
- return makeAny(m_aBookmarksIndexed[_nIndex]->second);
+ return Any(m_aBookmarksIndexed[_nIndex]->second);
}
Any SAL_CALL OBookmarkContainer::getByName( const OUString& _rName )
@@ -226,7 +220,7 @@ Any SAL_CALL OBookmarkContainer::getByName( const OUString& _rName )
if (!checkExistence(_rName))
throw NoSuchElementException();
- return makeAny(m_aBookmarks[_rName]);
+ return Any(m_aBookmarks[_rName]);
}
Sequence< OUString > SAL_CALL OBookmarkContainer::getElementNames( )
diff --git a/dbaccess/source/core/dataaccess/commandcontainer.cxx b/dbaccess/source/core/dataaccess/commandcontainer.cxx
index 55087272b992..9f426f4651a6 100644
--- a/dbaccess/source/core/dataaccess/commandcontainer.cxx
+++ b/dbaccess/source/core/dataaccess/commandcontainer.cxx
@@ -24,11 +24,7 @@
#include <com/sun/star/sdb/CommandDefinition.hpp>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::ucb;
-using namespace ::osl;
using namespace ::comphelper;
using namespace ::cppu;
@@ -52,7 +48,13 @@ OCommandContainer::~OCommandContainer()
}
IMPLEMENT_FORWARD_XINTERFACE2( OCommandContainer,ODefinitionContainer,OCommandContainer_BASE)
-IMPLEMENT_GETTYPES2(OCommandContainer,ODefinitionContainer,OCommandContainer_BASE);
+css::uno::Sequence< css::uno::Type > OCommandContainer::getTypes()
+{
+ return ::comphelper::concatSequences(
+ ODefinitionContainer::getTypes( ),
+ OCommandContainer_BASE::getTypes( )
+ );
+}
css::uno::Sequence<sal_Int8> OCommandContainer::getImplementationId()
{
@@ -86,7 +88,7 @@ Reference< XInterface > SAL_CALL OCommandContainer::createInstance( )
OUString OCommandContainer::determineContentType() const
{
- return "application/vnd.org.openoffice.DatabaseCommandDefinitionContainer";
+ return u"application/vnd.org.openoffice.DatabaseCommandDefinitionContainer"_ustr;
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/dataaccess/commanddefinition.cxx b/dbaccess/source/core/dataaccess/commanddefinition.cxx
index 41ce139a8dc1..6dfe5056e7ab 100644
--- a/dbaccess/source/core/dataaccess/commanddefinition.cxx
+++ b/dbaccess/source/core/dataaccess/commanddefinition.cxx
@@ -18,16 +18,14 @@
*/
#include "commanddefinition.hxx"
-#include <apitools.hxx>
#include <stringconstants.hxx>
+#include <strings.hxx>
#include <com/sun/star/container/ElementExistException.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
@@ -81,21 +79,42 @@ css::uno::Sequence<sal_Int8> OCommandDefinition::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES2(OCommandDefinition,OCommandDefinition_Base,OComponentDefinition);
+css::uno::Sequence< css::uno::Type > OCommandDefinition::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OCommandDefinition_Base::getTypes( ),
+ OComponentDefinition::getTypes( )
+ );
+}
IMPLEMENT_FORWARD_XINTERFACE2( OCommandDefinition,OComponentDefinition,OCommandDefinition_Base)
-IMPLEMENT_PROPERTYCONTAINER_DEFAULTS2(OCommandDefinition,OCommandDefinition_PROP)
+css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL OCommandDefinition::getPropertySetInfo()
+{
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+::cppu::IPropertyArrayHelper& OCommandDefinition::getInfoHelper()
+{
+ return *OCommandDefinition_PROP::getArrayHelper();
+}
+::cppu::IPropertyArrayHelper* OCommandDefinition::createArrayHelper( ) const
+{
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
OUString SAL_CALL OCommandDefinition::getImplementationName()
{
- return "com.sun.star.comp.dba.OCommandDefinition";
+ return u"com.sun.star.comp.dba.OCommandDefinition"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL OCommandDefinition::getSupportedServiceNames()
{
return {
- "com.sun.star.sdb.QueryDefinition",
- "com.sun.star.sdb.CommandDefinition",
- "com.sun.star.ucb.Content"
+ u"com.sun.star.sdb.QueryDefinition"_ustr,
+ u"com.sun.star.sdb.CommandDefinition"_ustr,
+ u"com.sun.star.ucb.Content"_ustr
};
}
@@ -105,9 +124,9 @@ void SAL_CALL OCommandDefinition::rename( const OUString& newName )
{
sal_Int32 nHandle = PROPERTY_ID_NAME;
osl::ClearableGuard< osl::Mutex > aGuard(m_aMutex);
- Any aOld = makeAny(m_pImpl->m_aProps.aTitle);
+ Any aOld(m_pImpl->m_aProps.aTitle);
aGuard.clear();
- Any aNew = makeAny(newName);
+ Any aNew(newName);
fire(&nHandle, &aNew, &aOld, 1, true );
m_pImpl->m_aProps.aTitle = newName;
diff --git a/dbaccess/source/core/dataaccess/connection.cxx b/dbaccess/source/core/dataaccess/connection.cxx
index 2754a2c7d56e..3b51edccd73f 100644
--- a/dbaccess/source/core/dataaccess/connection.cxx
+++ b/dbaccess/source/core/dataaccess/connection.cxx
@@ -21,9 +21,10 @@
#include <iterator>
-#include "connection.hxx"
+#include <connection.hxx>
#include "datasource.hxx"
#include <strings.hrc>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <statement.hxx>
#include <preparedstatement.hxx>
@@ -38,7 +39,7 @@
#include <com/sun/star/beans/NamedValue.hpp>
#include <connectivity/dbtools.hxx>
#include <connectivity/dbmetadata.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <comphelper/sequence.hxx>
#include <comphelper/types.hxx>
@@ -46,7 +47,6 @@
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdb::application;
using namespace ::com::sun::star::sdbc;
@@ -70,7 +70,7 @@ namespace dbaccess
// XServiceInfo
OUString OConnection::getImplementationName( )
{
- return "com.sun.star.comp.dbaccess.Connection";
+ return u"com.sun.star.comp.dbaccess.Connection"_ustr;
}
sal_Bool OConnection::supportsService( const OUString& _rServiceName )
@@ -86,7 +86,7 @@ Sequence< OUString > OConnection::getSupportedServiceNames( )
{
sal_Int32 nLen = aSupported.getLength();
aSupported.realloc( nLen + 1 );
- aSupported[ nLen ] = SERVICE_SDB_CONNECTION;
+ aSupported.getArray()[ nLen ] = SERVICE_SDB_CONNECTION;
}
return aSupported;
@@ -111,7 +111,7 @@ Reference< XStatement > OConnection::createStatement()
MutexGuard aGuard(m_aMutex);
checkDisposed();
- Reference< XStatement > xStatement;
+ rtl::Reference< OStatement > xStatement;
Reference< XStatement > xMasterStatement = m_xMasterConnection->createStatement();
if ( xMasterStatement.is() )
{
@@ -127,7 +127,7 @@ Reference< XPreparedStatement > OConnection::prepareStatement(const OUString& s
checkDisposed();
// TODO convert the SQL to SQL the driver understands
- Reference< XPreparedStatement > xStatement;
+ rtl::Reference< OPreparedStatement > xStatement;
Reference< XPreparedStatement > xMasterStatement = m_xMasterConnection->prepareStatement(sql);
if ( xMasterStatement.is() )
{
@@ -142,7 +142,7 @@ Reference< XPreparedStatement > OConnection::prepareCall(const OUString& sql)
MutexGuard aGuard(m_aMutex);
checkDisposed();
- Reference< XPreparedStatement > xStatement;
+ rtl::Reference< OCallableStatement > xStatement;
Reference< XPreparedStatement > xMasterStatement = m_xMasterConnection->prepareCall(sql);
if ( xMasterStatement.is() )
{
@@ -255,10 +255,7 @@ void OConnection::setTypeMap(const Reference< XNameAccess > & typeMap)
OConnection::OConnection(ODatabaseSource& _rDB
, Reference< XConnection > const & _rxMaster
, const Reference< XComponentContext >& _rxORB)
- :OSubComponent(m_aMutex, static_cast< OWeakObject* >(&_rDB))
- // as the queries reroute their refcounting to us, this m_aMutex is okey. If the queries
- // container would do its own refcounting, it would have to acquire m_pMutex
- // same for tables
+ :m_xParent(&_rDB)
,m_aTableFilter(_rDB.m_pImpl->m_aTableFilter)
,m_aTableTypeFilter(_rDB.m_pImpl->m_aTableTypeFilter)
,m_aContext( _rxORB )
@@ -274,8 +271,8 @@ OConnection::OConnection(ODatabaseSource& _rDB
try
{
Reference< XProxyFactory > xProxyFactory = ProxyFactory::create( m_aContext );
- Reference<XAggregation> xAgg = xProxyFactory->createProxy(_rxMaster.get());
- setDelegation(xAgg,m_refCount);
+ Reference<XAggregation> xAgg = xProxyFactory->createProxy(_rxMaster);
+ setDelegation(xAgg);
OSL_ENSURE(m_xConnection.is(), "OConnection::OConnection : invalid master connection !");
}
catch(const Exception&)
@@ -319,6 +316,16 @@ OConnection::OConnection(ODatabaseSource& _rDB
}
}
}
+ // tdf#130564: getTableTypes retrieves only the table types of the current database and not all the possible table types
+ // provided by the DBMS. JDBC would need a new function, something like "supportsViews()"
+ // do the same for MySQL/MariaDB since we're on it
+ OUString strDbProductName = xMeta->getDatabaseProductName();
+ if (!m_bSupportsViews && xMeta->getURL().startsWith("sdbc:odbc:") &&
+ (strDbProductName == "PostgreSQL" || strDbProductName == "MySQL")
+ )
+ {
+ m_bSupportsViews = true;
+ }
// some dbs don't support this type so we should ask if a XViewsSupplier is supported
if(!m_bSupportsViews)
{
@@ -388,9 +395,7 @@ Sequence< Type > OConnection::getTypes()
{
TypeBag aNormalizedTypes;
- lcl_copyTypes( aNormalizedTypes, OSubComponent::getTypes() );
lcl_copyTypes( aNormalizedTypes, OConnection_Base::getTypes() );
- lcl_copyTypes( aNormalizedTypes, ::connectivity::OConnectionWrapper::getTypes() );
if ( !m_bSupportsViews )
aNormalizedTypes.erase( cppu::UnoType<XViewsSupplier>::get() );
@@ -402,11 +407,6 @@ Sequence< Type > OConnection::getTypes()
return comphelper::containerToSequence(aNormalizedTypes);
}
-Sequence< sal_Int8 > OConnection::getImplementationId()
-{
- return css::uno::Sequence<sal_Int8>();
-}
-
// css::uno::XInterface
Any OConnection::queryInterface( const Type & rType )
{
@@ -416,39 +416,19 @@ Any OConnection::queryInterface( const Type & rType )
return Any();
else if ( !m_bSupportsGroups && rType.equals( cppu::UnoType<XGroupsSupplier>::get() ) )
return Any();
- Any aReturn = OSubComponent::queryInterface( rType );
- if (!aReturn.hasValue())
- {
- aReturn = OConnection_Base::queryInterface( rType );
- if (!aReturn.hasValue())
- aReturn = OConnectionWrapper::queryInterface( rType );
- }
- return aReturn;
-}
-
-void OConnection::acquire() throw ()
-{
- // include this one when you want to see who calls it (call graph)
- OSubComponent::acquire();
-}
-
-void OConnection::release() throw ()
-{
- // include this one when you want to see who calls it (call graph)
- OSubComponent::release();
+ return OConnection_Base::queryInterface( rType );
}
-// OSubComponent
+// OConnection_Base
void OConnection::disposing()
{
MutexGuard aGuard(m_aMutex);
- OSubComponent::disposing();
- OConnectionWrapper::disposing();
+ OConnection_Base::disposing();
for (auto const& statement : m_aStatements)
{
- Reference<XComponent> xComp(statement.get(),UNO_QUERY);
+ rtl::Reference<OStatementBase> xComp(statement.get());
::comphelper::disposeComponent(xComp);
}
m_aStatements.clear();
@@ -485,7 +465,7 @@ Reference< XInterface > OConnection::getParent()
{
MutexGuard aGuard(m_aMutex);
checkDisposed();
- return m_xParent;
+ return static_cast<OWeakObject*>(m_xParent.get().get());
}
void OConnection::setParent(const Reference< XInterface > & /*Parent*/)
@@ -628,9 +608,8 @@ Reference< XInterface > SAL_CALL OConnection::createInstance( const OUString& _s
TSupportServices::const_iterator aFind = m_aSupportServices.find(_sServiceSpecifier);
if ( aFind == m_aSupportServices.end() )
{
- Sequence<Any> aArgs(1);
Reference<XConnection> xMy(this);
- aArgs[0] <<= NamedValue("ActiveConnection",makeAny(xMy));
+ Sequence<Any> aArgs{ Any(NamedValue(u"ActiveConnection"_ustr,Any(xMy))) };
aFind = m_aSupportServices.emplace(
_sServiceSpecifier,
m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(_sServiceSpecifier, aArgs, m_aContext)
@@ -750,7 +729,7 @@ void OConnection::impl_checkTableQueryNames_nothrow()
try
{
Reference< XNameAccess > xTables( getTables() );
- Sequence< OUString > aTableNames( xTables->getElementNames() );
+ const Sequence< OUString > aTableNames( xTables->getElementNames() );
std::set< OUString > aSortedTableNames( aTableNames.begin(), aTableNames.end() );
Reference< XNameAccess > xQueries( getQueries() );
@@ -758,7 +737,7 @@ void OConnection::impl_checkTableQueryNames_nothrow()
for ( auto const & queryName : aQueryNames )
{
- if ( aSortedTableNames.find( queryName ) != aSortedTableNames.end() )
+ if ( aSortedTableNames.contains(queryName) )
{
OUString sConflictWarning( DBA_RES( RID_STR_CONFLICTING_NAMES ) );
m_aWarnings.appendWarning( sConflictWarning, "01SB0", *this );
diff --git a/dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx b/dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx
index d35d6ac00e55..ae099dfb1bed 100644
--- a/dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx
+++ b/dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx
@@ -35,7 +35,6 @@
#include <comphelper/uno3.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <rtl/ref.hxx>
namespace
{
@@ -112,48 +111,29 @@ namespace
// </properties>
};
-#define REGISTER_PROPERTY( propname, member ) \
- registerProperty( PROPERTY_##propname, PROPERTY_ID_##propname, PropertyAttribute::BOUND, &member, cppu::UnoType<decltype(member)>::get() )
-
DataAccessDescriptor::DataAccessDescriptor()
- :DataAccessDescriptor_MutexBase()
- ,DataAccessDescriptor_TypeBase()
- ,DataAccessDescriptor_PropertyBase( m_aBHelper )
- ,m_sDataSourceName()
- ,m_sDatabaseLocation()
- ,m_sConnectionResource()
- ,m_aConnectionInfo()
- ,m_xActiveConnection()
- ,m_sCommand()
+ :DataAccessDescriptor_PropertyBase( m_aBHelper )
,m_nCommandType( CommandType::COMMAND )
- ,m_sFilter()
- ,m_sOrder()
- ,m_sHavingClause()
- ,m_sGroupBy()
,m_bEscapeProcessing( true )
- ,m_xResultSet()
- ,m_aSelection()
,m_bBookmarkSelection( true )
- ,m_sColumnName()
- ,m_xColumn()
{
- REGISTER_PROPERTY( DATASOURCENAME, m_sDataSourceName );
- REGISTER_PROPERTY( DATABASE_LOCATION, m_sDatabaseLocation );
- REGISTER_PROPERTY( CONNECTION_RESOURCE, m_sConnectionResource );
- REGISTER_PROPERTY( CONNECTION_INFO, m_aConnectionInfo );
- REGISTER_PROPERTY( ACTIVE_CONNECTION, m_xActiveConnection );
- REGISTER_PROPERTY( COMMAND, m_sCommand );
- REGISTER_PROPERTY( COMMAND_TYPE, m_nCommandType );
- REGISTER_PROPERTY( FILTER, m_sFilter );
- REGISTER_PROPERTY( ORDER, m_sOrder );
- REGISTER_PROPERTY( HAVING_CLAUSE, m_sHavingClause );
- REGISTER_PROPERTY( GROUP_BY, m_sGroupBy );
- REGISTER_PROPERTY( ESCAPE_PROCESSING, m_bEscapeProcessing );
- REGISTER_PROPERTY( RESULT_SET, m_xResultSet );
- REGISTER_PROPERTY( SELECTION, m_aSelection );
- REGISTER_PROPERTY( BOOKMARK_SELECTION, m_bBookmarkSelection );
- REGISTER_PROPERTY( COLUMN_NAME, m_sColumnName );
- REGISTER_PROPERTY( COLUMN, m_xColumn );
+ registerProperty(PROPERTY_DATASOURCENAME, PROPERTY_ID_DATASOURCENAME, PropertyAttribute::BOUND, &m_sDataSourceName , cppu::UnoType<decltype(m_sDataSourceName )>::get());
+ registerProperty(PROPERTY_DATABASE_LOCATION, PROPERTY_ID_DATABASE_LOCATION, PropertyAttribute::BOUND, &m_sDatabaseLocation , cppu::UnoType<decltype(m_sDatabaseLocation )>::get());
+ registerProperty(PROPERTY_CONNECTION_RESOURCE, PROPERTY_ID_CONNECTION_RESOURCE, PropertyAttribute::BOUND, &m_sConnectionResource , cppu::UnoType<decltype(m_sConnectionResource )>::get());
+ registerProperty(PROPERTY_CONNECTION_INFO, PROPERTY_ID_CONNECTION_INFO, PropertyAttribute::BOUND, &m_aConnectionInfo , cppu::UnoType<decltype(m_aConnectionInfo )>::get());
+ registerProperty(PROPERTY_ACTIVE_CONNECTION, PROPERTY_ID_ACTIVE_CONNECTION, PropertyAttribute::BOUND, &m_xActiveConnection , cppu::UnoType<decltype(m_xActiveConnection )>::get());
+ registerProperty(PROPERTY_COMMAND, PROPERTY_ID_COMMAND, PropertyAttribute::BOUND, &m_sCommand , cppu::UnoType<decltype(m_sCommand )>::get());
+ registerProperty(PROPERTY_COMMAND_TYPE, PROPERTY_ID_COMMAND_TYPE, PropertyAttribute::BOUND, &m_nCommandType , cppu::UnoType<decltype(m_nCommandType )>::get());
+ registerProperty(PROPERTY_FILTER, PROPERTY_ID_FILTER, PropertyAttribute::BOUND, &m_sFilter , cppu::UnoType<decltype(m_sFilter )>::get());
+ registerProperty(PROPERTY_ORDER, PROPERTY_ID_ORDER, PropertyAttribute::BOUND, &m_sOrder , cppu::UnoType<decltype(m_sOrder )>::get());
+ registerProperty(PROPERTY_HAVING_CLAUSE, PROPERTY_ID_HAVING_CLAUSE, PropertyAttribute::BOUND, &m_sHavingClause , cppu::UnoType<decltype(m_sHavingClause )>::get());
+ registerProperty(PROPERTY_GROUP_BY, PROPERTY_ID_GROUP_BY, PropertyAttribute::BOUND, &m_sGroupBy , cppu::UnoType<decltype(m_sGroupBy )>::get());
+ registerProperty(PROPERTY_ESCAPE_PROCESSING, PROPERTY_ID_ESCAPE_PROCESSING, PropertyAttribute::BOUND, &m_bEscapeProcessing , cppu::UnoType<decltype(m_bEscapeProcessing )>::get());
+ registerProperty(PROPERTY_RESULT_SET, PROPERTY_ID_RESULT_SET, PropertyAttribute::BOUND, &m_xResultSet , cppu::UnoType<decltype(m_xResultSet )>::get());
+ registerProperty(PROPERTY_SELECTION, PROPERTY_ID_SELECTION, PropertyAttribute::BOUND, &m_aSelection , cppu::UnoType<decltype(m_aSelection )>::get());
+ registerProperty(PROPERTY_BOOKMARK_SELECTION, PROPERTY_ID_BOOKMARK_SELECTION, PropertyAttribute::BOUND, &m_bBookmarkSelection , cppu::UnoType<decltype(m_bBookmarkSelection )>::get());
+ registerProperty(PROPERTY_COLUMN_NAME, PROPERTY_ID_COLUMN_NAME, PropertyAttribute::BOUND, &m_sColumnName , cppu::UnoType<decltype(m_sColumnName )>::get());
+ registerProperty(PROPERTY_COLUMN, PROPERTY_ID_COLUMN, PropertyAttribute::BOUND, &m_xColumn , cppu::UnoType<decltype(m_xColumn )>::get());
}
DataAccessDescriptor::~DataAccessDescriptor()
@@ -166,7 +146,7 @@ namespace
OUString SAL_CALL DataAccessDescriptor::getImplementationName()
{
- return "com.sun.star.comp.dba.DataAccessDescriptor";
+ return u"com.sun.star.comp.dba.DataAccessDescriptor"_ustr;
}
sal_Bool SAL_CALL DataAccessDescriptor::supportsService( const OUString& rServiceName )
@@ -176,7 +156,7 @@ namespace
Sequence< OUString > SAL_CALL DataAccessDescriptor::getSupportedServiceNames( )
{
- return { "com.sun.star.sdb.DataAccessDescriptor" };
+ return { u"com.sun.star.sdb.DataAccessDescriptor"_ustr };
}
Reference< XPropertySetInfo > SAL_CALL DataAccessDescriptor::getPropertySetInfo()
@@ -218,7 +198,7 @@ namespace
OUString SAL_CALL DataAccessDescriptorFactory::getImplementationName()
{
- return "com.sun.star.comp.dba.DataAccessDescriptorFactory";
+ return u"com.sun.star.comp.dba.DataAccessDescriptorFactory"_ustr;
}
sal_Bool SAL_CALL DataAccessDescriptorFactory::supportsService( const OUString& rServiceName )
@@ -228,7 +208,7 @@ namespace
Sequence< OUString > SAL_CALL DataAccessDescriptorFactory::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DataAccessDescriptorFactory" };
+ return { u"com.sun.star.sdb.DataAccessDescriptorFactory"_ustr };
}
Reference< XPropertySet > SAL_CALL DataAccessDescriptorFactory::createDataAccessDescriptor( )
@@ -236,18 +216,6 @@ namespace
return new DataAccessDescriptor();
}
-struct Instance {
- explicit Instance():
- instance(new DataAccessDescriptorFactory())
- {}
-
- rtl::Reference<cppu::OWeakObject> instance;
-};
-
-struct Singleton:
- public rtl::Static<Instance, Singleton>
-{};
-
}
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
@@ -255,7 +223,7 @@ com_sun_star_comp_dba_DataAccessDescriptorFactory(
css::uno::XComponentContext *,
css::uno::Sequence<css::uno::Any> const &)
{
- return cppu::acquire(Singleton::get().instance.get());
+ return cppu::acquire(new DataAccessDescriptorFactory());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/databasecontext.cxx b/dbaccess/source/core/dataaccess/databasecontext.cxx
index b57cd9be52db..fc5dc5f0907e 100644
--- a/dbaccess/source/core/dataaccess/databasecontext.cxx
+++ b/dbaccess/source/core/dataaccess/databasecontext.cxx
@@ -20,10 +20,12 @@
#include <config_features.h>
#include <strings.hrc>
+#include <strings.hxx>
#include <core_resource.hxx>
#include <databasecontext.hxx>
#include "databaseregistrations.hxx"
#include "datasource.hxx"
+#include "databasedocument.hxx"
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -52,13 +54,12 @@
#include <comphelper/servicehelper.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/weak.hxx>
#include <rtl/uri.hxx>
#include <sal/log.hxx>
#include <svl/filenotation.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/urlobj.hxx>
#include <ucbhelper/content.hxx>
#include <rtl/ref.hxx>
@@ -74,7 +75,6 @@ using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::registry;
using namespace ::com::sun::star;
using namespace ::cppu;
using namespace ::osl;
@@ -139,14 +139,11 @@ namespace dbaccess
{
try
{
- const Reference< XModel2 > xMod( pCopy->getModel_noCreate(),
- UNO_QUERY_THROW );
+ const rtl::Reference< ODatabaseDocument > xMod( pCopy->getModel_noCreate() );
+ if (!xMod)
+ throw uno::RuntimeException();
if( !xMod->getControllers()->hasMoreElements() )
- {
- Reference< util::XCloseable > xClose( xMod,
- UNO_QUERY_THROW );
- xClose->close( false );
- }
+ xMod->close( false );
}
catch( const CloseVetoException& )
{
@@ -177,12 +174,7 @@ ODatabaseContext::ODatabaseContext( const Reference< XComponentContext >& _rxCon
#endif
osl_atomic_increment( &m_refCount );
- {
- m_xDBRegistrationAggregate.set( createDataSourceRegistrations( m_aContext ), UNO_SET_THROW );
- m_xDatabaseRegistrations.set( m_xDBRegistrationAggregate, UNO_QUERY_THROW );
-
- m_xDBRegistrationAggregate->setDelegator( *this );
- }
+ m_xDatabaseRegistrations = createDataSourceRegistrations( m_aContext );
osl_atomic_decrement( &m_refCount );
}
@@ -193,15 +185,13 @@ ODatabaseContext::~ODatabaseContext()
#endif
m_xDatabaseDocumentLoader.clear();
- m_xDBRegistrationAggregate->setDelegator( nullptr );
- m_xDBRegistrationAggregate.clear();
m_xDatabaseRegistrations.clear();
}
// XServiceInfo
OUString ODatabaseContext::getImplementationName( )
{
- return "com.sun.star.comp.dba.ODatabaseContext";
+ return u"com.sun.star.comp.dba.ODatabaseContext"_ustr;
}
sal_Bool ODatabaseContext::supportsService( const OUString& _rServiceName )
@@ -211,7 +201,7 @@ sal_Bool ODatabaseContext::supportsService( const OUString& _rServiceName )
Sequence< OUString > ODatabaseContext::getSupportedServiceNames( )
{
- return { "com.sun.star.sdb.DatabaseContext" };
+ return { u"com.sun.star.sdb.DatabaseContext"_ustr };
}
Reference< XInterface > ODatabaseContext::impl_createNewDataSource()
@@ -219,7 +209,7 @@ Reference< XInterface > ODatabaseContext::impl_createNewDataSource()
::rtl::Reference pImpl( new ODatabaseModelImpl( m_aContext, *this ) );
Reference< XDataSource > xDataSource( pImpl->getOrCreateDataSource() );
- return xDataSource.get();
+ return xDataSource;
}
Reference< XInterface > SAL_CALL ODatabaseContext::createInstance( )
@@ -314,10 +304,11 @@ Reference< XInterface > ODatabaseContext::loadObjectFromURL(const OUString& _rNa
OUString sErrorMessage( DBA_RES( RID_STR_FILE_DOES_NOT_EXIST ) );
::svt::OFileNotation aTransformer( _sURL );
- SQLException aError;
- aError.Message = sErrorMessage.replaceAll( "$file$", aTransformer.get( ::svt::OFileNotation::N_SYSTEM ) );
+ SQLException aError(sErrorMessage.replaceAll(
+ "$file$", aTransformer.get(::svt::OFileNotation::N_SYSTEM)),
+ {}, {}, 0, {});
- throw WrappedTargetException( _sURL, *this, makeAny( aError ) );
+ throw WrappedTargetException( _sURL, *this, Any( aError ) );
}
throw WrappedTargetException( _sURL, *this, ::cppu::getCaughtException() );
}
@@ -337,9 +328,9 @@ Reference< XInterface > ODatabaseContext::loadObjectFromURL(const OUString& _rNa
Reference< XLoadable > xLoad( xModel, UNO_QUERY_THROW );
::comphelper::NamedValueCollection aArgs;
- aArgs.put( "URL", _sURL );
- aArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
- aArgs.put( "InteractionHandler", task::InteractionHandler::createWithParent(m_aContext, nullptr) );
+ aArgs.put( u"URL"_ustr, _sURL );
+ aArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::USE_CONFIG );
+ aArgs.put( u"InteractionHandler"_ustr, task::InteractionHandler::createWithParent(m_aContext, nullptr) );
if (bEmbeddedDataSource)
{
// In this case the host contains the real path, and the path is the embedded stream name.
@@ -353,7 +344,7 @@ Reference< XInterface > ODatabaseContext::loadObjectFromURL(const OUString& _rNa
if (auth.isEmpty() == decAuth.isEmpty()) {
// Decoding of auth to UTF-8 succeeded:
OUString sBaseURI = decAuth + uri->getPath();
- aArgs.put("BaseURI", sBaseURI);
+ aArgs.put(u"BaseURI"_ustr, sBaseURI);
} else {
SAL_WARN(
"dbaccess.core",
@@ -374,7 +365,7 @@ Reference< XInterface > ODatabaseContext::loadObjectFromURL(const OUString& _rNa
setTransientProperties( _sURL, *pModelImpl );
- return pModelImpl->getOrCreateDataSource().get();
+ return pModelImpl->getOrCreateDataSource();
}
void ODatabaseContext::appendAtTerminateListener(const ODatabaseModelImpl& _rDataSourceModel)
@@ -440,7 +431,7 @@ void ODatabaseContext::registerObject(const OUString& _rName, const Reference< X
}
// notify our container listeners
- ContainerEvent aEvent(static_cast<XContainer*>(this), makeAny(_rName), makeAny(_rxObject), Any());
+ ContainerEvent aEvent(static_cast<XContainer*>(this), Any(_rName), Any(_rxObject), Any());
m_aContainerListeners.notifyEach( &XContainerListener::elementInserted, aEvent );
}
@@ -459,7 +450,7 @@ void ODatabaseContext::storeTransientProperties( ODatabaseModelImpl& _rModelImpl
if (xSetInfo.is())
aProperties = xSetInfo->getProperties();
- for ( const Property& rProperty : std::as_const(aProperties) )
+ for (const Property& rProperty : aProperties)
{
if ( ( ( rProperty.Attributes & PropertyAttribute::TRANSIENT) != 0 )
&& ( ( rProperty.Attributes & PropertyAttribute::READONLY) == 0 )
@@ -477,7 +468,7 @@ void ODatabaseContext::storeTransientProperties( ODatabaseModelImpl& _rModelImpl
// additionally, remember the "failed password", which is not available as property
// #i86178#
- aRememberProps.put( "AuthFailedPassword", _rModelImpl.m_sFailedPassword );
+ aRememberProps.put( u"AuthFailedPassword"_ustr, _rModelImpl.m_sFailedPassword );
OUString sDocumentURL( _rModelImpl.getURL() );
if ( m_aDatabaseObjects.find( sDocumentURL ) != m_aDatabaseObjects.end() )
@@ -528,7 +519,7 @@ void ODatabaseContext::revokeObject(const OUString& _rName)
m_aDatabaseObjects.erase( aExistent );
// notify our container listeners
- ContainerEvent aEvent( *this, makeAny( _rName ), Any(), Any() );
+ ContainerEvent aEvent( *this, Any( _rName ), Any(), Any() );
aGuard.clear();
m_aContainerListeners.notifyEach( &XContainerListener::elementRemoved, aEvent );
}
@@ -611,7 +602,7 @@ Any ODatabaseContext::getByName(const OUString& _rName)
{
Reference< XInterface > xExistent = getObject( _rName );
if ( xExistent.is() )
- return makeAny( xExistent );
+ return Any( xExistent );
// see whether this is a registered name
OUString sURL;
@@ -628,7 +619,7 @@ Any ODatabaseContext::getByName(const OUString& _rName)
if ( !xExistent.is() )
// try to load this as URL
xExistent = loadObjectFromURL( _rName, sURL );
- return makeAny( xExistent );
+ return Any( xExistent );
}
catch (const NoSuchElementException&)
{ // let these exceptions through
@@ -707,21 +698,6 @@ void ODatabaseContext::databaseDocumentURLChange( const OUString& _rOldURL, cons
m_aDatabaseObjects.erase( oldPos );
}
-sal_Int64 SAL_CALL ODatabaseContext::getSomething( const Sequence< sal_Int8 >& rId )
-{
- if (isUnoTunnelId<ODatabaseContext>(rId))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
-}
-
-Sequence< sal_Int8 > ODatabaseContext::getUnoTunnelId()
-{
- static ::cppu::OImplementationId implId;
-
- return implId.getImplementationId();
-}
-
void ODatabaseContext::onBasicManagerCreated( const Reference< XModel >& _rxForDocument, BasicManager& _rBasicManager )
{
#if !HAVE_FEATURE_SCRIPTING
@@ -740,7 +716,7 @@ void ODatabaseContext::onBasicManagerCreated( const Reference< XModel >& _rxForD
// ... whose BasicManager has just been created, then add the global DatabaseDocument variable to its scope.
if ( xDatabaseDocument.is() )
- _rBasicManager.SetGlobalUNOConstant( "ThisDatabaseDocument", makeAny( xDatabaseDocument ) );
+ _rBasicManager.SetGlobalUNOConstant( u"ThisDatabaseDocument"_ustr, Any( xDatabaseDocument ) );
#endif
}
@@ -751,7 +727,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_comp_dba_ODatabaseContext_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
{
- return cppu::acquire(static_cast<cppu::OWeakObject*>(new dbaccess::ODatabaseContext(context)));
+ return cppu::acquire(new dbaccess::ODatabaseContext(context));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/databasedocument.cxx b/dbaccess/source/core/dataaccess/databasedocument.cxx
index 77b5ef45fca0..f0ba617914b3 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.cxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.cxx
@@ -23,9 +23,13 @@
#include "documenteventexecutor.hxx"
#include <databasecontext.hxx>
#include "documentcontainer.hxx"
+#include "commandcontainer.hxx"
#include <sdbcoretools.hxx>
+#include <strings.hxx>
#include <recovery/dbdocrecovery.hxx>
+#include <officecfg/Office/Common.hxx>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/document/XExporter.hpp>
#include <com/sun/star/document/XFilter.hpp>
#include <com/sun/star/document/XImporter.hpp>
@@ -40,8 +44,6 @@
#include <com/sun/star/lang/NoSupportException.hpp>
#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <com/sun/star/script/provider/theMasterScriptProviderFactory.hpp>
-#include <com/sun/star/security/DocumentDigitalSignatures.hpp>
-#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <com/sun/star/sdb/DatabaseContext.hpp>
#include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
#include <com/sun/star/task/XStatusIndicator.hpp>
@@ -61,8 +63,8 @@
#include <comphelper/genericpropertyset.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include <comphelper/numberedcollection.hxx>
+#include <comphelper/servicehelper.hxx>
#include <comphelper/storagehelper.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/propertysetinfo.hxx>
#include <comphelper/types.hxx>
@@ -72,9 +74,7 @@
#include <cppuhelper/supportsservice.hxx>
#include <framework/titlehelper.hxx>
#include <unotools/saveopt.hxx>
-#include <unotools/tempfile.hxx>
-#include <tools/diagnose_ex.h>
-#include <osl/file.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <vcl/GraphicObject.hxx>
@@ -125,7 +125,7 @@ bool ViewMonitor::onSetCurrentController( const Reference< XController >& _rxCon
// notify the respective events
if ( bLoadFinished )
- m_rEventNotifier.notifyDocumentEventAsync( m_bIsNewDocument ? "OnNew" : "OnLoad" );
+ m_rEventNotifier.notifyDocumentEventAsync( m_bIsNewDocument ? u"OnNew"_ustr : u"OnLoad"_ustr, nullptr, Any() );
return bLoadFinished;
}
@@ -150,7 +150,8 @@ ODatabaseDocument::ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>&
{
impl_reparent_nothrow( m_xForms );
impl_reparent_nothrow( m_xReports );
- impl_reparent_nothrow( m_pImpl->m_xTableDefinitions );
+ if (auto xTableDef = m_pImpl->m_xTableDefinitions.get())
+ xTableDef->setParent(*this);
impl_reparent_nothrow( m_pImpl->m_xCommandDefinitions );
m_pEventExecutor = new DocumentEventExecutor( m_pImpl->m_aContext, this );
@@ -198,39 +199,24 @@ Any SAL_CALL ODatabaseDocument::queryInterface( const Type& _rType )
)
return Any();
- Any aReturn = ODatabaseDocument_OfficeDocument::queryInterface(_rType);
- if (!aReturn.hasValue())
- aReturn = ODatabaseDocument_Title::queryInterface(_rType);
- return aReturn;
-}
-
-void SAL_CALL ODatabaseDocument::acquire( ) throw ()
-{
- ODatabaseDocument_OfficeDocument::acquire();
-}
-
-void SAL_CALL ODatabaseDocument::release( ) throw ()
-{
- ODatabaseDocument_OfficeDocument::release();
+ return ODatabaseDocument_OfficeDocument::queryInterface(_rType);
}
Sequence< Type > SAL_CALL ODatabaseDocument::getTypes( )
{
- Sequence< Type > aTypes = ::comphelper::concatSequences(
- ODatabaseDocument_OfficeDocument::getTypes(),
- ODatabaseDocument_Title::getTypes()
- );
+ Sequence< Type > aTypes = ODatabaseDocument_OfficeDocument::getTypes();
// strip XEmbeddedScripts and XScriptInvocationContext if we have any form/report
// which already contains macros. In this case, the database document itself is not
// allowed to contain macros, too.
if ( !m_bAllowDocumentScripting )
{
- auto newEnd = std::remove_if( aTypes.begin(), aTypes.end(),
+ auto [begin, end] = asNonConstRange(aTypes);
+ auto newEnd = std::remove_if( begin, end,
[](const Type& t)
{ return t == cppu::UnoType<XEmbeddedScripts>::get() ||
t == cppu::UnoType<XScriptInvocationContext>::get();} );
- aTypes.realloc( std::distance(aTypes.begin(), newEnd) );
+ aTypes.realloc( std::distance(begin, newEnd) );
}
return aTypes;
@@ -247,7 +233,7 @@ namespace
Reference< XStatusIndicator > lcl_extractStatusIndicator( const ::comphelper::NamedValueCollection& _rArguments )
{
Reference< XStatusIndicator > xStatusIndicator;
- return _rArguments.getOrDefault( "StatusIndicator", xStatusIndicator );
+ return _rArguments.getOrDefault( u"StatusIndicator"_ustr, xStatusIndicator );
}
void lcl_triggerStatusIndicator_throw( const ::comphelper::NamedValueCollection& _rArguments, DocumentGuard& _rGuard, const bool _bStart )
@@ -280,7 +266,7 @@ namespace
sal_Int32 nLength = _rCallArgs.getLength();
_rCallArgs.realloc( nLength + 1 );
- _rCallArgs[ nLength ] <<= xStatusIndicator;
+ _rCallArgs.getArray()[ nLength ] <<= xStatusIndicator;
}
void lcl_extractAndStartStatusIndicator( const ::comphelper::NamedValueCollection& _rArguments, Reference< XStatusIndicator >& _rxStatusIndicator,
@@ -296,7 +282,7 @@ namespace
sal_Int32 nLength = _rCallArgs.getLength();
_rCallArgs.realloc( nLength + 1 );
- _rCallArgs[ nLength ] <<= _rxStatusIndicator;
+ _rCallArgs.getArray()[ nLength ] <<= _rxStatusIndicator;
}
catch( const Exception& )
{
@@ -306,17 +292,17 @@ namespace
Sequence< PropertyValue > lcl_appendFileNameToDescriptor( const ::comphelper::NamedValueCollection& _rDescriptor, const OUString& _rURL )
{
+ if ( _rURL.isEmpty() )
+ return _rDescriptor.getPropertyValues();
+
::comphelper::NamedValueCollection aMutableDescriptor( _rDescriptor );
- if ( !_rURL.isEmpty() )
- {
- aMutableDescriptor.put( "FileName", _rURL );
- aMutableDescriptor.put( "URL", _rURL );
- }
+ aMutableDescriptor.put( u"FileName"_ustr, _rURL );
+ aMutableDescriptor.put( u"URL"_ustr, _rURL );
return aMutableDescriptor.getPropertyValues();
}
}
-const char sPictures[] = "Pictures";
+constexpr OUString sPictures = u"Pictures"_ustr;
// base documents seem to have a different behaviour to other documents, the
// root storage contents at least seem to be re-used over different saves, thus if there is a
@@ -345,7 +331,7 @@ const char sPictures[] = "Pictures";
static void lcl_uglyHackToStoreDialogeEmbedImages( const Reference< XStorageBasedLibraryContainer >& xDlgCont, const Reference< XStorage >& xStorage, const Reference< XModel >& rxModel, const Reference<XComponentContext >& rxContext )
{
const Sequence< OUString > sLibraries = xDlgCont->getElementNames();
- Reference< XStorage > xTmpPic = xStorage->openStorageElement( "tempPictures", ElementModes::READWRITE );
+ Reference< XStorage > xTmpPic = xStorage->openStorageElement( u"tempPictures"_ustr, ElementModes::READWRITE );
std::vector<uno::Reference<graphic::XGraphic>> vxGraphicList;
for ( OUString const & sLibrary : sLibraries )
@@ -431,12 +417,11 @@ namespace
/** property map for import/export info set */
comphelper::PropertyMapEntry const aExportInfoMap[] =
{
- { OUString("BaseURI"), 0, ::cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0 },
- { OUString("StreamName"), 0, ::cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0 },
- { OUString("UsePrettyPrinting"), 0, ::cppu::UnoType<sal_Bool>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- {OUString("TargetStorage"), 0, cppu::UnoType<embed::XStorage>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- {OUString("StreamRelPath"), 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- { OUString(), 0, css::uno::Type(), 0, 0 }
+ { u"BaseURI"_ustr, 0, ::cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0 },
+ { u"StreamName"_ustr, 0, ::cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0 },
+ { u"UsePrettyPrinting"_ustr, 0, ::cppu::UnoType<sal_Bool>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
+ { u"TargetStorage"_ustr, 0, cppu::UnoType<embed::XStorage>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
+ { u"StreamRelPath"_ustr, 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
};
}
@@ -448,19 +433,19 @@ void ODatabaseDocument::impl_import_nolck_throw( const Reference< XComponentCont
lcl_extractAndStartStatusIndicator( _rResource, xStatusIndicator, aFilterCreationArgs );
uno::Reference< beans::XPropertySet > xInfoSet( comphelper::GenericPropertySet_CreateInstance( new comphelper::PropertySetInfo( aExportInfoMap ) ) );
- OUString sBaseURI = _rResource.getOrDefault("BaseURI", OUString());
+ OUString sBaseURI = _rResource.getOrDefault(u"BaseURI"_ustr, OUString());
if (sBaseURI.isEmpty())
- sBaseURI = _rResource.getOrDefault("URL",OUString());
+ sBaseURI = _rResource.getOrDefault(u"URL"_ustr,OUString());
assert(!sBaseURI.isEmpty()); // needed for relative URLs
- xInfoSet->setPropertyValue("BaseURI", uno::makeAny(sBaseURI));
- xInfoSet->setPropertyValue("StreamName", uno::makeAny(OUString("content.xml")));
+ xInfoSet->setPropertyValue(u"BaseURI"_ustr, uno::Any(sBaseURI));
+ xInfoSet->setPropertyValue(u"StreamName"_ustr, uno::Any(u"content.xml"_ustr));
const sal_Int32 nCount = aFilterCreationArgs.getLength();
aFilterCreationArgs.realloc(nCount + 1);
- aFilterCreationArgs[nCount] <<= xInfoSet;
+ aFilterCreationArgs.getArray()[nCount] <<= xInfoSet;
Reference< XImporter > xImporter(
- _rContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.comp.sdb.DBFilter", aFilterCreationArgs, _rContext),
+ _rContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.comp.sdb.DBFilter"_ustr, aFilterCreationArgs, _rContext),
UNO_QUERY_THROW );
Reference< XComponent > xComponent( _rxTargetComponent, UNO_QUERY_THROW );
@@ -497,12 +482,12 @@ void SAL_CALL ODatabaseDocument::initNew( )
impl_setInitialized();
- m_aEventNotifier.notifyDocumentEventAsync( "OnTitleChanged" );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnTitleChanged"_ustr, nullptr, Any() );
impl_setModified_nothrow( false, aGuard );
// <- SYNCHRONIZED
- m_aEventNotifier.notifyDocumentEvent( "OnCreate" );
+ m_aEventNotifier.notifyDocumentEvent( u"OnCreate"_ustr, nullptr, Any() );
impl_notifyStorageChange_nolck_nothrow( xTempStor );
}
@@ -515,19 +500,19 @@ void SAL_CALL ODatabaseDocument::load( const Sequence< PropertyValue >& Argument
impl_reset_nothrow();
::comphelper::NamedValueCollection aResource( Arguments );
- if ( aResource.has( "FileName" ) && !aResource.has( "URL" ) )
+ if ( aResource.has( u"FileName"_ustr ) && !aResource.has( u"URL"_ustr ) )
// FileName is the compatibility name for URL, so we might have clients passing
// a FileName only. However, some of our code works with the URL only, so ensure
// we have one.
- aResource.put( "URL", aResource.get( "FileName" ) );
- if ( aResource.has( "URL" ) && !aResource.has( "FileName" ) )
+ aResource.put( u"URL"_ustr, aResource.get( u"FileName"_ustr ) );
+ if ( aResource.has( u"URL"_ustr ) && !aResource.has( u"FileName"_ustr ) )
// similar ... just in case there is legacy code which expects a FileName only
- aResource.put( "FileName", aResource.get( "URL" ) );
+ aResource.put( u"FileName"_ustr, aResource.get( u"URL"_ustr ) );
// now that somebody (perhaps) told us a macro execution mode, remember it as
// ImposedMacroExecMode
m_pImpl->setImposedMacroExecMode(
- aResource.getOrDefault( "MacroExecutionMode", m_pImpl->getImposedMacroExecMode() ) );
+ aResource.getOrDefault( u"MacroExecutionMode"_ustr, m_pImpl->getImposedMacroExecMode() ) );
impl_setInitializing();
try
@@ -670,8 +655,8 @@ void SAL_CALL ODatabaseDocument::recoverFromFile( const OUString& i_SourceLocati
// our load implementation expects the SalvagedFile and URL to be in the media descriptor
::comphelper::NamedValueCollection aMediaDescriptor( i_MediaDescriptor );
- aMediaDescriptor.put( "SalvagedFile", i_SalvagedFile );
- aMediaDescriptor.put( "URL", i_SourceLocation );
+ aMediaDescriptor.put( u"SalvagedFile"_ustr, i_SalvagedFile );
+ aMediaDescriptor.put( u"URL"_ustr, i_SourceLocation );
aGuard.clear(); // (load has an own guarding scheme)
load( aMediaDescriptor.getPropertyValues() );
@@ -748,12 +733,12 @@ bool ODatabaseDocument::impl_attachResource( const OUString& i_rLogicalDocumentU
// for
// we do not support macro signatures, so we can ignore that request
- aArgs.remove("BreakMacroSignature");
+ aArgs.remove(u"BreakMacroSignature"_ustr);
bool bMacroEventRead = false;
- if ((aArgs.get( "MacroEventRead" ) >>= bMacroEventRead) && bMacroEventRead)
+ if ((aArgs.get( u"MacroEventRead"_ustr ) >>= bMacroEventRead) && bMacroEventRead)
m_pImpl->m_bMacroCallsSeenWhileLoading = true;
- aArgs.remove( "MacroEventRead" );
+ aArgs.remove( u"MacroEventRead"_ustr );
if (aArgs.empty())
return false;
@@ -776,11 +761,11 @@ bool ODatabaseDocument::impl_attachResource( const OUString& i_rLogicalDocumentU
// determine whether the document as a whole, or sub documents, have macros. Especially the latter
// controls the availability of our XEmbeddedScripts and XScriptInvocationContext interfaces, and we
// should know this before anybody actually uses the object.
- m_bAllowDocumentScripting = ( m_pImpl->determineEmbeddedMacros() != ODatabaseModelImpl::eSubDocumentMacros );
+ m_bAllowDocumentScripting = ( m_pImpl->determineEmbeddedMacros() != ODatabaseModelImpl::EmbeddedMacros::SubDocument );
_rDocGuard.clear();
// <- SYNCHRONIZED
- m_aEventNotifier.notifyDocumentEvent( "OnLoadFinished" );
+ m_aEventNotifier.notifyDocumentEvent( u"OnLoadFinished"_ustr, nullptr, Any() );
}
return true;
@@ -798,6 +783,15 @@ Sequence< PropertyValue > SAL_CALL ODatabaseDocument::getArgs( )
return m_pImpl->getMediaDescriptor().getPropertyValues();
}
+Sequence< PropertyValue > SAL_CALL ODatabaseDocument::getArgs2( const ::css::uno::Sequence< ::rtl::OUString >& requestedArgs )
+{
+ DocumentGuard aGuard( *this, DocumentGuard::MethodWithoutInit );
+ std::vector<PropertyValue> aRet;
+ for (const auto & rArgName : requestedArgs)
+ aRet.push_back(PropertyValue(rArgName, 0, m_pImpl->getMediaDescriptor().get(rArgName), PropertyState_DIRECT_VALUE));
+ return comphelper::containerToSequence(aRet);
+}
+
void SAL_CALL ODatabaseDocument::setArgs(const Sequence<beans::PropertyValue>& /* aArgs */)
{
throw NoSupportException();
@@ -816,7 +810,7 @@ void SAL_CALL ODatabaseDocument::connectController( const Reference< XController
m_aControllers.push_back( _xController );
- m_aEventNotifier.notifyDocumentEventAsync( "OnViewCreated", Reference< XController2 >( _xController, UNO_QUERY ) );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnViewCreated"_ustr, Reference< XController2 >( _xController, UNO_QUERY ), Any() );
bool bFirstControllerEver = m_aViewMonitor.onControllerConnected( _xController );
if ( !bFirstControllerEver )
@@ -853,7 +847,7 @@ void SAL_CALL ODatabaseDocument::disconnectController( const Reference< XControl
// <- SYNCHRONIZED
if ( bNotifyViewClosed )
- m_aEventNotifier.notifyDocumentEvent( "OnViewClosed", Reference< XController2 >( _xController, UNO_QUERY ) );
+ m_aEventNotifier.notifyDocumentEvent( u"OnViewClosed"_ustr, Reference< XController2 >( _xController, UNO_QUERY ), Any() );
if ( !bLastControllerGone || bIsClosing )
return;
@@ -909,9 +903,9 @@ void SAL_CALL ODatabaseDocument::setCurrentController( const Reference< XControl
// check if there are sub components to recover from our document storage
bool bAttemptRecovery = m_bHasBeenRecovered;
- if ( !bAttemptRecovery && m_pImpl->getMediaDescriptor().has( "ForceRecovery" ) )
+ if ( !bAttemptRecovery && m_pImpl->getMediaDescriptor().has( u"ForceRecovery"_ustr ) )
// do not use getOrDefault, it will throw for invalid types, which is not desired here
- m_pImpl->getMediaDescriptor().get( "ForceRecovery" ) >>= bAttemptRecovery;
+ m_pImpl->getMediaDescriptor().get( u"ForceRecovery"_ustr ) >>= bAttemptRecovery;
if ( !bAttemptRecovery )
return;
@@ -992,17 +986,17 @@ void SAL_CALL ODatabaseDocument::store( )
// allowed to leave
throw;
}
- impl_throwIOExceptionCausedBySave_throw( aError, OUString() );
+ impl_throwIOExceptionCausedBySave_throw( aError, {} );
}
}
-void ODatabaseDocument::impl_throwIOExceptionCausedBySave_throw( const Any& i_rError, const OUString& i_rTargetURL ) const
+void ODatabaseDocument::impl_throwIOExceptionCausedBySave_throw( const Any& i_rError, std::u16string_view i_rTargetURL ) const
{
OUString sErrorMessage = extractExceptionMessage( m_pImpl->m_aContext, i_rError );
sErrorMessage = ResourceManager::loadString(
RID_STR_ERROR_WHILE_SAVING,
- "$location$", i_rTargetURL,
- "$message$", sErrorMessage
+ u"$location$", i_rTargetURL,
+ u"$message$", sErrorMessage
);
throw IOException( sErrorMessage, *const_cast< ODatabaseDocument* >( this ) );
}
@@ -1021,7 +1015,7 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
if ( !bIsInitializationProcess )
{
_rGuard.clear();
- m_aEventNotifier.notifyDocumentEvent( _eType == SAVE ? "OnSave" : "OnSaveAs", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEvent( _eType == SAVE ? u"OnSave"_ustr : u"OnSaveAs"_ustr, nullptr, Any( _rURL ) );
_rGuard.reset();
}
@@ -1081,13 +1075,13 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
catch( const IOException& )
{
if ( !bIsInitializationProcess )
- m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? "OnSaveFailed" : "OnSaveAsFailed", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? u"OnSaveFailed"_ustr : u"OnSaveAsFailed"_ustr, nullptr, Any( _rURL ) );
throw;
}
catch( const RuntimeException& )
{
if ( !bIsInitializationProcess )
- m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? "OnSaveFailed" : "OnSaveAsFailed", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? u"OnSaveFailed"_ustr : u"OnSaveAsFailed"_ustr, nullptr, Any( _rURL ) );
throw;
}
catch( const Exception& )
@@ -1096,14 +1090,14 @@ void ODatabaseDocument::impl_storeAs_throw( const OUString& _rURL, const ::comph
// notify the failure
if ( !bIsInitializationProcess )
- m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? "OnSaveFailed" : "OnSaveAsFailed", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? u"OnSaveFailed"_ustr : u"OnSaveAsFailed"_ustr, nullptr, Any( _rURL ) );
impl_throwIOExceptionCausedBySave_throw( aError, _rURL );
}
// notify the document event
if ( !bIsInitializationProcess )
- m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? "OnSaveDone" : "OnSaveAsDone", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEventAsync( _eType == SAVE ? u"OnSaveDone"_ustr : u"OnSaveAsDone"_ustr, nullptr, Any( _rURL ) );
// reset our "modified" flag, and clear the guard
impl_setModified_nothrow( false, _rGuard );
@@ -1123,9 +1117,7 @@ Reference< XStorage > ODatabaseDocument::impl_createStorageFor_throw( const OUSt
{
xTruncate->truncate();
}
- Sequence<Any> aParam(2);
- aParam[0] <<= xStream;
- aParam[1] <<= ElementModes::READWRITE | ElementModes::TRUNCATE;
+ Sequence<Any> aParam{ Any(xStream), Any(ElementModes::READWRITE | ElementModes::TRUNCATE) };
Reference< XSingleServiceFactory > xStorageFactory( m_pImpl->createStorageFactory(), UNO_SET_THROW );
return Reference< XStorage >( xStorageFactory->createInstanceWithArguments( aParam ), UNO_QUERY_THROW );
@@ -1136,12 +1128,12 @@ css::uno::Reference<css::embed::XStorage> ODatabaseDocument::impl_GetStorageOrCr
{
// Try to get the storage from arguments, then create storage for target URL
uno::Reference<embed::XStorage> xTargetStorage;
- _rArguments.get("TargetStorage") >>= xTargetStorage;
+ _rArguments.get(u"TargetStorage"_ustr) >>= xTargetStorage;
if (!xTargetStorage.is())
xTargetStorage = impl_createStorageFor_throw(_rURL);
// In case we got a StreamRelPath, then xTargetStorage should reference that sub-storage.
- OUString sStreamRelPath = _rArguments.getOrDefault("StreamRelPath", OUString());
+ OUString sStreamRelPath = _rArguments.getOrDefault(u"StreamRelPath"_ustr, OUString());
if (!sStreamRelPath.isEmpty())
xTargetStorage
= xTargetStorage->openStorageElement(sStreamRelPath, embed::ElementModes::READWRITE);
@@ -1179,7 +1171,7 @@ void SAL_CALL ODatabaseDocument::storeAsURL( const OUString& _rURL, const Sequen
// an up-to-date result, as the call is delegated to our TitleHelper instance, which itself
// updates its title only if it gets the OnSaveAsDone event (which was sent asynchronously
// by impl_storeAs_throw). So, we simply notify always, and also asynchronously
- m_aEventNotifier.notifyDocumentEventAsync( "OnTitleChanged" );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnTitleChanged"_ustr, nullptr, Any() );
}
catch( const Exception& )
{
@@ -1194,7 +1186,7 @@ void SAL_CALL ODatabaseDocument::storeAsURL( const OUString& _rURL, const Sequen
// <- SYNCHRONIZED
if ( bImplicitInitialization )
- m_aEventNotifier.notifyDocumentEvent( "OnCreate" );
+ m_aEventNotifier.notifyDocumentEvent( u"OnCreate"_ustr, nullptr, Any() );
}
void ODatabaseDocument::impl_storeToStorage_throw( const Reference< XStorage >& _rxTargetStorage, const Sequence< PropertyValue >& _rMediaDescriptor,
@@ -1245,7 +1237,7 @@ void SAL_CALL ODatabaseDocument::storeToURL( const OUString& _rURL, const Sequen
{
aGuard.clear();
- m_aEventNotifier.notifyDocumentEvent( "OnSaveTo", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEvent( u"OnSaveTo"_ustr, nullptr, Any( _rURL ) );
aGuard.reset();
}
@@ -1264,7 +1256,7 @@ void SAL_CALL ODatabaseDocument::storeToURL( const OUString& _rURL, const Sequen
catch( const Exception& )
{
Any aError = ::cppu::getCaughtException();
- m_aEventNotifier.notifyDocumentEventAsync( "OnSaveToFailed", nullptr, aError );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnSaveToFailed"_ustr, nullptr, aError );
if ( aError.isExtractableTo( ::cppu::UnoType< IOException >::get() )
|| aError.isExtractableTo( ::cppu::UnoType< RuntimeException >::get() )
@@ -1277,7 +1269,7 @@ void SAL_CALL ODatabaseDocument::storeToURL( const OUString& _rURL, const Sequen
impl_throwIOExceptionCausedBySave_throw( aError, _rURL );
}
- m_aEventNotifier.notifyDocumentEventAsync( "OnSaveToDone", nullptr, makeAny( _rURL ) );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnSaveToDone"_ustr, nullptr, Any( _rURL ) );
}
// XModifyBroadcaster
@@ -1319,7 +1311,7 @@ void ODatabaseDocument::impl_setModified_nothrow( bool _bModified, DocumentGuard
if ( bModifiedChanged )
{
m_pImpl->m_bModified = _bModified;
- m_aEventNotifier.notifyDocumentEventAsync( "OnModifyChanged" );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnModifyChanged"_ustr, nullptr, Any() );
}
_rGuard.clear();
// <- SYNCHRONIZED
@@ -1405,12 +1397,23 @@ void ODatabaseDocument::clearObjectContainer( WeakReference< XNameAccess >& _rxC
_rxContainer.clear();
}
+void ODatabaseDocument::clearObjectContainer( unotools::WeakReference< OCommandContainer >& _rxContainer)
+{
+ rtl::Reference< OCommandContainer > xContainer = _rxContainer;
+ if ( xContainer.is() )
+ {
+ xContainer->dispose();
+ xContainer->setParent( nullptr );
+ }
+ _rxContainer.clear();
+}
+
Reference< XNameAccess > ODatabaseDocument::impl_getDocumentContainer_throw( ODatabaseModelImpl::ObjectType _eType )
{
- if ( ( _eType != ODatabaseModelImpl::E_FORM ) && ( _eType != ODatabaseModelImpl::E_REPORT ) )
+ if ( ( _eType != ODatabaseModelImpl::ObjectType::Form ) && ( _eType != ODatabaseModelImpl::ObjectType::Report ) )
throw IllegalArgumentException();
- bool bFormsContainer = _eType == ODatabaseModelImpl::E_FORM;
+ bool bFormsContainer = _eType == ODatabaseModelImpl::ObjectType::Form;
WeakReference< XNameAccess >& rContainerRef( bFormsContainer ? m_xForms : m_xReports );
Reference< XNameAccess > xContainer = rContainerRef;
@@ -1418,14 +1421,13 @@ Reference< XNameAccess > ODatabaseDocument::impl_getDocumentContainer_throw( ODa
{
Any aValue;
css::uno::Reference< css::uno::XInterface > xMy(*this);
- if ( dbtools::getDataSourceSetting(xMy,bFormsContainer ? "Forms" : "Reports",aValue) )
+ if (dbtools::getDataSourceSetting(xMy, bFormsContainer ? u"Forms"_ustr : u"Reports"_ustr, aValue))
{
OUString sSupportService;
aValue >>= sSupportService;
if ( !sSupportService.isEmpty() )
{
- Sequence<Any> aArgs(1);
- aArgs[0] <<= NamedValue("DatabaseDocument",makeAny(xMy));
+ Sequence<Any> aArgs{ Any(NamedValue(u"DatabaseDocument"_ustr,Any(xMy))) };
xContainer.set(
m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(sSupportService, aArgs, m_pImpl->m_aContext),
UNO_QUERY);
@@ -1502,13 +1504,13 @@ void SAL_CALL ODatabaseDocument::close(sal_Bool bDeliverOwnership)
{
// allow listeners to veto
lang::EventObject aEvent( *this );
- m_aCloseListener.forEach< XCloseListener >(
+ m_aCloseListener.forEach(
[&aEvent, &bDeliverOwnership] (uno::Reference<XCloseListener> const& xListener) {
return xListener->queryClosing(aEvent, bDeliverOwnership);
});
// notify that we're going to unload
- m_aEventNotifier.notifyDocumentEvent( "OnPrepareUnload" );
+ m_aEventNotifier.notifyDocumentEvent( u"OnPrepareUnload"_ustr, nullptr, Any() );
impl_closeControllerFrames_nolck_throw( bDeliverOwnership );
@@ -1544,24 +1546,20 @@ void SAL_CALL ODatabaseDocument::removeCloseListener( const Reference< css::util
Reference< XNameAccess > SAL_CALL ODatabaseDocument::getFormDocuments( )
{
DocumentGuard aGuard( *this, DocumentGuard::MethodUsedDuringInit );
- return impl_getDocumentContainer_throw( ODatabaseModelImpl::E_FORM );
+ return impl_getDocumentContainer_throw( ODatabaseModelImpl::ObjectType::Form );
}
Reference< XNameAccess > SAL_CALL ODatabaseDocument::getReportDocuments( )
{
DocumentGuard aGuard( *this, DocumentGuard::MethodUsedDuringInit );
- return impl_getDocumentContainer_throw( ODatabaseModelImpl::E_REPORT );
+ return impl_getDocumentContainer_throw( ODatabaseModelImpl::ObjectType::Report );
}
-void ODatabaseDocument::WriteThroughComponent( const Reference< XComponent >& xComponent, const char* pStreamName,
- const char* pServiceName, const Sequence< Any >& _rArguments, const Sequence< PropertyValue >& rMediaDesc,
+void ODatabaseDocument::WriteThroughComponent( const Reference< XComponent >& xComponent, const OUString& sStreamName,
+ const OUString & rServiceName, const Sequence< Any >& _rArguments, const Sequence< PropertyValue >& rMediaDesc,
const Reference<XStorage>& _xStorageToSaveTo ) const
{
- OSL_ENSURE( pStreamName, "Need stream name!" );
- OSL_ENSURE( pServiceName, "Need service name!" );
-
// open stream
- OUString sStreamName = OUString::createFromAscii( pStreamName );
Reference< XStream > xStream = _xStorageToSaveTo->openStreamElement( sStreamName, ElementModes::READWRITE | ElementModes::TRUNCATE );
if ( !xStream.is() )
return;
@@ -1576,20 +1574,19 @@ void ODatabaseDocument::WriteThroughComponent( const Reference< XComponent >& xC
xSeek->seek(0);
Reference< XPropertySet > xStreamProp( xOutputStream, UNO_QUERY_THROW );
- xStreamProp->setPropertyValue( INFO_MEDIATYPE, makeAny( OUString( "text/xml" ) ) );
- xStreamProp->setPropertyValue( "Compressed", makeAny( true ) );
+ xStreamProp->setPropertyValue( INFO_MEDIATYPE, Any( u"text/xml"_ustr ) );
+ xStreamProp->setPropertyValue( u"Compressed"_ustr, Any( true ) );
// write the stuff
- WriteThroughComponent( xOutputStream, xComponent, pServiceName, _rArguments, rMediaDesc );
+ WriteThroughComponent( xOutputStream, xComponent, rServiceName, _rArguments, rMediaDesc );
}
void ODatabaseDocument::WriteThroughComponent( const Reference< XOutputStream >& xOutputStream,
- const Reference< XComponent >& xComponent, const char* pServiceName, const Sequence< Any >& _rArguments,
+ const Reference< XComponent >& xComponent, const OUString& rServiceName, const Sequence< Any >& _rArguments,
const Sequence< PropertyValue >& rMediaDesc ) const
{
OSL_ENSURE( xOutputStream.is(), "I really need an output stream!" );
OSL_ENSURE( xComponent.is(), "Need component!" );
- OSL_ENSURE( nullptr != pServiceName, "Need component name!" );
// get component
Reference< XWriter > xSaxWriter = xml::sax::Writer::create( m_pImpl->m_aContext );
@@ -1599,12 +1596,13 @@ void ODatabaseDocument::WriteThroughComponent( const Reference< XOutputStream >&
// prepare arguments (prepend doc handler to given arguments)
Sequence<Any> aArgs( 1 + _rArguments.getLength() );
- aArgs[0] <<= xSaxWriter;
+ auto pArgs = aArgs.getArray();
+ pArgs[0] <<= xSaxWriter;
for ( sal_Int32 i = 0; i < _rArguments.getLength(); ++i )
- aArgs[ i+1 ] = _rArguments[i];
+ pArgs[ i+1 ] = _rArguments[i];
// get filter component
- Reference< XExporter > xExporter( m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(OUString::createFromAscii(pServiceName), aArgs, m_pImpl->m_aContext), UNO_QUERY_THROW );
+ Reference< XExporter > xExporter( m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(rServiceName, aArgs, m_pImpl->m_aContext), UNO_QUERY_THROW );
// connect model and filter
xExporter->setSourceDocument( xComponent );
@@ -1622,22 +1620,21 @@ void ODatabaseDocument::impl_writeStorage_throw( const Reference< XStorage >& _r
uno::Reference< beans::XPropertySet > xInfoSet( comphelper::GenericPropertySet_CreateInstance( new comphelper::PropertySetInfo( aExportInfoMap ) ) );
- SvtSaveOptions aSaveOpt;
- xInfoSet->setPropertyValue("UsePrettyPrinting", uno::makeAny(aSaveOpt.IsPrettyPrinting()));
- if ( aSaveOpt.IsSaveRelFSys() )
+ xInfoSet->setPropertyValue(u"UsePrettyPrinting"_ustr, uno::Any(officecfg::Office::Common::Save::Document::PrettyPrinting::get()));
+ if ( officecfg::Office::Common::Save::URL::FileSystem::get() )
{
- OUString sBaseURI = _rMediaDescriptor.getOrDefault("BaseURI", OUString());
+ OUString sBaseURI = _rMediaDescriptor.getOrDefault(u"BaseURI"_ustr, OUString());
if (sBaseURI.isEmpty())
- sBaseURI = _rMediaDescriptor.getOrDefault("URL",OUString());
- xInfoSet->setPropertyValue("BaseURI", uno::makeAny(sBaseURI));
+ sBaseURI = _rMediaDescriptor.getOrDefault(u"URL"_ustr,OUString());
+ xInfoSet->setPropertyValue(u"BaseURI"_ustr, uno::Any(sBaseURI));
}
// Set TargetStorage, so it doesn't have to be re-constructed based on possibly empty URL.
- xInfoSet->setPropertyValue("TargetStorage", uno::makeAny(m_pImpl->getRootStorage()));
+ xInfoSet->setPropertyValue(u"TargetStorage"_ustr, uno::Any(m_pImpl->getRootStorage()));
// Set StreamRelPath, in case this document is an embedded one.
OUString sStreamRelPath;
- OUString sURL = _rMediaDescriptor.getOrDefault("URL", OUString());
+ OUString sURL = _rMediaDescriptor.getOrDefault(u"URL"_ustr, OUString());
if (sURL.startsWithIgnoreAsciiCase("vnd.sun.star.pkg:"))
{
// In this case the host contains the real path, and the path is the embedded stream name.
@@ -1647,21 +1644,25 @@ void ODatabaseDocument::impl_writeStorage_throw( const Reference< XStorage >& _r
sStreamRelPath = sStreamRelPath.copy(1);
}
if (!sStreamRelPath.isEmpty())
- xInfoSet->setPropertyValue("StreamRelPath", uno::makeAny(sStreamRelPath));
+ xInfoSet->setPropertyValue(u"StreamRelPath"_ustr, uno::Any(sStreamRelPath));
sal_Int32 nArgsLen = aDelegatorArguments.getLength();
aDelegatorArguments.realloc(nArgsLen+1);
- aDelegatorArguments[nArgsLen++] <<= xInfoSet;
+ aDelegatorArguments.getArray()[nArgsLen++] <<= xInfoSet;
Reference< XPropertySet > xProp( _rxTargetStorage, UNO_QUERY_THROW );
- xProp->setPropertyValue( INFO_MEDIATYPE, makeAny( OUString(MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII) ) );
+ xProp->setPropertyValue( INFO_MEDIATYPE, Any( MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII ) );
OUString aVersion;
SvtSaveOptions::ODFSaneDefaultVersion const nDefVersion =
- aSaveOpt.GetODFSaneDefaultVersion();
+ GetODFSaneDefaultVersion();
// older versions can not have this property set,
// it exists only starting from ODF1.2
- if (nDefVersion >= SvtSaveOptions::ODFSVER_013)
+ if (nDefVersion >= SvtSaveOptions::ODFSVER_014)
+ {
+ aVersion = ODFVER_014_TEXT;
+ }
+ else if (nDefVersion >= SvtSaveOptions::ODFSVER_013)
{
aVersion = ODFVER_013_TEXT;
}
@@ -1674,7 +1675,7 @@ void ODatabaseDocument::impl_writeStorage_throw( const Reference< XStorage >& _r
{
try
{
- xProp->setPropertyValue("Version" , uno::makeAny(aVersion));
+ xProp->setPropertyValue(u"Version"_ustr , uno::Any(aVersion));
}
catch (const uno::Exception&)
{
@@ -1687,12 +1688,12 @@ void ODatabaseDocument::impl_writeStorage_throw( const Reference< XStorage >& _r
Sequence< PropertyValue > aMediaDescriptor;
_rMediaDescriptor >>= aMediaDescriptor;
- xInfoSet->setPropertyValue("StreamName", uno::makeAny(OUString("settings.xml")));
- WriteThroughComponent( xComponent, "settings.xml", "com.sun.star.comp.sdb.XMLSettingsExporter",
+ xInfoSet->setPropertyValue(u"StreamName"_ustr, uno::Any(u"settings.xml"_ustr));
+ WriteThroughComponent( xComponent, u"settings.xml"_ustr, u"com.sun.star.comp.sdb.XMLSettingsExporter"_ustr,
aDelegatorArguments, aMediaDescriptor, _rxTargetStorage );
- xInfoSet->setPropertyValue("StreamName", uno::makeAny(OUString("content.xml")));
- WriteThroughComponent( xComponent, "content.xml", "com.sun.star.comp.sdb.DBExportFilter",
+ xInfoSet->setPropertyValue(u"StreamName"_ustr, uno::Any(u"content.xml"_ustr));
+ WriteThroughComponent( xComponent, u"content.xml"_ustr, u"com.sun.star.comp.sdb.DBExportFilter"_ustr,
aDelegatorArguments, aMediaDescriptor, _rxTargetStorage );
if ( _rxTargetStorage->hasByName ( sPictures ) )
@@ -1729,7 +1730,7 @@ Reference< XUIConfigurationManager2 > const & ODatabaseDocument::getUIConfigurat
{
m_xUIConfigurationManager = UIConfigurationManager::create( m_pImpl->m_aContext );
- OUString aUIConfigFolderName( "Configurations2" );
+ OUString aUIConfigFolderName( u"Configurations2"_ustr );
// First try to open with READWRITE and then READ
Reference< XStorage > xConfigStorage = getDocumentSubStorage( aUIConfigFolderName, ElementModes::READWRITE );
@@ -1740,7 +1741,7 @@ Reference< XUIConfigurationManager2 > const & ODatabaseDocument::getUIConfigurat
Any a = xPropSet->getPropertyValue( INFO_MEDIATYPE );
if ( !( a >>= aMediaType ) || aMediaType.isEmpty() )
{
- a <<= OUString("application/vnd.sun.xml.ui.configuration");
+ a <<= u"application/vnd.sun.xml.ui.configuration"_ustr;
xPropSet->setPropertyValue( INFO_MEDIATYPE, a );
}
}
@@ -1772,7 +1773,7 @@ void ODatabaseDocument::impl_notifyStorageChange_nolck_nothrow( const Reference<
{
Reference< XInterface > xMe( *this );
- m_aStorageListeners.forEach< XStorageChangeListener >(
+ m_aStorageListeners.forEach(
[&xMe, &xNewRootStorage] (uno::Reference<XStorageChangeListener> const& xListener) {
return xListener->notifyStorageChange(xMe, xNewRootStorage);
});
@@ -1788,7 +1789,7 @@ void ODatabaseDocument::disposing()
}
if ( impl_isInitialized() )
- m_aEventNotifier.notifyDocumentEvent( "OnUnload" );
+ m_aEventNotifier.notifyDocumentEvent( u"OnUnload"_ustr, nullptr, Any() );
Reference< XModel > xHoldAlive( this );
@@ -1848,7 +1849,7 @@ void ODatabaseDocument::disposing()
m_xModuleManager.clear();
{
- uno::Reference<uno::XInterface> xTitleInterface(m_xTitleHelper);
+ uno::Reference<uno::XInterface> xTitleInterface(cppu::getXWeak(m_xTitleHelper.get()));
aKeepAlive.push_back(xTitleInterface);
}
m_xTitleHelper.clear();
@@ -1864,6 +1865,11 @@ void ODatabaseDocument::disposing()
void SAL_CALL ODatabaseDocument::dispose( )
{
::cppu::WeakComponentImplHelperBase::dispose();
+ m_xTitleHelper.clear();
+ m_xModuleManager.clear();
+ m_pEventExecutor.clear();
+ m_xCurrentController.clear();
+ m_xUIConfigurationManager.clear();
}
void SAL_CALL ODatabaseDocument::addEventListener( const Reference< lang::XEventListener >& _xListener )
@@ -1879,12 +1885,12 @@ void SAL_CALL ODatabaseDocument::removeEventListener( const Reference< lang::XEv
// XServiceInfo
OUString ODatabaseDocument::getImplementationName()
{
- return "com.sun.star.comp.dba.ODatabaseDocument";
+ return u"com.sun.star.comp.dba.ODatabaseDocument"_ustr;
}
Sequence< OUString > ODatabaseDocument::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.OfficeDatabaseDocument", "com.sun.star.document.OfficeDocument" };
+ return { u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr, u"com.sun.star.document.OfficeDocument"_ustr };
}
sal_Bool ODatabaseDocument::supportsService( const OUString& _rServiceName )
@@ -1903,10 +1909,9 @@ namespace
/// Property map for embedded import info set.
comphelper::PropertyMapEntry const aEmbeddedImportInfoMap[] =
{
- {OUString("StreamRelPath"), 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- {OUString("StreamName"), 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- {OUString("SourceStorage"), 0, cppu::UnoType<embed::XStorage>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
- {OUString(), 0, css::uno::Type(), 0, 0}
+ {u"StreamRelPath"_ustr, 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
+ {u"StreamName"_ustr, 0, cppu::UnoType<OUString>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
+ {u"SourceStorage"_ustr, 0, cppu::UnoType<embed::XStorage>::get(), beans::PropertyAttribute::MAYBEVOID, 0},
};
}
@@ -1915,15 +1920,13 @@ void SAL_CALL ODatabaseDocument::loadFromStorage(const Reference<XStorage>& xSto
DocumentGuard aGuard(*this, DocumentGuard::InitMethod);
uno::Reference<beans::XPropertySet> xInfoSet(comphelper::GenericPropertySet_CreateInstance(new comphelper::PropertySetInfo(aEmbeddedImportInfoMap)));
- comphelper::NamedValueCollection aDescriptor(rMediaDescriptor);
- xInfoSet->setPropertyValue("StreamRelPath", uno::makeAny(aDescriptor.getOrDefault("HierarchicalDocumentName", OUString())));
- xInfoSet->setPropertyValue("StreamName", uno::makeAny(OUString("content.xml")));
- xInfoSet->setPropertyValue("SourceStorage", uno::makeAny(xStorage));
+ xInfoSet->setPropertyValue(u"StreamRelPath"_ustr, uno::Any(comphelper::NamedValueCollection::getOrDefault(rMediaDescriptor, u"HierarchicalDocumentName", OUString())));
+ xInfoSet->setPropertyValue(u"StreamName"_ustr, uno::Any(u"content.xml"_ustr));
+ xInfoSet->setPropertyValue(u"SourceStorage"_ustr, uno::Any(xStorage));
- uno::Sequence<uno::Any> aFilterCreationArgs(1);
- aFilterCreationArgs[0] <<= xInfoSet;
+ uno::Sequence<uno::Any> aFilterCreationArgs{ Any(xInfoSet) };
- uno::Reference<document::XImporter> xImporter(m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.comp.sdb.DBFilter", aFilterCreationArgs, m_pImpl->m_aContext), uno::UNO_QUERY_THROW);
+ uno::Reference<document::XImporter> xImporter(m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.comp.sdb.DBFilter"_ustr, aFilterCreationArgs, m_pImpl->m_aContext), uno::UNO_QUERY_THROW);
uno::Reference<lang::XComponent> xComponent(*this, uno::UNO_QUERY_THROW);
xImporter->setTargetDocument(xComponent);
@@ -1970,7 +1973,7 @@ void SAL_CALL ODatabaseDocument::addStorageChangeListener( const Reference< XSto
void SAL_CALL ODatabaseDocument::removeStorageChangeListener( const Reference< XStorageChangeListener >& Listener )
{
DocumentGuard aGuard(*this, DocumentGuard::DefaultMethod);
- m_aStorageListeners.addInterface( Listener );
+ m_aStorageListeners.removeInterface( Listener );
}
Reference< XStorageBasedLibraryContainer > SAL_CALL ODatabaseDocument::getBasicLibraries()
@@ -2034,7 +2037,7 @@ struct CreateAny
{
Any operator() (const Reference<XController>& lhs) const
{
- return makeAny(lhs);
+ return Any(lhs);
}
};
@@ -2057,7 +2060,7 @@ Sequence< OUString > SAL_CALL ODatabaseDocument::getAvailableViewControllerNames
Reference< XController2 > SAL_CALL ODatabaseDocument::createDefaultViewController( const Reference< XFrame >& Frame )
{
- return createViewController( "Default", Sequence< PropertyValue >(), Frame);
+ return createViewController( u"Default"_ustr, Sequence< PropertyValue >(), Frame);
}
Reference< XController2 > SAL_CALL ODatabaseDocument::createViewController( const OUString& ViewName, const Sequence< PropertyValue >& Arguments, const Reference< XFrame >& Frame )
@@ -2071,30 +2074,27 @@ Reference< XController2 > SAL_CALL ODatabaseDocument::createViewController( cons
aGuard.clear();
Reference< XController2 > xController(
- m_pImpl->m_aContext->getServiceManager()->createInstanceWithContext("org.openoffice.comp.dbu.OApplicationController", m_pImpl->m_aContext),
+ m_pImpl->m_aContext->getServiceManager()->createInstanceWithContext(u"org.openoffice.comp.dbu.OApplicationController"_ustr, m_pImpl->m_aContext),
UNO_QUERY_THROW );
::comphelper::NamedValueCollection aInitArgs( Arguments );
- aInitArgs.put( "Frame", Frame );
+ aInitArgs.put( u"Frame"_ustr, Frame );
if ( ViewName == "Preview" )
- aInitArgs.put( "Preview", true );
+ aInitArgs.put( u"Preview"_ustr, true );
Reference< XInitialization > xInitController( xController, UNO_QUERY_THROW );
xInitController->initialize( aInitArgs.getWrappedPropertyValues() );
return xController;
}
-Reference< XTitle > const & ODatabaseDocument::impl_getTitleHelper_throw()
+rtl::Reference< ::framework::TitleHelper > const & ODatabaseDocument::impl_getTitleHelper_throw()
{
if ( ! m_xTitleHelper.is ())
{
Reference< XUntitledNumbers > xDesktop(Desktop::create(m_pImpl->m_aContext), uno::UNO_QUERY_THROW);
Reference< frame::XModel > xThis (getThis(), uno::UNO_QUERY_THROW);
- ::framework::TitleHelper* pHelper = new ::framework::TitleHelper(m_pImpl->m_aContext);
- m_xTitleHelper.set(static_cast< ::cppu::OWeakObject* >(pHelper), uno::UNO_QUERY_THROW);
- pHelper->setOwner (xThis );
- pHelper->connectWithUntitledNumbers (xDesktop);
+ m_xTitleHelper = new ::framework::TitleHelper(m_pImpl->m_aContext, xThis, xDesktop);
}
return m_xTitleHelper;
@@ -2106,23 +2106,17 @@ uno::Reference< frame::XUntitledNumbers > ODatabaseDocument::impl_getUntitledHel
m_xModuleManager.set( ModuleManager::create(m_pImpl->m_aContext) );
OUString sModuleId;
- try
- {
- sModuleId = m_xModuleManager->identify( _xComponent );
- }
- catch(const uno::Exception&)
- {
- }
+ if (_xComponent.is())
+ sModuleId = m_xModuleManager->identify(_xComponent);
+
uno::Reference< frame::XUntitledNumbers > xNumberedControllers;
TNumberedController::const_iterator aFind = m_aNumberedControllers.find(sModuleId);
if ( aFind == m_aNumberedControllers.end() )
{
- uno::Reference< frame::XModel > xThis(static_cast< frame::XModel* >(this), uno::UNO_QUERY_THROW);
- ::comphelper::NumberedCollection* pHelper = new ::comphelper::NumberedCollection();
- xNumberedControllers.set(static_cast< ::cppu::OWeakObject* >(pHelper), uno::UNO_QUERY_THROW);
-
- pHelper->setOwner (xThis);
+ rtl::Reference<::comphelper::NumberedCollection> pHelper = new ::comphelper::NumberedCollection();
+ xNumberedControllers = pHelper;
+ pHelper->setOwner(uno::Reference< frame::XModel >(this));
m_aNumberedControllers.emplace( sModuleId,xNumberedControllers );
}
@@ -2146,7 +2140,7 @@ void SAL_CALL ODatabaseDocument::setTitle( const OUString& sTitle )
// SYNCHRONIZED ->
DocumentGuard aGuard(*this, DocumentGuard::DefaultMethod);
impl_getTitleHelper_throw()->setTitle( sTitle );
- m_aEventNotifier.notifyDocumentEventAsync( "OnTitleChanged" );
+ m_aEventNotifier.notifyDocumentEventAsync( u"OnTitleChanged"_ustr, nullptr, Any() );
// <- SYNCHRONIZED
}
@@ -2156,7 +2150,7 @@ void SAL_CALL ODatabaseDocument::addTitleChangeListener( const uno::Reference< f
// SYNCHRONIZED ->
DocumentGuard aGuard(*this, DocumentGuard::DefaultMethod);
- uno::Reference< frame::XTitleChangeBroadcaster > xBroadcaster( impl_getTitleHelper_throw(), uno::UNO_QUERY_THROW );
+ rtl::Reference< ::framework::TitleHelper > xBroadcaster( impl_getTitleHelper_throw() );
xBroadcaster->addTitleChangeListener( xListener );
}
@@ -2166,7 +2160,7 @@ void SAL_CALL ODatabaseDocument::removeTitleChangeListener( const uno::Reference
// SYNCHRONIZED ->
DocumentGuard aGuard(*this, DocumentGuard::DefaultMethod);
- uno::Reference< frame::XTitleChangeBroadcaster > xBroadcaster( impl_getTitleHelper_throw(), uno::UNO_QUERY_THROW );
+ rtl::Reference< ::framework::TitleHelper > xBroadcaster( impl_getTitleHelper_throw() );
xBroadcaster->removeTitleChangeListener( xListener );
}
@@ -2203,16 +2197,16 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_comp_dba_ODatabaseDocument(css::uno::XComponentContext* context,
css::uno::Sequence<css::uno::Any> const &)
{
- Reference<XUnoTunnel> xDBContextTunnel(DatabaseContext::create(context), UNO_QUERY_THROW);
- dbaccess::ODatabaseContext* pContext = reinterpret_cast<dbaccess::ODatabaseContext*>(
- xDBContextTunnel->getSomething(
- dbaccess::ODatabaseContext::getUnoTunnelId()));
+ Reference<XInterface> xDBContextTunnel(DatabaseContext::create(context), UNO_QUERY_THROW);
+ rtl::Reference<dbaccess::ODatabaseContext> pContext
+ = dynamic_cast<dbaccess::ODatabaseContext*>(xDBContextTunnel.get());
+ assert(pContext);
rtl::Reference pImpl(
new dbaccess::ODatabaseModelImpl(context, *pContext));
- css::uno::Reference<XInterface> inst(pImpl->createNewModel_deliverOwnership());
+ rtl::Reference<dbaccess::ODatabaseDocument> inst(pImpl->createNewModel_deliverOwnership());
inst->acquire();
- return inst.get();
+ return cppu::getXWeak(inst.get());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/databasedocument.hxx b/dbaccess/source/core/dataaccess/databasedocument.hxx
index 1ed509c27d60..46d86d278dc9 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.hxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.hxx
@@ -20,6 +20,7 @@
#include <sal/config.h>
+#include <atomic>
#include <map>
#include <memory>
@@ -28,7 +29,7 @@
#include <com/sun/star/document/XDocumentSubStorageSupplier.hpp>
#include <com/sun/star/frame/DoubleInitializationException.hpp>
-#include <com/sun/star/frame/XModel2.hpp>
+#include <com/sun/star/frame/XModel3.hpp>
#include <com/sun/star/frame/XTitle.hpp>
#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
#include <com/sun/star/frame/XUntitledNumbers.hpp>
@@ -57,6 +58,7 @@
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/util/XModifiable.hpp>
+#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/implbase3.hxx>
#include <rtl/ref.hxx>
@@ -64,6 +66,7 @@
namespace comphelper {
class NamedValueCollection;
}
+namespace framework { class TitleHelper; }
namespace dbaccess
{
@@ -71,6 +74,7 @@ namespace dbaccess
class DocumentEvents;
class DocumentEventExecutor;
class DocumentGuard;
+class OCommandContainer;
typedef std::vector< css::uno::Reference< css::frame::XController > > Controllers;
@@ -130,7 +134,7 @@ private:
};
// ODatabaseDocument
-typedef cppu::PartialWeakComponentImplHelper< css::frame::XModel2
+typedef cppu::PartialWeakComponentImplHelper< css::frame::XModel3
, css::util::XModifiable
, css::frame::XStorable
, css::document::XEventBroadcaster
@@ -147,16 +151,13 @@ typedef cppu::PartialWeakComponentImplHelper< css::frame::XModel2
, css::document::XEventsSupplier
, css::frame::XLoadable
, css::document::XDocumentRecovery
+ , css::frame::XTitle
+ , css::frame::XTitleChangeBroadcaster
+ , css::frame::XUntitledNumbers
> ODatabaseDocument_OfficeDocument;
-typedef ::cppu::ImplHelper3< css::frame::XTitle
- , css::frame::XTitleChangeBroadcaster
- , css::frame::XUntitledNumbers
- > ODatabaseDocument_Title;
-
class ODatabaseDocument :public ModelDependentComponent // ModelDependentComponent must be first!
,public ODatabaseDocument_OfficeDocument
- ,public ODatabaseDocument_Title
{
enum InitState
{
@@ -168,9 +169,9 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
typedef std::map< OUString, css::uno::Reference< css::frame::XUntitledNumbers > > TNumberedController;
css::uno::Reference< css::ui::XUIConfigurationManager2> m_xUIConfigurationManager;
- ::comphelper::OInterfaceContainerHelper2 m_aModifyListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aCloseListener;
- ::comphelper::OInterfaceContainerHelper2 m_aStorageListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::util::XModifyListener> m_aModifyListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::util::XCloseListener> m_aCloseListener;
+ ::comphelper::OInterfaceContainerHelper3<css::document::XStorageChangeListener> m_aStorageListeners;
std::unique_ptr<DocumentEvents> m_pEventContainer;
::rtl::Reference< DocumentEventExecutor > m_pEventExecutor;
@@ -186,7 +187,7 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
/** @short such module manager is used to classify new opened documents. */
css::uno::Reference< css::frame::XModuleManager2 > m_xModuleManager;
- css::uno::Reference< css::frame::XTitle > m_xTitleHelper;
+ rtl::Reference< ::framework::TitleHelper > m_xTitleHelper;
TNumberedController m_aNumberedControllers;
/** true if and only if the DatabaseDocument's "initNew" or "load" have been called (or, well,
@@ -194,7 +195,8 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
*/
InitState m_eInitState;
bool m_bClosing;
- bool m_bAllowDocumentScripting;
+ /// Using atomic because locking around accessing this will lead to deadlock in queryInterface
+ std::atomic<bool> m_bAllowDocumentScripting;
bool m_bHasBeenRecovered;
/// If XModel::attachResource() was called to inform us that the document is embedded into another one.
bool m_bEmbedded;
@@ -235,8 +237,8 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
/// write a single XML stream into the package
void WriteThroughComponent(
const css::uno::Reference< css::lang::XComponent > & xComponent, /// the component we export
- const char* pStreamName, /// the stream name
- const char* pServiceName, /// service name of the component
+ const OUString& rStreamName, /// the stream name
+ const OUString& rServiceName, /// service name of the component
const css::uno::Sequence< css::uno::Any> & rArguments, /// the argument (XInitialization)
const css::uno::Sequence< css::beans::PropertyValue> & rMediaDesc,/// output descriptor
const css::uno::Reference< css::embed::XStorage >& _xStorageToSaveTo
@@ -247,7 +249,7 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
void WriteThroughComponent(
const css::uno::Reference< css::io::XOutputStream >& xOutputStream,
const css::uno::Reference< css::lang::XComponent >& xComponent,
- const char* pServiceName,
+ const OUString& rServiceName,
const css::uno::Sequence< css::uno::Any >& rArguments,
const css::uno::Sequence< css::beans::PropertyValue> & rMediaDesc
) const;
@@ -268,7 +270,7 @@ class ODatabaseDocument :public ModelDependentComponent // ModelDepe
// ModelDependentComponent overridables
virtual css::uno::Reference< css::uno::XInterface > getThis() const override;
- css::uno::Reference< css::frame::XTitle > const & impl_getTitleHelper_throw();
+ rtl::Reference< ::framework::TitleHelper> const & impl_getTitleHelper_throw();
css::uno::Reference< css::frame::XUntitledNumbers > impl_getUntitledHelper_throw(
const css::uno::Reference< css::uno::XInterface >& _xComponent = css::uno::Reference< css::uno::XInterface >());
@@ -286,7 +288,7 @@ protected:
public:
struct FactoryAccess { friend class ODatabaseModelImpl; private: FactoryAccess() { } };
- static ODatabaseDocument* createDatabaseDocument( const ::rtl::Reference<ODatabaseModelImpl>& _pImpl, FactoryAccess /*accessControl*/ )
+ static rtl::Reference<ODatabaseDocument> createDatabaseDocument( const ::rtl::Reference<ODatabaseModelImpl>& _pImpl, FactoryAccess /*accessControl*/ )
{
return new ODatabaseDocument( _pImpl );
}
@@ -298,8 +300,6 @@ public:
// XInterface
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
- virtual void SAL_CALL acquire( ) throw () override;
- virtual void SAL_CALL release( ) throw () override;
// XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
@@ -330,6 +330,9 @@ public:
virtual css::uno::Reference< css::frame::XController2 > SAL_CALL createViewController( const OUString& ViewName, const css::uno::Sequence< css::beans::PropertyValue >& Arguments, const css::uno::Reference< css::frame::XFrame >& Frame ) override ;
virtual void SAL_CALL setArgs(const css::uno::Sequence<css::beans::PropertyValue>& aArgs) override;
+ // XModel3
+ virtual ::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL getArgs2( const ::css::uno::Sequence< ::rtl::OUString >& requestedArgs ) override;
+
// XStorable
virtual sal_Bool SAL_CALL hasLocation( ) override ;
virtual OUString SAL_CALL getLocation( ) override ;
@@ -437,6 +440,8 @@ public:
*/
static void clearObjectContainer(
css::uno::WeakReference< css::container::XNameAccess >& _rxContainer);
+ static void clearObjectContainer(
+ unotools::WeakReference< OCommandContainer >& _rxContainer);
/** checks whether the component is already initialized, throws a NotInitializedException if not
*/
@@ -625,7 +630,7 @@ private:
*/
void impl_throwIOExceptionCausedBySave_throw(
const css::uno::Any& i_rError,
- const OUString& i_rTargetURL
+ std::u16string_view i_rTargetURL
) const;
};
diff --git a/dbaccess/source/core/dataaccess/databaseregistrations.cxx b/dbaccess/source/core/dataaccess/databaseregistrations.cxx
index c147f99ec694..a328eb39ecf8 100644
--- a/dbaccess/source/core/dataaccess/databaseregistrations.cxx
+++ b/dbaccess/source/core/dataaccess/databaseregistrations.cxx
@@ -26,8 +26,8 @@
#include <com/sun/star/sdb/XDatabaseRegistrations.hpp>
#include <cppuhelper/basemutex.hxx>
-#include <comphelper/interfacecontainer2.hxx>
-#include <cppuhelper/implbase1.hxx>
+#include <comphelper/interfacecontainer3.hxx>
+#include <cppuhelper/implbase.hxx>
#include <osl/diagnose.h>
#include <unotools/pathoptions.hxx>
#include <tools/urlobj.hxx>
@@ -39,7 +39,7 @@ namespace dbaccess
{
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::RuntimeException;
- using ::com::sun::star::uno::makeAny;
+ using ::com::sun::star::uno::Any;
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::XComponentContext;
using ::com::sun::star::container::NoSuchElementException;
@@ -49,26 +49,14 @@ namespace dbaccess
using ::com::sun::star::sdb::XDatabaseRegistrations;
using ::com::sun::star::sdb::XDatabaseRegistrationsListener;
using ::com::sun::star::sdb::DatabaseRegistrationEvent;
- using ::com::sun::star::uno::XAggregation;
- static OUString getConfigurationRootPath()
- {
- return "org.openoffice.Office.DataAccess/RegisteredNames";
- }
-
- static OUString getLocationNodeName()
- {
- return "Location";
- }
-
- static OUString getNameNodeName()
- {
- return "Name";
- }
+ constexpr OUString CONF_ROOT_PATH = u"org.openoffice.Office.DataAccess/RegisteredNames"_ustr;
+ constexpr OUString LOCATION = u"Location"_ustr;
+ constexpr OUString NAME = u"Name"_ustr;
// DatabaseRegistrations - declaration
- typedef ::cppu::WeakAggImplHelper1 < XDatabaseRegistrations
- > DatabaseRegistrations_Base;
+ typedef ::cppu::WeakImplHelper< XDatabaseRegistrations
+ > DatabaseRegistrations_Base;
namespace {
@@ -94,13 +82,13 @@ namespace dbaccess
private:
void
- impl_checkValidName_common(const OUString& _rName);
+ impl_checkValidName_common(std::u16string_view _rName);
::utl::OConfigurationNode
impl_checkValidName_throw_must_exist(const OUString& _rName);
::utl::OConfigurationNode
impl_checkValidName_throw_must_not_exist(const OUString& _rName);
- void impl_checkValidLocation_throw( const OUString& _rLocation );
+ void impl_checkValidLocation_throw( std::u16string_view _rLocation );
/** retrieves the configuration node whose "Name" sub node has the given value
@@ -131,12 +119,12 @@ namespace dbaccess
::utl::OConfigurationNode
- impl_getNodeForName_nothrow(const OUString& _rName);
+ impl_getNodeForName_nothrow(std::u16string_view _rName);
private:
Reference<XComponentContext> m_aContext;
::utl::OConfigurationTreeRoot m_aConfigurationRoot;
- ::comphelper::OInterfaceContainerHelper2 m_aRegistrationListeners;
+ ::comphelper::OInterfaceContainerHelper3<XDatabaseRegistrationsListener> m_aRegistrationListeners;
};
}
@@ -144,18 +132,17 @@ namespace dbaccess
// DatabaseRegistrations - implementation
DatabaseRegistrations::DatabaseRegistrations( const Reference<XComponentContext> & _rxContext )
:m_aContext( _rxContext )
- ,m_aConfigurationRoot()
,m_aRegistrationListeners( m_aMutex )
{
m_aConfigurationRoot = ::utl::OConfigurationTreeRoot::createWithComponentContext(
- m_aContext, getConfigurationRootPath() );
+ m_aContext, CONF_ROOT_PATH );
}
DatabaseRegistrations::~DatabaseRegistrations()
{
}
- ::utl::OConfigurationNode DatabaseRegistrations::impl_getNodeForName_nothrow( const OUString& _rName )
+ ::utl::OConfigurationNode DatabaseRegistrations::impl_getNodeForName_nothrow( std::u16string_view _rName )
{
const Sequence< OUString > aNames( m_aConfigurationRoot.getNodeNames() );
for ( auto const & nodeName : aNames )
@@ -163,7 +150,7 @@ namespace dbaccess
::utl::OConfigurationNode aNodeForName = m_aConfigurationRoot.openNode( nodeName );
OUString sTestName;
- OSL_VERIFY( aNodeForName.getNodeValue( getNameNodeName() ) >>= sTestName );
+ OSL_VERIFY( aNodeForName.getNodeValue( NAME ) >>= sTestName );
if ( sTestName == _rName )
return aNodeForName;
}
@@ -197,16 +184,16 @@ namespace dbaccess
}
::utl::OConfigurationNode aNewNode( m_aConfigurationRoot.createNode( sNewNodeName ) );
- aNewNode.setNodeValue( getNameNodeName(), makeAny( _rName ) );
+ aNewNode.setNodeValue( NAME, Any( _rName ) );
return aNewNode;
}
- void DatabaseRegistrations::impl_checkValidName_common(const OUString& _rName)
+ void DatabaseRegistrations::impl_checkValidName_common(std::u16string_view _rName)
{
if ( !m_aConfigurationRoot.isValid() )
throw RuntimeException( OUString(), *this );
- if ( _rName.isEmpty() )
+ if ( _rName.empty() )
throw IllegalArgumentException( OUString(), *this, 1 );
}
@@ -222,9 +209,9 @@ namespace dbaccess
return impl_getNodeForName_throw_must_not_exist(_rName);
}
- void DatabaseRegistrations::impl_checkValidLocation_throw( const OUString& _rLocation )
+ void DatabaseRegistrations::impl_checkValidLocation_throw( std::u16string_view _rLocation )
{
- if ( _rLocation.isEmpty() )
+ if ( _rLocation.empty() )
throw IllegalArgumentException( OUString(), *this, 2 );
INetURLObject aURL( _rLocation );
@@ -252,7 +239,7 @@ namespace dbaccess
for ( auto const & name : aProgrammaticNames )
{
::utl::OConfigurationNode aRegistrationNode = m_aConfigurationRoot.openNode( name );
- OSL_VERIFY( aRegistrationNode.getNodeValue( getNameNodeName() ) >>= *pDisplayName );
+ OSL_VERIFY( aRegistrationNode.getNodeValue( NAME ) >>= *pDisplayName );
++pDisplayName;
}
@@ -266,7 +253,7 @@ namespace dbaccess
::utl::OConfigurationNode aNodeForName = impl_checkValidName_throw_must_exist(Name);
OUString sLocation;
- OSL_VERIFY( aNodeForName.getNodeValue( getLocationNodeName() ) >>= sLocation );
+ OSL_VERIFY( aNodeForName.getNodeValue( LOCATION ) >>= sLocation );
sLocation = SvtPathOptions().SubstituteVariable( sLocation );
return sLocation;
@@ -281,7 +268,7 @@ namespace dbaccess
::utl::OConfigurationNode aDataSourceRegistration = impl_checkValidName_throw_must_not_exist(Name);
// register
- aDataSourceRegistration.setNodeValue( getLocationNodeName(), makeAny( Location ) );
+ aDataSourceRegistration.setNodeValue( LOCATION, Any( Location ) );
m_aConfigurationRoot.commit();
// notify
@@ -299,7 +286,7 @@ namespace dbaccess
// obtain properties for notification
OUString sLocation;
- OSL_VERIFY( aNodeForName.getNodeValue( getLocationNodeName() ) >>= sLocation );
+ OSL_VERIFY( aNodeForName.getNodeValue( LOCATION ) >>= sLocation );
// revoke
if ( aNodeForName.isReadonly()
@@ -328,10 +315,10 @@ namespace dbaccess
// obtain properties for notification
OUString sOldLocation;
- OSL_VERIFY( aDataSourceRegistration.getNodeValue( getLocationNodeName() ) >>= sOldLocation );
+ OSL_VERIFY( aDataSourceRegistration.getNodeValue( LOCATION ) >>= sOldLocation );
// change
- aDataSourceRegistration.setNodeValue( getLocationNodeName(), makeAny( NewLocation ) );
+ aDataSourceRegistration.setNodeValue( LOCATION, Any( NewLocation ) );
m_aConfigurationRoot.commit();
// notify
@@ -360,7 +347,7 @@ namespace dbaccess
}
// DatabaseRegistrations - factory
- Reference< XAggregation > createDataSourceRegistrations( const Reference<XComponentContext> & _rxContext )
+ Reference< XDatabaseRegistrations > createDataSourceRegistrations( const Reference<XComponentContext> & _rxContext )
{
return new DatabaseRegistrations( _rxContext );
}
diff --git a/dbaccess/source/core/dataaccess/databaseregistrations.hxx b/dbaccess/source/core/dataaccess/databaseregistrations.hxx
index 9f8190ba1190..52def1de5aa2 100644
--- a/dbaccess/source/core/dataaccess/databaseregistrations.hxx
+++ b/dbaccess/source/core/dataaccess/databaseregistrations.hxx
@@ -20,13 +20,12 @@
#pragma once
#include <com/sun/star/uno/XAggregation.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/sdb/XDatabaseRegistrations.hpp>
namespace dbaccess
{
-
- css::uno::Reference< css::uno::XAggregation >
- createDataSourceRegistrations( const css::uno::Reference< css::uno::XComponentContext >& _rxContext );
+css::uno::Reference<css::sdb::XDatabaseRegistrations>
+createDataSourceRegistrations(const css::uno::Reference<css::uno::XComponentContext>& _rxContext);
} // namespace dbaccess
diff --git a/dbaccess/source/core/dataaccess/datasource.cxx b/dbaccess/source/core/dataaccess/datasource.cxx
index 7398253f576f..ca2872fbc99c 100644
--- a/dbaccess/source/core/dataaccess/datasource.cxx
+++ b/dbaccess/source/core/dataaccess/datasource.cxx
@@ -22,7 +22,8 @@
#include <stringconstants.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
-#include "connection.hxx"
+#include <strings.hxx>
+#include <connection.hxx>
#include "SharedConnection.hxx"
#include "databasedocument.hxx"
#include <OAuthenticationContinuation.hxx>
@@ -54,14 +55,13 @@
#include <connectivity/dbexception.hxx>
#include <connectivity/dbtools.hxx>
#include <cppuhelper/typeprovider.hxx>
-#include <tools/diagnose_ex.h>
+#include <officecfg/Office/Common.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <osl/process.h>
#include <sal/log.hxx>
-#include <svtools/miscopt.hxx>
#include <tools/urlobj.hxx>
#include <unotools/sharedunocomponent.hxx>
-#include <rtl/digest.h>
#include <algorithm>
#include <iterator>
@@ -219,9 +219,8 @@ void SAL_CALL OAuthenticationContinuation::setPassword( const OUString& _rPasswo
Sequence< RememberAuthentication > SAL_CALL OAuthenticationContinuation::getRememberPasswordModes( RememberAuthentication& _reDefault )
{
- Sequence< RememberAuthentication > aReturn(1);
- _reDefault = aReturn[0] = RememberAuthentication_SESSION;
- return aReturn;
+ _reDefault = RememberAuthentication_SESSION;
+ return { _reDefault };
}
void SAL_CALL OAuthenticationContinuation::setRememberPassword( RememberAuthentication _eRemember )
@@ -241,10 +240,8 @@ void SAL_CALL OAuthenticationContinuation::setAccount( const OUString& )
Sequence< RememberAuthentication > SAL_CALL OAuthenticationContinuation::getRememberAccountModes( RememberAuthentication& _reDefault )
{
- Sequence < RememberAuthentication > aReturn(1);
- aReturn[0] = RememberAuthentication_NO;
_reDefault = RememberAuthentication_NO;
- return aReturn;
+ return { RememberAuthentication_NO };
}
void SAL_CALL OAuthenticationContinuation::setRememberAccount( RememberAuthentication /*Remember*/ )
@@ -252,69 +249,6 @@ void SAL_CALL OAuthenticationContinuation::setRememberAccount( RememberAuthentic
SAL_WARN("dbaccess","OAuthenticationContinuation::setRememberAccount: not supported!");
}
-namespace {
-
-/** The class OSharedConnectionManager implements a structure to share connections.
- It owns the master connections which will be disposed when the last connection proxy is gone.
-*/
-// need to hold the digest
-struct TDigestHolder
-{
- sal_uInt8 m_pBuffer[RTL_DIGEST_LENGTH_SHA1];
- TDigestHolder()
- {
- m_pBuffer[0] = 0;
- }
-
-};
-
-}
-
-class OSharedConnectionManager : public ::cppu::WeakImplHelper< XEventListener >
-{
-
- // contains the currently used master connections
- struct TConnectionHolder
- {
- Reference< XConnection > xMasterConnection;
- oslInterlockedCount nALiveCount;
- };
-
- // the less-compare functor, used for the stl::map
- struct TDigestLess
- {
- bool operator() (const TDigestHolder& x, const TDigestHolder& y) const
- {
- sal_uInt32 i;
- for(i=0;i < RTL_DIGEST_LENGTH_SHA1 && (x.m_pBuffer[i] >= y.m_pBuffer[i]); ++i)
- ;
- return i < RTL_DIGEST_LENGTH_SHA1;
- }
- };
-
- typedef std::map< TDigestHolder,TConnectionHolder,TDigestLess> TConnectionMap; // holds the master connections
- typedef std::map< Reference< XConnection >,TConnectionMap::iterator> TSharedConnectionMap;// holds the shared connections
-
- ::osl::Mutex m_aMutex;
- TConnectionMap m_aConnections; // remember the master connection in conjunction with the digest
- TSharedConnectionMap m_aSharedConnection; // the shared connections with conjunction with an iterator into the connections map
- Reference< XProxyFactory > m_xProxyFactory;
-
-protected:
- virtual ~OSharedConnectionManager() override;
-
-public:
- explicit OSharedConnectionManager(const Reference< XComponentContext >& _rxContext);
-
- void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
- Reference<XConnection> getConnection( const OUString& url,
- const OUString& user,
- const OUString& password,
- const Sequence< PropertyValue >& _aInfo,
- ODatabaseSource* _pDataSource);
- void addEventListener(const Reference<XConnection>& _rxConnection, TConnectionMap::iterator const & _rIter);
-};
-
OSharedConnectionManager::OSharedConnectionManager(const Reference< XComponentContext >& _rxContext)
{
m_xProxyFactory.set( ProxyFactory::create( _rxContext ) );
@@ -352,10 +286,11 @@ Reference<XConnection> OSharedConnectionManager::getConnection( const OUString&
Sequence< PropertyValue > aInfoCopy(_aInfo);
sal_Int32 nPos = aInfoCopy.getLength();
aInfoCopy.realloc( nPos + 2 );
- aInfoCopy[nPos].Name = "TableFilter";
- aInfoCopy[nPos++].Value <<= _pDataSource->m_pImpl->m_aTableFilter;
- aInfoCopy[nPos].Name = "TableTypeFilter";
- aInfoCopy[nPos++].Value <<= _pDataSource->m_pImpl->m_aTableTypeFilter;
+ auto pInfoCopy = aInfoCopy.getArray();
+ pInfoCopy[nPos].Name = "TableFilter";
+ pInfoCopy[nPos++].Value <<= _pDataSource->m_pImpl->m_aTableFilter;
+ pInfoCopy[nPos].Name = "TableTypeFilter";
+ pInfoCopy[nPos++].Value <<= _pDataSource->m_pImpl->m_aTableTypeFilter;
OUString sUser = user;
OUString sPassword = password;
@@ -378,10 +313,10 @@ Reference<XConnection> OSharedConnectionManager::getConnection( const OUString&
aIter = m_aConnections.emplace(nId,aHolder).first;
}
- Reference<XConnection> xRet;
+ rtl::Reference<OSharedConnection> xRet;
if ( aIter->second.xMasterConnection.is() )
{
- Reference< XAggregation > xConProxy = m_xProxyFactory->createProxy(aIter->second.xMasterConnection.get());
+ Reference< XAggregation > xConProxy = m_xProxyFactory->createProxy(cppu::getXWeak(aIter->second.xMasterConnection.get()));
xRet = new OSharedConnection(xConProxy);
m_aSharedConnection.emplace(xRet,aIter);
addEventListener(xRet,aIter);
@@ -401,43 +336,29 @@ void OSharedConnectionManager::addEventListener(const Reference<XConnection>& _r
namespace
{
Sequence< PropertyValue > lcl_filterDriverProperties( const Reference< XDriver >& _xDriver, const OUString& _sUrl,
- const Sequence< PropertyValue >& _rDataSourceSettings, const AsciiPropertyValue* _pKnownSettings )
+ const Sequence< PropertyValue >& _rDataSourceSettings )
{
if ( _xDriver.is() )
{
Sequence< DriverPropertyInfo > aDriverInfo(_xDriver->getPropertyInfo(_sUrl,_rDataSourceSettings));
- const PropertyValue* pDataSourceSetting = _rDataSourceSettings.getConstArray();
- const PropertyValue* pEnd = pDataSourceSetting + _rDataSourceSettings.getLength();
-
std::vector< PropertyValue > aRet;
- for ( ; pDataSourceSetting != pEnd ; ++pDataSourceSetting )
+ for (auto& dataSourceSetting : _rDataSourceSettings)
{
- bool bAllowSetting = false;
- const AsciiPropertyValue* pSetting = _pKnownSettings;
- for ( ; pSetting->AsciiName; ++pSetting )
- {
- if ( pDataSourceSetting->Name.equalsAscii( pSetting->AsciiName ) )
- { // the particular data source setting is known
-
- const DriverPropertyInfo* pAllowedDriverSetting = aDriverInfo.getConstArray();
- const DriverPropertyInfo* pDriverSettingsEnd = pAllowedDriverSetting + aDriverInfo.getLength();
- for ( ; pAllowedDriverSetting != pDriverSettingsEnd; ++pAllowedDriverSetting )
- {
- if ( pAllowedDriverSetting->Name.equalsAscii( pSetting->AsciiName ) )
- { // the driver also allows this setting
- bAllowSetting = true;
- break;
- }
- }
- break;
- }
- }
- if ( bAllowSetting || !pSetting->AsciiName )
+ auto knownSettings = dbaccess::ODatabaseModelImpl::getDefaultDataSourceSettings();
+ bool isSettingKnown = std::any_of(knownSettings.begin(), knownSettings.end(),
+ [name = dataSourceSetting.Name](auto& setting)
+ { return name == setting.Name; });
+ // Allow if the particular data source setting is unknown or allowed by the driver
+ bool bAllowSetting = !isSettingKnown
+ || std::any_of(aDriverInfo.begin(), aDriverInfo.end(),
+ [name = dataSourceSetting.Name](auto& setting)
+ { return name == setting.Name; });
+ if (bAllowSetting)
{ // if the driver allows this particular setting, or if the setting is completely unknown,
// we pass it to the driver
- aRet.push_back( *pDataSourceSetting );
+ aRet.push_back(dataSourceSetting);
}
}
if ( !aRet.empty() )
@@ -531,12 +452,12 @@ Any ODatabaseSource::queryInterface( const Type & rType )
return aIface;
}
-void ODatabaseSource::acquire() throw ()
+void ODatabaseSource::acquire() noexcept
{
ODatabaseSource_Base::acquire();
}
-void ODatabaseSource::release() throw ()
+void ODatabaseSource::release() noexcept
{
ODatabaseSource_Base::release();
}
@@ -550,12 +471,12 @@ void SAL_CALL ODatabaseSource::disposing( const css::lang::EventObject& Source )
// XServiceInfo
OUString ODatabaseSource::getImplementationName( )
{
- return "com.sun.star.comp.dba.ODatabaseSource";
+ return u"com.sun.star.comp.dba.ODatabaseSource"_ustr;
}
Sequence< OUString > ODatabaseSource::getSupportedServiceNames( )
{
- return { SERVICE_SDB_DATASOURCE, "com.sun.star.sdb.DocumentDataSource" };
+ return { SERVICE_SDB_DATASOURCE, u"com.sun.star.sdb.DocumentDataSource"_ustr };
}
sal_Bool ODatabaseSource::supportsService( const OUString& _rServiceName )
@@ -583,7 +504,7 @@ weld::Window* ODatabaseModelImpl::GetFrameWeld()
if (m_xDialogParent.is())
return Application::GetFrameWeld(m_xDialogParent);
- Reference<XModel> xModel = getModel_noCreate();
+ rtl::Reference<ODatabaseDocument> xModel = getModel_noCreate();
if (!xModel.is())
return nullptr;
Reference<XController> xController(xModel->getCurrentController());
@@ -605,28 +526,26 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
#if ENABLE_FIREBIRD_SDBC
bool bIgnoreMigration = false;
bool bNeedMigration = false;
- Reference< XModel > xModel = m_pImpl->getModel_noCreate();
+ rtl::Reference< ODatabaseDocument > xModel = m_pImpl->getModel_noCreate();
if ( xModel)
{
//See ODbTypeWizDialogSetup::SaveDatabaseDocument
- ::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
- aArgs.get("IgnoreFirebirdMigration") >>= bIgnoreMigration;
+ ::comphelper::NamedValueCollection::get(xModel->getArgs(), u"IgnoreFirebirdMigration") >>= bIgnoreMigration;
}
else
{
//ignore when we don't have a model. E.g. Mailmerge, data sources, fields...
bIgnoreMigration = true;
}
- SvtMiscOptions aMiscOptions;
- if (!aMiscOptions.IsExperimentalMode())
+ if (!officecfg::Office::Common::Misc::ExperimentalMode::get())
bIgnoreMigration = true;
if(!bIgnoreMigration && m_pImpl->m_sConnectURL == "sdbc:embedded:hsqldb")
{
Reference<XStorage> const xRootStorage = m_pImpl->getOrCreateRootStorage();
OUString sMigrEnvVal;
- osl_getEnvironment(OUString("DBACCESS_HSQL_MIGRATION").pData,
+ osl_getEnvironment(u"DBACCESS_HSQL_MIGRATION"_ustr.pData,
&sMigrEnvVal.pData);
if(!sMigrEnvVal.isEmpty())
bNeedMigration = true;
@@ -634,7 +553,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
{
Reference<XPropertySet> const xPropSet(xRootStorage, UNO_QUERY_THROW);
sal_Int32 nOpenMode(0);
- if ((xPropSet->getPropertyValue("OpenMode") >>= nOpenMode)
+ if ((xPropSet->getPropertyValue(u"OpenMode"_ustr) >>= nOpenMode)
&& (nOpenMode & css::embed::ElementModes::WRITE)
&& (!Application::IsHeadlessModeEnabled()))
{
@@ -645,7 +564,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
if (bNeedMigration)
{
// back up content xml file if migration was successful
- constexpr char BACKUP_XML_NAME[] = "content_before_migration.xml";
+ static constexpr OUString BACKUP_XML_NAME = u"content_before_migration.xml"_ustr;
try
{
if(xRootStorage->isStreamElement(BACKUP_XML_NAME))
@@ -655,7 +574,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
{
SAL_INFO("dbaccess", "No file content_before_migration.xml found" );
}
- xRootStorage->copyElementTo("content.xml", xRootStorage,
+ xRootStorage->copyElementTo(u"content.xml"_ustr, xRootStorage,
BACKUP_XML_NAME);
m_pImpl->m_sConnectURL = "sdbc:embedded:firebird";
@@ -680,7 +599,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
sPwd = m_pImpl->m_aPassword;
}
- const char* pExceptionMessageId = RID_STR_COULDNOTCONNECT_UNSPECIFIED;
+ TranslateId pExceptionMessageId = RID_STR_COULDNOTCONNECT_UNSPECIFIED;
if (xManager.is())
{
sal_Int32 nAdditionalArgs(0);
@@ -688,17 +607,18 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
if (!sPwd.isEmpty()) ++nAdditionalArgs;
Sequence< PropertyValue > aUserPwd(nAdditionalArgs);
+ auto aUserPwdRange = asNonConstRange(aUserPwd);
sal_Int32 nArgPos = 0;
if (!sUser.isEmpty())
{
- aUserPwd[ nArgPos ].Name = "user";
- aUserPwd[ nArgPos ].Value <<= sUser;
+ aUserPwdRange[ nArgPos ].Name = "user";
+ aUserPwdRange[ nArgPos ].Value <<= sUser;
++nArgPos;
}
if (!sPwd.isEmpty())
{
- aUserPwd[ nArgPos ].Name = "password";
- aUserPwd[ nArgPos ].Value <<= sPwd;
+ aUserPwdRange[ nArgPos ].Name = "password";
+ aUserPwdRange[ nArgPos ].Value <<= sPwd;
}
Reference< XDriver > xDriver;
try
@@ -725,24 +645,24 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
Sequence< PropertyValue > aDriverInfo = lcl_filterDriverProperties(
xDriver,
m_pImpl->m_sConnectURL,
- m_pImpl->m_xSettings->getPropertyValues(),
- dbaccess::ODatabaseModelImpl::getDefaultDataSourceSettings()
+ m_pImpl->m_xSettings->getPropertyValues()
);
if ( m_pImpl->isEmbeddedDatabase() )
{
sal_Int32 nCount = aDriverInfo.getLength();
aDriverInfo.realloc(nCount + 3 );
+ auto pDriverInfo = aDriverInfo.getArray();
- aDriverInfo[nCount].Name = "URL";
- aDriverInfo[nCount++].Value <<= m_pImpl->getURL();
+ pDriverInfo[nCount].Name = "URL";
+ pDriverInfo[nCount++].Value <<= m_pImpl->getURL();
- aDriverInfo[nCount].Name = "Storage";
+ pDriverInfo[nCount].Name = "Storage";
Reference< css::document::XDocumentSubStorageSupplier> xDocSup( m_pImpl->getDocumentSubStorageSupplier() );
- aDriverInfo[nCount++].Value <<= xDocSup->getDocumentSubStorage("database",ElementModes::READWRITE);
+ pDriverInfo[nCount++].Value <<= xDocSup->getDocumentSubStorage(u"database"_ustr,ElementModes::READWRITE);
- aDriverInfo[nCount].Name = "Document";
- aDriverInfo[nCount++].Value <<= getDatabaseDocument();
+ pDriverInfo[nCount].Name = "Document";
+ pDriverInfo[nCount++].Value <<= getDatabaseDocument();
}
if (nAdditionalArgs)
xReturn = xManager->getConnectionWithInfo(m_pImpl->m_sConnectURL, ::comphelper::concatSequences(aUserPwd,aDriverInfo));
@@ -767,11 +687,11 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
OUString sMessage = DBA_RES(pExceptionMessageId)
.replaceAll("$name$", m_pImpl->m_sConnectURL);
- SQLContext aContext;
- aContext.Message = DBA_RES(RID_STR_CONNECTION_REQUEST).
- replaceFirst("$name$", m_pImpl->m_sConnectURL);
+ SQLContext aContext(
+ DBA_RES(RID_STR_CONNECTION_REQUEST).replaceFirst("$name$", m_pImpl->m_sConnectURL),
+ {}, {}, 0, {}, {});
- throwGenericSQLException( sMessage, static_cast< XDataSource* >( this ), makeAny( aContext ) );
+ throwGenericSQLException( sMessage, static_cast< XDataSource* >( this ), Any( aContext ) );
}
#if ENABLE_FIREBIRD_SDBC
@@ -780,7 +700,7 @@ Reference< XConnection > ODatabaseSource::buildLowLevelConnection(const OUString
Reference< css::document::XDocumentSubStorageSupplier> xDocSup(
m_pImpl->getDocumentSubStorageSupplier() );
dbahsql::HsqlImporter importer(xReturn,
- xDocSup->getDocumentSubStorage("database",ElementModes::READWRITE) );
+ xDocSup->getDocumentSubStorage(u"database"_ustr,ElementModes::READWRITE) );
importer.importHsqlDatabase(m_pImpl->GetFrameWeld());
}
#endif
@@ -797,21 +717,26 @@ Reference< XPropertySetInfo > ODatabaseSource::getPropertySetInfo()
// comphelper::OPropertyArrayUsageHelper
::cppu::IPropertyArrayHelper* ODatabaseSource::createArrayHelper( ) const
{
- BEGIN_PROPERTY_HELPER(13)
- DECL_PROP1(INFO, Sequence< PropertyValue >, BOUND);
- DECL_PROP1_BOOL(ISPASSWORDREQUIRED, BOUND);
- DECL_PROP1_BOOL(ISREADONLY, READONLY);
- DECL_PROP1(LAYOUTINFORMATION, Sequence< PropertyValue >, BOUND);
- DECL_PROP1(NAME, OUString, READONLY);
- DECL_PROP2_IFACE(NUMBERFORMATSSUPPLIER, XNumberFormatsSupplier, READONLY, TRANSIENT);
- DECL_PROP1(PASSWORD, OUString, TRANSIENT);
- DECL_PROP2_IFACE(SETTINGS, XPropertySet, BOUND, READONLY);
- DECL_PROP1_BOOL(SUPPRESSVERSIONCL, BOUND);
- DECL_PROP1(TABLEFILTER, Sequence< OUString >,BOUND);
- DECL_PROP1(TABLETYPEFILTER, Sequence< OUString >,BOUND);
- DECL_PROP1(URL, OUString, BOUND);
- DECL_PROP1(USER, OUString, BOUND);
- END_PROPERTY_HELPER();
+ return new ::cppu::OPropertyArrayHelper
+ {
+ {
+ // a change here means a change should also been done in OApplicationController::disposing()
+ { PROPERTY_INFO, PROPERTY_ID_INFO, cppu::UnoType<Sequence< PropertyValue >>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_ISPASSWORDREQUIRED, PROPERTY_ID_ISPASSWORDREQUIRED, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_ISREADONLY, PROPERTY_ID_ISREADONLY, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_LAYOUTINFORMATION, PROPERTY_ID_LAYOUTINFORMATION, cppu::UnoType<Sequence< PropertyValue >>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_NAME, PROPERTY_ID_NAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_NUMBERFORMATSSUPPLIER, PROPERTY_ID_NUMBERFORMATSSUPPLIER, cppu::UnoType<XNumberFormatsSupplier>::get(),
+ css::beans::PropertyAttribute::READONLY | css::beans::PropertyAttribute::TRANSIENT },
+ { PROPERTY_PASSWORD, PROPERTY_ID_PASSWORD, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::TRANSIENT },
+ { PROPERTY_SETTINGS, PROPERTY_ID_SETTINGS, cppu::UnoType<XPropertySet>::get(), css::beans::PropertyAttribute::BOUND | css::beans::PropertyAttribute::READONLY },
+ { PROPERTY_SUPPRESSVERSIONCL, PROPERTY_ID_SUPPRESSVERSIONCL, cppu::UnoType<bool>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_TABLEFILTER, PROPERTY_ID_TABLEFILTER, cppu::UnoType<Sequence< OUString >>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_TABLETYPEFILTER, PROPERTY_ID_TABLETYPEFILTER, cppu::UnoType<Sequence< OUString >>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_URL, PROPERTY_ID_URL, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::BOUND },
+ { PROPERTY_USER, PROPERTY_ID_USER, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::BOUND }
+ }
+ };
}
// cppu::OPropertySetHelper
@@ -822,73 +747,59 @@ Reference< XPropertySetInfo > ODatabaseSource::getPropertySetInfo()
sal_Bool ODatabaseSource::convertFastPropertyValue(Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue )
{
- bool bModified(false);
if ( m_pImpl.is() )
{
switch (nHandle)
{
case PROPERTY_ID_TABLEFILTER:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aTableFilter);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aTableFilter);
case PROPERTY_ID_TABLETYPEFILTER:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aTableTypeFilter);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aTableTypeFilter);
case PROPERTY_ID_USER:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_sUser);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_sUser);
case PROPERTY_ID_PASSWORD:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aPassword);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aPassword);
case PROPERTY_ID_ISPASSWORDREQUIRED:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_bPasswordRequired);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_bPasswordRequired);
case PROPERTY_ID_SUPPRESSVERSIONCL:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_bSuppressVersionColumns);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_bSuppressVersionColumns);
case PROPERTY_ID_LAYOUTINFORMATION:
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aLayoutInformation);
- break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_aLayoutInformation);
case PROPERTY_ID_URL:
- {
- bModified = ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_sConnectURL);
- } break;
+ return ::comphelper::tryPropertyValue(rConvertedValue, rOldValue, rValue, m_pImpl->m_sConnectURL);
case PROPERTY_ID_INFO:
{
Sequence<PropertyValue> aValues;
if (!(rValue >>= aValues))
throw IllegalArgumentException();
- for ( auto const & checkName : std::as_const(aValues) )
+ for (auto const& checkName : aValues)
{
if ( checkName.Name.isEmpty() )
throw IllegalArgumentException();
}
Sequence< PropertyValue > aSettings = m_pImpl->m_xSettings->getPropertyValues();
- bModified = aSettings.getLength() != aValues.getLength();
- if ( !bModified )
- {
- const PropertyValue* pInfoIter = aSettings.getConstArray();
- const PropertyValue* checkValue = aValues.getConstArray();
- for ( ;!bModified && checkValue != aValues.end() ; ++checkValue,++pInfoIter)
- {
- bModified = checkValue->Name != pInfoIter->Name;
- if ( !bModified )
- {
- bModified = checkValue->Value != pInfoIter->Value;
- }
- }
- }
rConvertedValue = rValue;
rOldValue <<= aSettings;
+
+ if (aSettings.getLength() != aValues.getLength())
+ return true;
+
+ for (sal_Int32 i = 0; i < aSettings.getLength(); ++i)
+ {
+ if (aValues[i].Name != aSettings[i].Name
+ || aValues[i].Value != aSettings[i].Value)
+ return true;
+ }
}
break;
default:
SAL_WARN("dbaccess", "ODatabaseSource::convertFastPropertyValue: unknown or readonly Property!" );
}
}
- return bModified;
+ return false;
}
namespace
@@ -1050,13 +961,15 @@ void ODatabaseSource::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) con
// transform them so that only property values which fulfill certain
// criteria survive
Sequence< PropertyValue > aNonDefaultOrUserDefined( aValues.getLength() );
+ auto [begin, end] = asNonConstRange(aValues);
+ auto pCopyStart = aNonDefaultOrUserDefined.getArray();
const PropertyValue* pCopyEnd = std::remove_copy_if(
- aValues.begin(),
- aValues.end(),
- aNonDefaultOrUserDefined.getArray(),
+ begin,
+ end,
+ pCopyStart,
IsDefaultAndNotRemoveable( aPropertyAttributes )
);
- aNonDefaultOrUserDefined.realloc( pCopyEnd - aNonDefaultOrUserDefined.getArray() );
+ aNonDefaultOrUserDefined.realloc( pCopyEnd - pCopyStart );
rValue <<= aNonDefaultOrUserDefined;
}
catch( const Exception& )
@@ -1138,8 +1051,8 @@ Reference< XConnection > ODatabaseSource::connectWithCompletion( const Reference
// build an interaction request
// two continuations (Ok and Cancel)
- OInteractionAbort* pAbort = new OInteractionAbort;
- OAuthenticationContinuation* pAuthenticate = new OAuthenticationContinuation;
+ rtl::Reference<OInteractionAbort> pAbort = new OInteractionAbort;
+ rtl::Reference<OAuthenticationContinuation> pAuthenticate = new OAuthenticationContinuation;
// the name which should be referred in the login dialog
OUString sServerName( m_pImpl->m_sName );
@@ -1154,8 +1067,7 @@ Reference< XConnection > ODatabaseSource::connectWithCompletion( const Reference
aRequest.HasUserName = aRequest.HasPassword = true;
aRequest.UserName = m_pImpl->m_sUser;
aRequest.Password = m_pImpl->m_sFailedPassword.isEmpty() ? m_pImpl->m_aPassword : m_pImpl->m_sFailedPassword;
- OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
- Reference< XInteractionRequest > xRequest(pRequest);
+ rtl::Reference<OInteractionRequest> pRequest = new OInteractionRequest(Any(aRequest));
// some knittings
pRequest->addContinuation(pAbort);
pRequest->addContinuation(pAuthenticate);
@@ -1163,7 +1075,7 @@ Reference< XConnection > ODatabaseSource::connectWithCompletion( const Reference
// handle the request
try
{
- _rxHandler->handle(xRequest);
+ _rxHandler->handle(pRequest);
}
catch(Exception&)
{
@@ -1203,18 +1115,16 @@ Reference< XConnection > ODatabaseSource::connectWithCompletion( const Reference
}
}
-Reference< XConnection > ODatabaseSource::buildIsolatedConnection(const OUString& user, const OUString& password)
+rtl::Reference< OConnection > ODatabaseSource::buildIsolatedConnection(const OUString& user, const OUString& password)
{
- Reference< XConnection > xConn;
Reference< XConnection > xSdbcConn = buildLowLevelConnection(user, password);
OSL_ENSURE( xSdbcConn.is(), "ODatabaseSource::buildIsolatedConnection: invalid return value of buildLowLevelConnection!" );
// buildLowLevelConnection is expected to always succeed
- if ( xSdbcConn.is() )
- {
- // build a connection server and return it (no stubs)
- xConn = new OConnection(*this, xSdbcConn, m_pImpl->m_aContext);
- }
- return xConn;
+ if ( !xSdbcConn.is() )
+ return nullptr;
+
+ // build a connection server and return it (no stubs)
+ return new OConnection(*this, xSdbcConn, m_pImpl->m_aContext);
}
Reference< XConnection > ODatabaseSource::getConnection(const OUString& user, const OUString& password,bool _bIsolated)
@@ -1230,10 +1140,9 @@ Reference< XConnection > ODatabaseSource::getConnection(const OUString& user, co
{ // create a new proxy for the connection
if ( !m_pImpl->m_xSharedConnectionManager.is() )
{
- m_pImpl->m_pSharedConnectionManager = new OSharedConnectionManager( m_pImpl->m_aContext );
- m_pImpl->m_xSharedConnectionManager = m_pImpl->m_pSharedConnectionManager;
+ m_pImpl->m_xSharedConnectionManager = new OSharedConnectionManager( m_pImpl->m_aContext );
}
- xConn = m_pImpl->m_pSharedConnectionManager->getConnection(
+ xConn = m_pImpl->m_xSharedConnectionManager->getConnection(
m_pImpl->m_sConnectURL, user, password, m_pImpl->m_xSettings->getPropertyValues(), this );
}
@@ -1264,20 +1173,19 @@ Reference< XNameAccess > SAL_CALL ODatabaseSource::getQueryDefinitions( )
{
Any aValue;
css::uno::Reference< css::uno::XInterface > xMy(*this);
- if ( dbtools::getDataSourceSetting(xMy,"CommandDefinitions",aValue) )
+ if (dbtools::getDataSourceSetting(xMy, u"CommandDefinitions"_ustr, aValue))
{
OUString sSupportService;
aValue >>= sSupportService;
if ( !sSupportService.isEmpty() )
{
- Sequence<Any> aArgs(1);
- aArgs[0] <<= NamedValue("DataSource",makeAny(xMy));
+ Sequence<Any> aArgs{ Any(NamedValue(u"DataSource"_ustr,Any(xMy))) };
xContainer.set( m_pImpl->m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(sSupportService, aArgs, m_pImpl->m_aContext), UNO_QUERY);
}
}
if ( !xContainer.is() )
{
- TContentPtr& rContainerData( m_pImpl->getObjectContainer( ODatabaseModelImpl::E_QUERY ) );
+ TContentPtr& rContainerData( m_pImpl->getObjectContainer( ODatabaseModelImpl::ObjectType::Query ) );
xContainer = new OCommandContainer( m_pImpl->m_aContext, *this, rContainerData, false );
}
m_pImpl->m_xCommandDefinitions = xContainer;
@@ -1290,12 +1198,12 @@ Reference< XNameAccess > ODatabaseSource::getTables()
{
ModelMethodGuard aGuard( *this );
- Reference< XNameAccess > xContainer = m_pImpl->m_xTableDefinitions;
+ rtl::Reference< OCommandContainer > xContainer = m_pImpl->m_xTableDefinitions;
if ( !xContainer.is() )
{
- TContentPtr& rContainerData( m_pImpl->getObjectContainer( ODatabaseModelImpl::E_TABLE ) );
+ TContentPtr& rContainerData( m_pImpl->getObjectContainer( ODatabaseModelImpl::ObjectType::Table ) );
xContainer = new OCommandContainer( m_pImpl->m_aContext, *this, rContainerData, true );
- m_pImpl->m_xTableDefinitions = xContainer;
+ m_pImpl->m_xTableDefinitions = xContainer.get();
}
return xContainer;
}
@@ -1396,18 +1304,18 @@ Reference< XOfficeDatabaseDocument > SAL_CALL ODatabaseSource::getDatabaseDocume
{
ModelMethodGuard aGuard( *this );
- Reference< XModel > xModel( m_pImpl->getModel_noCreate() );
+ rtl::Reference< ODatabaseDocument > xModel( m_pImpl->getModel_noCreate() );
if ( !xModel.is() )
xModel = m_pImpl->createNewModel_deliverOwnership();
- return Reference< XOfficeDatabaseDocument >( xModel, UNO_QUERY_THROW );
+ return Reference< XOfficeDatabaseDocument >( static_cast<cppu::OWeakObject*>(xModel.get()), UNO_QUERY_THROW );
}
void SAL_CALL ODatabaseSource::initialize( css::uno::Sequence< css::uno::Any > const & rArguments)
{
::comphelper::NamedValueCollection aProperties( rArguments );
- if (aProperties.has("ParentWindow"))
- aProperties.get("ParentWindow") >>= m_pImpl->m_xDialogParent;
+ if (aProperties.has(u"ParentWindow"_ustr))
+ aProperties.get(u"ParentWindow"_ustr) >>= m_pImpl->m_xDialogParent;
}
Reference< XInterface > ODatabaseSource::getThis() const
diff --git a/dbaccess/source/core/dataaccess/datasource.hxx b/dbaccess/source/core/dataaccess/datasource.hxx
index 3a5c0bc3da0f..2a70c943a3f2 100644
--- a/dbaccess/source/core/dataaccess/datasource.hxx
+++ b/dbaccess/source/core/dataaccess/datasource.hxx
@@ -30,6 +30,7 @@
#include <com/sun/star/document/XEventListener.hpp>
#include <com/sun/star/util/XFlushable.hpp>
#include <cppuhelper/propshlp.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/proparrhlp.hxx>
#include <cppuhelper/weakref.hxx>
#include <cppuhelper/compbase.hxx>
@@ -54,6 +55,7 @@ namespace dbaccess
{
class OSharedConnectionManager;
+class OConnection;
// ODatabaseSource
typedef ::cppu::WeakComponentImplHelper< css::lang::XServiceInfo
@@ -83,7 +85,7 @@ private:
using ODatabaseSource_Base::rBHelper;
// note: this thing uses the ref-count of "this", see OBookmarkContainer::acquire!
OBookmarkContainer m_Bookmarks;
- ::comphelper::OInterfaceContainerHelper2 m_aFlushListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::util::XFlushListener> m_aFlushListeners;
private:
virtual ~ODatabaseSource() override;
@@ -121,8 +123,8 @@ public:
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw( ) override;
- virtual void SAL_CALL release() throw( ) override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
@@ -199,7 +201,7 @@ private:
const OUString& _rUid, const OUString& _rPwd
);
- css::uno::Reference< css::sdbc::XConnection > buildIsolatedConnection(
+ rtl::Reference< OConnection > buildIsolatedConnection(
const OUString& user, const OUString& password
);
diff --git a/dbaccess/source/core/dataaccess/definitioncontainer.cxx b/dbaccess/source/core/dataaccess/definitioncontainer.cxx
index 4788c4d03d7a..9f050d79e08b 100644
--- a/dbaccess/source/core/dataaccess/definitioncontainer.cxx
+++ b/dbaccess/source/core/dataaccess/definitioncontainer.cxx
@@ -18,11 +18,12 @@
*/
#include <definitioncontainer.hxx>
-#include <apitools.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
+#include <strings.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
+#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
#include <comphelper/enumhelper.hxx>
#include <cppuhelper/exc_hlp.hxx>
@@ -32,7 +33,6 @@
#include <com/sun/star/sdb/ErrorCondition.hpp>
#include <comphelper/servicehelper.hxx>
#include <comphelper/types.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
#include <rtl/ref.hxx>
using namespace ::com::sun::star::uno;
@@ -135,7 +135,14 @@ ODefinitionContainer::~ODefinitionContainer()
}
IMPLEMENT_FORWARD_XINTERFACE2( ODefinitionContainer,OContentHelper,ODefinitionContainer_Base)
-IMPLEMENT_GETTYPES2(ODefinitionContainer,OContentHelper,ODefinitionContainer_Base);
+css::uno::Sequence< css::uno::Type > ODefinitionContainer::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OContentHelper::getTypes( ),
+ ODefinitionContainer_Base::getTypes( )
+ );
+}
+
css::uno::Sequence<sal_Int8> ODefinitionContainer::getImplementationId()
{
@@ -145,12 +152,12 @@ css::uno::Sequence<sal_Int8> ODefinitionContainer::getImplementationId()
// XServiceInfo
OUString SAL_CALL ODefinitionContainer::getImplementationName( )
{
- return "com.sun.star.sdb.ODefinitionContainer";
+ return u"com.sun.star.sdb.ODefinitionContainer"_ustr;
}
Sequence< OUString > SAL_CALL ODefinitionContainer::getSupportedServiceNames( )
{
- return { "com.sun.star.sdb.DefinitionContainer", "com.sun.star.ucb.Content" };
+ return { u"com.sun.star.sdb.DefinitionContainer"_ustr, u"com.sun.star.ucb.Content"_ustr };
}
// XNameContainer
@@ -265,7 +272,7 @@ namespace
if ( eVetoDetails >>= aWrappedError )
throw aWrappedError;
- throw WrappedTargetException( xVeto->getReason(), Listener.get(), eVetoDetails );
+ throw WrappedTargetException( xVeto->getReason(), Listener, eVetoDetails );
}
};
}
@@ -280,7 +287,7 @@ void ODefinitionContainer::notifyByName( ResettableMutexGuard& _rGuard, const OU
if ( !rContainer.getLength() )
return;
- ContainerEvent aEvent( *this, makeAny( _rName ), makeAny( _xNewElement ), makeAny( _xOldElement ) );
+ ContainerEvent aEvent( *this, Any( _rName ), Any( _xNewElement ), Any( _xOldElement ) );
_rGuard.clear();
switch ( _eOperation )
@@ -366,7 +373,7 @@ Any SAL_CALL ODefinitionContainer::getByIndex( sal_Int32 _nIndex )
{
MutexGuard aGuard(m_aMutex);
- if ((_nIndex < 0) || (_nIndex >= static_cast<sal_Int32>(m_aDocuments.size())))
+ if ((_nIndex < 0) || (o3tl::make_unsigned(_nIndex) >= m_aDocuments.size()))
throw IndexOutOfBoundsException();
Documents::iterator aPos = m_aDocuments[_nIndex];
@@ -379,14 +386,14 @@ Any SAL_CALL ODefinitionContainer::getByIndex( sal_Int32 _nIndex )
// and update the name-access map
}
- return makeAny(xProp);
+ return Any(xProp);
}
Any SAL_CALL ODefinitionContainer::getByName( const OUString& _rName )
{
MutexGuard aGuard(m_aMutex);
- return makeAny( implGetByName( _rName, true ) );
+ return Any( implGetByName( _rName, true ) );
}
Reference< XContent > ODefinitionContainer::implGetByName(const OUString& _rName, bool _bReadIfNecessary)
@@ -526,7 +533,7 @@ void ODefinitionContainer::implAppend(const OUString& _rName, const Reference< X
// #i44786#
lcl_ensureName( _rxNewObject, _rName );
- ::rtl::Reference< OContentHelper > pContent = comphelper::getUnoTunnelImplementation<OContentHelper>( _rxNewObject );
+ ::rtl::Reference< OContentHelper > pContent = dynamic_cast<OContentHelper*>( _rxNewObject.get() );
if ( pContent.is() )
{
TContentPtr pImpl = pContent->getImpl();
@@ -585,7 +592,7 @@ void ODefinitionContainer::approveNewObject(const OUString& _sName,const Referen
DBA_RES( RID_STR_NAME_ALREADY_USED ),
*this );
- ::rtl::Reference< OContentHelper > pContent( comphelper::getUnoTunnelImplementation<OContentHelper>( _rxObject ) );
+ ::rtl::Reference< OContentHelper > pContent( dynamic_cast<OContentHelper*>( _rxObject.get() ) );
if ( !pContent.is() )
throw IllegalArgumentException(
DBA_RES( RID_STR_OBJECT_CONTAINER_MISMATCH ),
@@ -663,7 +670,7 @@ void ODefinitionContainer::removeObjectListener(const Reference< XContent >& _xN
bool ODefinitionContainer::checkExistence(const OUString& _rName)
{
- return m_aDocumentMap.find(_rName) != m_aDocumentMap.end();
+ return m_aDocumentMap.contains(_rName);
}
}
diff --git a/dbaccess/source/core/dataaccess/documentcontainer.cxx b/dbaccess/source/core/dataaccess/documentcontainer.cxx
index 9d88d27222f5..85661d8b270c 100644
--- a/dbaccess/source/core/dataaccess/documentcontainer.cxx
+++ b/dbaccess/source/core/dataaccess/documentcontainer.cxx
@@ -34,6 +34,7 @@
#include <connectivity/sqlerror.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
+#include <strings.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include <comphelper/propertysequence.hxx>
#include <comphelper/servicehelper.hxx>
@@ -41,6 +42,7 @@
#include <vcl/svapp.hxx>
#include <osl/mutex.hxx>
+#include <o3tl/string_view.hxx>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
@@ -50,7 +52,6 @@ using namespace ::com::sun::star::container;
using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::io;
using namespace ::osl;
using namespace ::comphelper;
using namespace ::cppu;
@@ -115,14 +116,47 @@ css::uno::Sequence<sal_Int8> ODocumentContainer::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES3(ODocumentContainer,ODefinitionContainer,OPropertyStateContainer,ODocumentContainer_Base);
-IMPLEMENT_SERVICE_INFO_IMPLNAME(ODocumentContainer, "com.sun.star.comp.dba.ODocumentContainer");
-IMPLEMENT_SERVICE_INFO_SUPPORTS(ODocumentContainer);
-IMPLEMENT_PROPERTYCONTAINER_DEFAULTS(ODocumentContainer)
+css::uno::Sequence< css::uno::Type > ODocumentContainer::getTypes()
+{
+ return ::comphelper::concatSequences(
+ ODefinitionContainer::getTypes( ),
+ OPropertyStateContainer::getTypes( ),
+ ODocumentContainer_Base::getTypes( )
+ );
+}
+OUString SAL_CALL ODocumentContainer::getImplementationName()
+ {
+ return u"com.sun.star.comp.dba.ODocumentContainer"_ustr;
+ };
+sal_Bool SAL_CALL ODocumentContainer::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ };
+css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL ODocumentContainer::getPropertySetInfo()
+{
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+::cppu::IPropertyArrayHelper& ODocumentContainer::getInfoHelper()
+{
+ return *ODocumentContainer::getArrayHelper();
+}
+::cppu::IPropertyArrayHelper* ODocumentContainer::createArrayHelper( ) const
+{
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
Sequence< OUString > SAL_CALL ODocumentContainer::getSupportedServiceNames( )
{
- return { m_bFormsContainer ? OUString(SERVICE_NAME_FORM_COLLECTION) : OUString(SERVICE_NAME_REPORT_COLLECTION) };
+ return { m_bFormsContainer ? SERVICE_NAME_FORM_COLLECTION : SERVICE_NAME_REPORT_COLLECTION };
}
OUString ODocumentContainer::determineContentType() const
@@ -181,10 +215,10 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
lcl_extractAndRemove( aArgs, PROPERTY_ACTIVE_CONNECTION, xConnection );
lcl_extractAndRemove( aArgs, PROPERTY_AS_TEMPLATE, bAsTemplate );
lcl_extractAndRemove( aArgs, INFO_MEDIATYPE, sMediaType );
- lcl_extractAndRemove( aArgs, "DocumentServiceName" , sDocServiceName );
+ lcl_extractAndRemove( aArgs, u"DocumentServiceName"_ustr , sDocServiceName );
// ClassID has two allowed types, so a special treatment here
- Any aClassIDArg = aArgs.get( "ClassID" );
+ Any aClassIDArg = aArgs.get( u"ClassID"_ustr );
if ( aClassIDArg.hasValue() )
{
if ( !( aClassIDArg >>= aClassID ) )
@@ -201,7 +235,7 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
OUString sClassIDString = ::comphelper::MimeConfigurationHelper::GetStringClassIDRepresentation( aClassID );
(void)sClassIDString;
#endif
- aArgs.remove( "ClassID" );
+ aArgs.remove( u"ClassID"_ustr );
}
// Everything which now is still present in the arguments is passed to the embedded object
const Sequence< PropertyValue > aCreationArgs( aArgs.getPropertyValues() );
@@ -218,9 +252,7 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
const bool bNeedClassID = !aClassID.hasElements() && sURL.isEmpty() ;
if ( xCopyFrom.is() )
{
- Sequence<Any> aIni(2);
- aIni[0] <<= getContainerStorage();
- aIni[1] <<= sPersistentName;
+ Sequence<Any> aIni{ Any(getContainerStorage()), Any(sPersistentName) };
Command aCommand;
aCommand.Name = "copyTo";
aCommand.Argument <<= aIni;
@@ -245,7 +277,7 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
::comphelper::MimeConfigurationHelper aConfigHelper( m_aContext );
const Sequence< NamedValue > aProps( aConfigHelper.GetObjectPropsByDocumentName( sDocServiceName ) );
const ::comphelper::NamedValueCollection aMediaTypeProps( aProps );
- aClassID = aMediaTypeProps.getOrDefault( "ClassID", Sequence< sal_Int8 >() );
+ aClassID = aMediaTypeProps.getOrDefault( u"ClassID"_ustr, Sequence< sal_Int8 >() );
}
}
}
@@ -279,8 +311,7 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
if ( !sURL.isEmpty() )
{
- Sequence<Any> aIni(2);
- aIni[0] <<= sURL;
+ Sequence<Any> aIni{ Any(sURL) };
Command aCommand;
aCommand.Name = "insert";
aCommand.Argument <<= aIni;
@@ -293,14 +324,12 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
}
else if ( ServiceSpecifier == SERVICE_NAME_FORM_COLLECTION || SERVICE_NAME_REPORT_COLLECTION == ServiceSpecifier )
{
- const Any* pBegin = _aArguments.getConstArray();
- const Any* pEnd = pBegin + _aArguments.getLength();
- PropertyValue aValue;
OUString sName;
Reference<XNameAccess> xCopyFrom;
- for(;pBegin != pEnd;++pBegin)
+ for (auto& arg : _aArguments)
{
- *pBegin >>= aValue;
+ PropertyValue aValue;
+ arg >>= aValue;
if ( aValue.Name == PROPERTY_NAME)
{
aValue.Value >>= sName;
@@ -328,21 +357,18 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
// copy children
if ( xCopyFrom.is() )
{
- Sequence< OUString> aSeq = xCopyFrom->getElementNames();
- const OUString* elements = aSeq.getConstArray();
- const OUString* elementsEnd = elements + aSeq.getLength();
Reference<XContent> xObjectToCopy;
Reference<XMultiServiceFactory> xORB(xContent,UNO_QUERY);
OSL_ENSURE(xORB.is(),"No service factory given");
if ( xORB.is() )
{
- for(;elements != elementsEnd;++elements)
+ for (auto& element : xCopyFrom->getElementNames())
{
- xCopyFrom->getByName(*elements) >>= xObjectToCopy;
+ xCopyFrom->getByName(element) >>= xObjectToCopy;
Sequence<Any> aArguments(comphelper::InitAnyPropertySequence(
{
- {"Name", Any(*elements)}, // set as folder
+ {"Name", Any(element)}, // set as folder
{"Parent", Any(xContent)},
{PROPERTY_EMBEDDEDOBJECT, Any(xObjectToCopy)},
}));
@@ -361,7 +387,7 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
Reference<XContent > xNew(xORB->createInstanceWithArguments(sServiceName,aArguments),UNO_QUERY);
Reference<XNameContainer> xNameContainer(xContent,UNO_QUERY);
if ( xNameContainer.is() )
- xNameContainer->insertByName(*elements,makeAny(xNew));
+ xNameContainer->insertByName(element, Any(xNew));
}
}
}
@@ -372,11 +398,12 @@ Reference< XInterface > SAL_CALL ODocumentContainer::createInstanceWithArguments
Sequence< OUString > SAL_CALL ODocumentContainer::getAvailableServiceNames( )
{
- Sequence< OUString > aSe(3);
- aSe[0] = SERVICE_SDB_DOCUMENTDEFINITION;
- aSe[1] = SERVICE_NAME_FORM_COLLECTION;
- aSe[2] = SERVICE_NAME_REPORT_COLLECTION;
- return aSe;
+ return
+ {
+ SERVICE_SDB_DOCUMENTDEFINITION,
+ SERVICE_NAME_FORM_COLLECTION,
+ SERVICE_NAME_REPORT_COLLECTION
+ };
}
Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 CommandId, const Reference< XCommandEnvironment >& Environment )
@@ -390,7 +417,7 @@ Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 Com
{
OSL_FAIL( "Wrong argument type!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -412,12 +439,12 @@ Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 Com
aOpenCommand,
Environment );
aRet <<= xSet;
- }
+ }
else
{
// Unsupported.
ucbhelper::cancelCommandExecution(
- makeAny( UnsupportedOpenModeException(
+ Any( UnsupportedOpenModeException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
sal_Int16( aOpenCommand.Mode ) ) ),
@@ -434,7 +461,7 @@ Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 Com
{
OSL_FAIL( "Wrong argument type!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -445,11 +472,8 @@ Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 Com
else if ( aCommand.Name == "delete" )
{
// delete
- Sequence< OUString> aSeq = getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
- removeByName(*pIter);
+ for (auto& name : getElementNames())
+ removeByName(name);
dispose();
}
@@ -460,10 +484,10 @@ Any SAL_CALL ODocumentContainer::execute( const Command& aCommand, sal_Int32 Com
namespace
{
- bool lcl_queryContent(const OUString& _sName,Reference< XNameContainer >& _xNameContainer,Any& _rRet,OUString& _sSimpleName)
+ bool lcl_queryContent(std::u16string_view _sName,Reference< XNameContainer >& _xNameContainer,Any& _rRet,OUString& _sSimpleName)
{
sal_Int32 nIndex = 0;
- OUString sName = _sName.getToken(0,'/',nIndex);
+ OUString sName( o3tl::getToken(_sName,0,'/',nIndex) );
bool bRet = _xNameContainer->hasByName(sName);
if ( bRet )
{
@@ -471,7 +495,7 @@ namespace
_rRet = _xNameContainer->getByName(_sSimpleName);
while ( nIndex != -1 && bRet )
{
- sName = _sName.getToken(0,'/',nIndex);
+ sName = o3tl::getToken(_sName,0,'/',nIndex);
_xNameContainer.set(_rRet,UNO_QUERY);
bRet = _xNameContainer.is();
if ( bRet )
@@ -518,12 +542,12 @@ Reference< XComponent > SAL_CALL ODocumentContainer::loadComponentFromURL( const
Command aCommand;
::comphelper::NamedValueCollection aArgs( Arguments );
- aCommand.Name = aArgs.getOrDefault( "OpenMode", OUString("open") );
- aArgs.remove( "OpenMode" );
+ aCommand.Name = aArgs.getOrDefault( u"OpenMode"_ustr, u"open"_ustr );
+ aArgs.remove( u"OpenMode"_ustr );
OpenCommandArgument2 aOpenCommand;
aOpenCommand.Mode = OpenMode::DOCUMENT;
- aArgs.put( "OpenCommandArgument", aOpenCommand );
+ aArgs.put( u"OpenCommandArgument"_ustr, aOpenCommand );
aCommand.Argument <<= aArgs.getPropertyValues();
xComp.set(xContent->execute(aCommand,xContent->createCommandIdentifier(),Reference< XCommandEnvironment >()),UNO_QUERY);
@@ -579,7 +603,7 @@ void SAL_CALL ODocumentContainer::insertByHierarchicalName( const OUString& _sNa
sal_Int32 index = sName.getLength();
OUString sMessage(
DBA_RES(RID_STR_NO_SUB_FOLDER).replaceFirst("$folder$",
- _sName.getToken(0,'/',index)));
+ o3tl::getToken(_sName, 0,'/',index)));
throw IllegalArgumentException( sMessage, *this, 1 );
}
@@ -635,7 +659,7 @@ OUString SAL_CALL ODocumentContainer::composeHierarchicalName( const OUString& i
::rtl::Reference<OContentHelper> pContent;
try
{
- pContent = comphelper::getUnoTunnelImplementation<OContentHelper>(const_cast<ODocumentContainer*>(this)->implGetByName( _sName, true ));
+ pContent = dynamic_cast<OContentHelper*>(const_cast<ODocumentContainer*>(this)->implGetByName( _sName, true ).get());
}
catch(const Exception&)
{
@@ -679,7 +703,7 @@ void SAL_CALL ODocumentContainer::revert( )
Reference< XStorage> ODocumentContainer::getContainerStorage() const
{
return m_pImpl->m_pDataSource
- ? m_pImpl->m_pDataSource->getStorage( m_bFormsContainer ? ODatabaseModelImpl::E_FORM : ODatabaseModelImpl::E_REPORT )
+ ? m_pImpl->m_pDataSource->getStorage( m_bFormsContainer ? ODatabaseModelImpl::ObjectType::Form : ODatabaseModelImpl::ObjectType::Report )
: Reference< XStorage>();
}
@@ -718,8 +742,8 @@ void SAL_CALL ODocumentContainer::rename( const OUString& newName )
return;
sal_Int32 nHandle = PROPERTY_ID_NAME;
- Any aOld = makeAny(m_pImpl->m_aProps.aTitle);
- Any aNew = makeAny(newName);
+ Any aOld(m_pImpl->m_aProps.aTitle);
+ Any aNew(newName);
aGuard.clear();
fire(&nHandle, &aNew, &aOld, 1, true );
diff --git a/dbaccess/source/core/dataaccess/documentdefinition.cxx b/dbaccess/source/core/dataaccess/documentdefinition.cxx
index 2bfee3800b3b..04da2b8f6e7e 100644
--- a/dbaccess/source/core/dataaccess/documentdefinition.cxx
+++ b/dbaccess/source/core/dataaccess/documentdefinition.cxx
@@ -18,19 +18,23 @@
*/
#include "documentdefinition.hxx"
+#include "databasedocument.hxx"
#include <ModelImpl.hxx>
#include <stringconstants.hxx>
#include <sdbcoretools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
+#include <comphelper/compbase.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include <comphelper/classids.hxx>
#include <comphelper/propertysequence.hxx>
+#include <comphelper/propertyvalue.hxx>
#include <comphelper/types.hxx>
#include <com/sun/star/frame/XUntitledNumbers.hpp>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XModel.hpp>
@@ -75,6 +79,7 @@
#include <com/sun/star/view/XViewSettingsSupplier.hpp>
#include <core_resource.hxx>
#include <strings.hrc>
+#include <strings.hxx>
#include <com/sun/star/task/XInteractionApprove.hpp>
#include <com/sun/star/task/XInteractionDisapprove.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
@@ -144,22 +149,18 @@ namespace dbaccess
}
// OEmbedObjectHolder
- typedef ::cppu::WeakComponentImplHelper< embed::XStateChangeListener > TEmbedObjectHolder;
+ typedef ::comphelper::WeakComponentImplHelper< embed::XStateChangeListener > TEmbedObjectHolder;
- namespace {
-
- class OEmbedObjectHolder : public ::cppu::BaseMutex
- ,public TEmbedObjectHolder
+ class OEmbedObjectHolder : public TEmbedObjectHolder
{
Reference< XEmbeddedObject > m_xBroadCaster;
ODocumentDefinition* m_pDefinition;
bool m_bInStateChange;
protected:
- virtual void SAL_CALL disposing() override;
+ virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
public:
OEmbedObjectHolder(const Reference< XEmbeddedObject >& _xBroadCaster,ODocumentDefinition* _pDefinition)
- : TEmbedObjectHolder(m_aMutex)
- ,m_xBroadCaster(_xBroadCaster)
+ : m_xBroadCaster(_xBroadCaster)
,m_pDefinition(_pDefinition)
,m_bInStateChange(false)
{
@@ -176,9 +177,7 @@ namespace dbaccess
virtual void SAL_CALL disposing( const lang::EventObject& Source ) override;
};
- }
-
- void SAL_CALL OEmbedObjectHolder::disposing()
+ void OEmbedObjectHolder::disposing(std::unique_lock<std::mutex>& /*rGuard*/)
{
if ( m_xBroadCaster.is() )
m_xBroadCaster->removeStateChangeListener(this);
@@ -373,7 +372,7 @@ OUString ODocumentDefinition::GetDocumentServiceFromMediaType( const OUString& _
OUString aEntryDocName;
if ( ( xObjConfig->getByName( classId ) >>= xObjectProps ) && xObjectProps.is()
- && ( xObjectProps->getByName("ObjectDocumentServiceName") >>= aEntryDocName )
+ && ( xObjectProps->getByName(u"ObjectDocumentServiceName"_ustr) >>= aEntryDocName )
&& aEntryDocName == sResult )
{
_rClassId = comphelper::MimeConfigurationHelper::GetSequenceClassIDRepresentation(classId);
@@ -386,9 +385,9 @@ OUString ODocumentDefinition::GetDocumentServiceFromMediaType( const OUString& _
// alternative, shorter approach
const Sequence< NamedValue > aProps( aConfigHelper.GetObjectPropsByMediaType( _rMediaType ) );
const ::comphelper::NamedValueCollection aMediaTypeProps( aProps );
- const OUString sAlternativeResult = aMediaTypeProps.getOrDefault( "ObjectDocumentServiceName", OUString() );
+ const OUString sAlternativeResult = aMediaTypeProps.getOrDefault( u"ObjectDocumentServiceName"_ustr, OUString() );
OSL_ENSURE( sAlternativeResult == sResult, "ODocumentDefinition::GetDocumentServiceFromMediaType: failed, this approach is *not* equivalent (1)!" );
- const Sequence< sal_Int8 > aAlternativeClassID = aMediaTypeProps.getOrDefault( "ClassID", Sequence< sal_Int8 >() );
+ const Sequence< sal_Int8 > aAlternativeClassID = aMediaTypeProps.getOrDefault( u"ClassID"_ustr, Sequence< sal_Int8 >() );
OSL_ENSURE( aAlternativeClassID == _rClassId, "ODocumentDefinition::GetDocumentServiceFromMediaType: failed, this approach is *not* equivalent (2)!" );
#endif
}
@@ -463,7 +462,7 @@ void SAL_CALL ODocumentDefinition::disposing()
::comphelper::disposeComponent(m_xListener);
if ( m_bRemoveListener )
{
- Reference<util::XCloseable> xCloseable(m_pImpl->m_pDataSource->getModel_noCreate(),UNO_QUERY);
+ rtl::Reference<ODatabaseDocument> xCloseable(m_pImpl->m_pDataSource->getModel_noCreate());
if ( xCloseable.is() )
xCloseable->removeCloseListener(this);
}
@@ -474,21 +473,28 @@ css::uno::Sequence<sal_Int8> ODocumentDefinition::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES3(ODocumentDefinition,OContentHelper,OPropertyStateContainer,ODocumentDefinition_Base);
+css::uno::Sequence< css::uno::Type > ODocumentDefinition::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OContentHelper::getTypes( ),
+ OPropertyStateContainer::getTypes( ),
+ ODocumentDefinition_Base::getTypes( )
+ );
+}
IMPLEMENT_FORWARD_XINTERFACE3( ODocumentDefinition,OContentHelper,OPropertyStateContainer,ODocumentDefinition_Base)
void ODocumentDefinition::registerProperties()
{
-#define REGISTER_PROPERTY( name, location ) \
- registerProperty( PROPERTY_##name, PROPERTY_ID_##name, PropertyAttribute::READONLY, &location, cppu::UnoType<decltype(location)>::get() );
+ registerProperty(PROPERTY_NAME, PROPERTY_ID_NAME, PropertyAttribute::CONSTRAINED | PropertyAttribute::BOUND | PropertyAttribute::READONLY,
+ &m_pImpl->m_aProps.aTitle, cppu::UnoType<decltype(m_pImpl->m_aProps.aTitle)>::get());
+
+ registerProperty(PROPERTY_AS_TEMPLATE, PROPERTY_ID_AS_TEMPLATE, PropertyAttribute::READONLY, &m_pImpl->m_aProps.bAsTemplate,
+ cppu::UnoType<decltype(m_pImpl->m_aProps.bAsTemplate)>::get());
-#define REGISTER_PROPERTY_BV( name, location ) \
- registerProperty( PROPERTY_##name, PROPERTY_ID_##name, PropertyAttribute::CONSTRAINED | PropertyAttribute::BOUND | PropertyAttribute::READONLY, &location, cppu::UnoType<decltype(location)>::get() );
+ registerProperty(PROPERTY_PERSISTENT_NAME, PROPERTY_ID_PERSISTENT_NAME, PropertyAttribute::READONLY, &m_pImpl->m_aProps.sPersistentName,
+ cppu::UnoType<decltype(m_pImpl->m_aProps.sPersistentName)>::get());
- REGISTER_PROPERTY_BV( NAME, m_pImpl->m_aProps.aTitle );
- REGISTER_PROPERTY ( AS_TEMPLATE, m_pImpl->m_aProps.bAsTemplate );
- REGISTER_PROPERTY ( PERSISTENT_NAME, m_pImpl->m_aProps.sPersistentName );
- REGISTER_PROPERTY ( IS_FORM, m_bForm );
+ registerProperty(PROPERTY_IS_FORM, PROPERTY_ID_IS_FORM, PropertyAttribute::READONLY, &m_bForm, cppu::UnoType<decltype(m_bForm)>::get());
}
void SAL_CALL ODocumentDefinition::getFastPropertyValue( Any& o_rValue, sal_Int32 i_nHandle ) const
@@ -498,11 +504,8 @@ void SAL_CALL ODocumentDefinition::getFastPropertyValue( Any& o_rValue, sal_Int3
OUString sPersistentPath;
if ( !m_pImpl->m_aProps.sPersistentName.isEmpty() )
{
- OUStringBuffer aBuffer;
- aBuffer.append( ODatabaseModelImpl::getObjectContainerStorageName( m_bForm ? ODatabaseModelImpl::E_FORM : ODatabaseModelImpl::E_REPORT ) );
- aBuffer.append( '/' );
- aBuffer.append( m_pImpl->m_aProps.sPersistentName );
- sPersistentPath = aBuffer.makeStringAndClear();
+ sPersistentPath = ODatabaseModelImpl::getObjectContainerStorageName( m_bForm ? ODatabaseModelImpl::ObjectType::Form : ODatabaseModelImpl::ObjectType::Report )
+ + "/" + m_pImpl->m_aProps.sPersistentName;
}
o_rValue <<= sPersistentPath;
return;
@@ -529,11 +532,10 @@ IPropertyArrayHelper* ODocumentDefinition::createArrayHelper( ) const
describeProperties( aProps );
// properties not maintained by our base class
- Sequence< Property > aManualProps( 1 );
- aManualProps[0].Name = PROPERTY_PERSISTENT_PATH;
- aManualProps[0].Handle = PROPERTY_ID_PERSISTENT_PATH;
- aManualProps[0].Type = ::cppu::UnoType<OUString>::get();
- aManualProps[0].Attributes = PropertyAttribute::READONLY;
+ Sequence< Property > aManualProps{ { /* Name */ PROPERTY_PERSISTENT_PATH,
+ /* Handle */ PROPERTY_ID_PERSISTENT_PATH,
+ /* Type */ ::cppu::UnoType<OUString>::get(),
+ /* Attributes */ PropertyAttribute::READONLY } };
return new OPropertyArrayHelper( ::comphelper::concatSequences( aProps, aManualProps ) );
}
@@ -596,7 +598,7 @@ void ODocumentDefinition::impl_onActivateEmbeddedObject_nothrow( const bool i_bR
// ensure that we ourself are kept alive as long as the embedded object's frame is
// opened
- LifetimeCoupler::couple( *this, xFrame.get() );
+ LifetimeCoupler::couple( *this, xFrame );
// init the edit view
if ( m_bForm && m_bOpenInDesign && !i_bReactivated )
@@ -669,7 +671,7 @@ namespace
{
Reference< XPropertySet > xPropSet( xFrame, UNO_QUERY_THROW );
m_xLayoutManager.set(
- xPropSet->getPropertyValue( "LayoutManager" ),
+ xPropSet->getPropertyValue( u"LayoutManager"_ustr ),
UNO_QUERY_THROW );
m_xLayoutManager->lock();
@@ -715,14 +717,14 @@ void ODocumentDefinition::impl_initFormEditView( const Reference< XController >&
LayoutManagerLock aLockLayout( _rxController );
// setting of the visual properties
- xViewSettings->setPropertyValue("ShowRulers",makeAny(true));
- xViewSettings->setPropertyValue("ShowVertRuler",makeAny(true));
- xViewSettings->setPropertyValue("ShowHoriRuler",makeAny(true));
- xViewSettings->setPropertyValue("IsRasterVisible",makeAny(true));
- xViewSettings->setPropertyValue("IsSnapToRaster",makeAny(true));
- xViewSettings->setPropertyValue("ShowOnlineLayout",makeAny(true));
- xViewSettings->setPropertyValue("RasterSubdivisionX",makeAny(sal_Int32(5)));
- xViewSettings->setPropertyValue("RasterSubdivisionY",makeAny(sal_Int32(5)));
+ xViewSettings->setPropertyValue(u"ShowRulers"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"ShowVertRuler"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"ShowHoriRuler"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"IsRasterVisible"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"IsSnapToRaster"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"ShowOnlineLayout"_ustr,Any(true));
+ xViewSettings->setPropertyValue(u"RasterSubdivisionX"_ustr,Any(sal_Int32(5)));
+ xViewSettings->setPropertyValue(u"RasterSubdivisionY"_ustr,Any(sal_Int32(5)));
}
catch( const Exception& )
{
@@ -775,9 +777,9 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
// for the document, default to the interaction handler as used for loading the DB doc
// This might be overwritten below, when examining _rOpenArgument.
const ::comphelper::NamedValueCollection& aDBDocArgs( m_pImpl->m_pDataSource->getMediaDescriptor() );
- Reference< XInteractionHandler > xHandler( aDBDocArgs.getOrDefault( "InteractionHandler", Reference< XInteractionHandler >() ) );
+ Reference< XInteractionHandler > xHandler( aDBDocArgs.getOrDefault( u"InteractionHandler"_ustr, Reference< XInteractionHandler >() ) );
if ( xHandler.is() )
- aDocumentArgs.put( "InteractionHandler", xHandler );
+ aDocumentArgs.put( u"InteractionHandler"_ustr, xHandler );
::std::optional< sal_Int16 > aDocumentMacroMode;
@@ -786,29 +788,27 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
Sequence< PropertyValue > aArguments;
if ( _rOpenArgument >>= aArguments )
{
- const PropertyValue* pIter = aArguments.getConstArray();
- const PropertyValue* pEnd = pIter + aArguments.getLength();
- for ( ;pIter != pEnd; ++pIter )
+ for (auto& arg : aArguments)
{
- if ( pIter->Name == PROPERTY_ACTIVE_CONNECTION )
+ if (arg.Name == PROPERTY_ACTIVE_CONNECTION)
{
- xConnection.set( pIter->Value, UNO_QUERY );
+ xConnection.set(arg.Value, UNO_QUERY);
continue;
}
- if ( lcl_extractOpenMode( pIter->Value, nOpenMode ) )
+ if (lcl_extractOpenMode(arg.Value, nOpenMode))
continue;
- if ( pIter->Name == "MacroExecutionMode" )
+ if (arg.Name == "MacroExecutionMode")
{
sal_Int16 nMacroExecMode( !aDocumentMacroMode ? MacroExecMode::USE_CONFIG : *aDocumentMacroMode );
- OSL_VERIFY( pIter->Value >>= nMacroExecMode );
+ OSL_VERIFY(arg.Value >>= nMacroExecMode);
aDocumentMacroMode = nMacroExecMode;
continue;
}
// unknown argument -> pass to the loaded document
- aDocumentArgs.put( pIter->Name, pIter->Value );
+ aDocumentArgs.put(arg.Name, arg.Value);
}
}
}
@@ -846,7 +846,7 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
// So, in such a case, and with 2. above, we would silently execute those macros,
// regardless of the global security settings - which would be a security issue, of
// course.
- if ( m_pImpl->m_pDataSource->determineEmbeddedMacros() == ODatabaseModelImpl::eNoMacros )
+ if ( m_pImpl->m_pDataSource->determineEmbeddedMacros() == ODatabaseModelImpl::EmbeddedMacros::NONE )
{
// this is case 2. from above
// So, pass a USE_CONFIG to the to-be-loaded document. This means that
@@ -865,7 +865,7 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
aDocumentMacroMode = bExecuteDBDocMacros ? MacroExecMode::ALWAYS_EXECUTE_NO_WARN
: MacroExecMode::NEVER_EXECUTE;
}
- aDocumentArgs.put( "MacroExecutionMode", *aDocumentMacroMode );
+ aDocumentArgs.put( u"MacroExecutionMode"_ustr, *aDocumentMacroMode );
if ( ( nOpenMode == OpenMode::ALL )
|| ( nOpenMode == OpenMode::FOLDERS )
@@ -876,14 +876,14 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
{
// not supported
ucbhelper::cancelCommandExecution(
- makeAny( UnsupportedOpenModeException(
+ Any( UnsupportedOpenModeException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
sal_Int16( nOpenMode ) ) ),
_rxEnvironment );
// Unreachable
OSL_FAIL( "unreachable" );
- }
+ }
OSL_ENSURE( !m_pImpl->m_aProps.sPersistentName.isEmpty(),
"ODocumentDefinition::onCommandOpenSomething: no persistent name - cannot load!" );
@@ -892,8 +892,8 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
// embedded objects themself do not support the hidden flag. We implement support for
// it by changing the STATE to RUNNING only, instead of ACTIVE.
- bool bOpenHidden = aDocumentArgs.getOrDefault( "Hidden", false );
- aDocumentArgs.remove( "Hidden" );
+ bool bOpenHidden = aDocumentArgs.getOrDefault( u"Hidden"_ustr, false );
+ aDocumentArgs.remove( u"Hidden"_ustr );
loadEmbeddedObject( xConnection, Sequence< sal_Int8 >(), aDocumentArgs.getPropertyValues(), false, !m_bOpenInDesign );
OSL_ENSURE( m_xEmbeddedObject.is(), "ODocumentDefinition::onCommandOpenSomething: what's this?" );
@@ -907,9 +907,9 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
if ( xModule.is() )
{
if ( m_bForm )
- xModule->setIdentifier( "com.sun.star.sdb.FormDesign" );
+ xModule->setIdentifier( u"com.sun.star.sdb.FormDesign"_ustr );
else if ( !xReportDefinition.is() )
- xModule->setIdentifier( "com.sun.star.text.TextDocument" );
+ xModule->setIdentifier( u"com.sun.star.text.TextDocument"_ustr );
updateDocumentTitle();
}
@@ -919,13 +919,13 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
{
// we are in ReadOnly mode
// we would like to open the Writer or Calc with the report direct, without design it.
- Reference< report::XReportEngine > xReportEngine( m_aContext->getServiceManager()->createInstanceWithContext("com.sun.star.comp.report.OReportEngineJFree", m_aContext), UNO_QUERY_THROW );
+ Reference< report::XReportEngine > xReportEngine( m_aContext->getServiceManager()->createInstanceWithContext(u"com.sun.star.comp.report.OReportEngineJFree"_ustr, m_aContext), UNO_QUERY_THROW );
xReportEngine->setReportDefinition(xReportDefinition);
xReportEngine->setActiveConnection(m_xLastKnownConnection);
if ( bOpenHidden )
- return makeAny( xReportEngine->createDocumentModel() );
- return makeAny( xReportEngine->createDocumentAlive( nullptr ) );
+ return Any( xReportEngine->createDocumentModel() );
+ return Any( xReportEngine->createDocumentAlive( nullptr ) );
}
if ( _bActivate && !bOpenHidden )
@@ -937,13 +937,13 @@ Any ODocumentDefinition::onCommandOpenSomething( const Any& _rOpenArgument, cons
else
{
// ensure that we ourself are kept alive as long as the document is open
- LifetimeCoupler::couple( *this, xModel.get() );
+ LifetimeCoupler::couple( *this, xModel );
}
if ( !m_bForm && m_pImpl->m_aProps.bAsTemplate && !m_bOpenInDesign )
ODocumentDefinition::fillReportData( m_aContext, getComponent(), xConnection );
- return makeAny( xModel );
+ return Any( xModel );
}
Any SAL_CALL ODocumentDefinition::execute( const Command& aCommand, sal_Int32 CommandId, const Reference< XCommandEnvironment >& Environment )
@@ -990,7 +990,7 @@ Any SAL_CALL ODocumentDefinition::execute( const Command& aCommand, sal_Int32 Co
if ( !bIsAliveNewStyleReport )
{
impl_onActivateEmbeddedObject_nothrow( true );
- return makeAny( getComponent() );
+ return Any( getComponent() );
}
}
}
@@ -1011,7 +1011,7 @@ Any SAL_CALL ODocumentDefinition::execute( const Command& aCommand, sal_Int32 Co
{
OSL_FAIL( "Wrong argument type!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -1037,7 +1037,7 @@ Any SAL_CALL ODocumentDefinition::execute( const Command& aCommand, sal_Int32 Co
{
OSL_FAIL( "Wrong argument count!" );
ucbhelper::cancelCommandExecution(
- makeAny( IllegalArgumentException(
+ Any( IllegalArgumentException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
-1 ) ),
@@ -1108,7 +1108,7 @@ namespace
try
{
Reference< XPropertySet > xFormProps( xForm, UNO_QUERY_THROW );
- xFormProps->setPropertyValue( PROPERTY_DATASOURCENAME, makeAny( OUString() ) );
+ xFormProps->setPropertyValue( PROPERTY_DATASOURCENAME, Any( OUString() ) );
}
catch( const Exception& )
{
@@ -1154,7 +1154,7 @@ void ODocumentDefinition::onCommandInsert( const OUString& _sURL, const Referenc
Sequence<OUString> aProps { PROPERTY_URL };
ucbhelper::cancelCommandExecution(
- makeAny( MissingPropertiesException(
+ Any( MissingPropertiesException(
OUString(),
static_cast< cppu::OWeakObject * >( this ),
aProps ) ),
@@ -1168,9 +1168,9 @@ void ODocumentDefinition::onCommandInsert( const OUString& _sURL, const Referenc
if ( xStorage.is() )
{
Reference< XEmbeddedObjectCreator> xEmbedFactory = EmbeddedObjectCreator::create(m_aContext);
- Sequence<PropertyValue> aEmpty,aMediaDesc(1);
- aMediaDesc[0].Name = PROPERTY_URL;
- aMediaDesc[0].Value <<= _sURL;
+ Sequence<PropertyValue> aEmpty;
+ Sequence<PropertyValue> aMediaDesc{ comphelper::makePropertyValue(PROPERTY_URL,
+ _sURL) };
m_xEmbeddedObject.set(xEmbedFactory->createInstanceInitFromMediaDescriptor( xStorage
,m_pImpl->m_aProps.sPersistentName
,aMediaDesc
@@ -1224,11 +1224,10 @@ bool ODocumentDefinition::save(bool _bApprove, const css::uno::Reference<css::aw
}
aRequest.Content.set(m_xParentContainer,UNO_QUERY);
- OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
- Reference< XInteractionRequest > xRequest(pRequest);
+ rtl::Reference<OInteractionRequest> pRequest = new OInteractionRequest(Any(aRequest));
// some knittings
// two continuations allowed: OK and Cancel
- ODocumentSaveContinuation* pDocuSave = nullptr;
+ rtl::Reference<ODocumentSaveContinuation> pDocuSave;
if ( m_pImpl->m_aProps.aTitle.isEmpty() )
{
@@ -1237,21 +1236,21 @@ bool ODocumentDefinition::save(bool _bApprove, const css::uno::Reference<css::aw
}
if ( _bApprove )
{
- OInteraction< XInteractionApprove >* pApprove = new OInteraction< XInteractionApprove >;
+ rtl::Reference<OInteraction< XInteractionApprove >> pApprove = new OInteraction< XInteractionApprove >;
pRequest->addContinuation(pApprove);
}
- OInteraction< XInteractionDisapprove >* pDisApprove = new OInteraction< XInteractionDisapprove >;
+ rtl::Reference<OInteraction< XInteractionDisapprove >> pDisApprove = new OInteraction< XInteractionDisapprove >;
pRequest->addContinuation(pDisApprove);
- OInteractionAbort* pAbort = new OInteractionAbort;
+ rtl::Reference<OInteractionAbort> pAbort = new OInteractionAbort;
pRequest->addContinuation(pAbort);
Reference<XWindow> xDialogParent(rDialogParent, UNO_QUERY);
// create the handler, let it handle the request
Reference<XInteractionHandler2> xHandler(InteractionHandler::createWithParent(m_aContext, xDialogParent));
- xHandler->handle(xRequest);
+ xHandler->handle(pRequest);
if ( pAbort->wasSelected() )
return false;
@@ -1266,7 +1265,7 @@ bool ODocumentDefinition::save(bool _bApprove, const css::uno::Reference<css::aw
m_pImpl->m_aProps.aTitle = pDocuSave->getName();
Reference< XContent> xContent = this;
- xNC->insertByName(pDocuSave->getName(),makeAny(xContent));
+ xNC->insertByName(pDocuSave->getName(),Any(xContent));
updateDocumentTitle();
}
@@ -1282,7 +1281,7 @@ bool ODocumentDefinition::save(bool _bApprove, const css::uno::Reference<css::aw
}
catch(const Exception&)
{
- OSL_FAIL("ODocumentDefinition::save: caught an Exception (tried to let the InteractionHandler handle it)!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "ODocumentDefinition::save: caught an Exception (tried to let the InteractionHandler handle it)!");
}
return true;
}
@@ -1311,20 +1310,19 @@ void ODocumentDefinition::saveAs()
aRequest.Name = m_pImpl->m_aProps.aTitle;
aRequest.Content.set(m_xParentContainer,UNO_QUERY);
- OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
- Reference< XInteractionRequest > xRequest(pRequest);
+ rtl::Reference<OInteractionRequest> pRequest = new OInteractionRequest(Any(aRequest));
// some knittings
// two continuations allowed: OK and Cancel
- ODocumentSaveContinuation* pDocuSave = new ODocumentSaveContinuation;
+ rtl::Reference<ODocumentSaveContinuation> pDocuSave = new ODocumentSaveContinuation;
pRequest->addContinuation(pDocuSave);
- OInteraction< XInteractionDisapprove >* pDisApprove = new OInteraction< XInteractionDisapprove >;
+ rtl::Reference<OInteraction< XInteractionDisapprove >> pDisApprove = new OInteraction< XInteractionDisapprove >;
pRequest->addContinuation(pDisApprove);
- OInteractionAbort* pAbort = new OInteractionAbort;
+ rtl::Reference<OInteractionAbort> pAbort = new OInteractionAbort;
pRequest->addContinuation(pAbort);
// create the handler, let it handle the request
Reference< XInteractionHandler2 > xHandler( InteractionHandler::createWithParent(m_aContext, nullptr) );
- xHandler->handle(xRequest);
+ xHandler->handle(pRequest);
if ( pAbort->wasSelected() )
return;
@@ -1342,7 +1340,7 @@ void ODocumentDefinition::saveAs()
{
Reference< XStorage> xStorage = getContainerStorage();
- OUString sPersistentName = ::dbtools::createUniqueName(xStorage,"Obj");
+ OUString sPersistentName = ::dbtools::createUniqueName(xStorage,u"Obj"_ustr);
xStorage->copyElementTo(m_pImpl->m_aProps.sPersistentName,xStorage,sPersistentName);
OUString sOldName = m_pImpl->m_aProps.aTitle;
@@ -1358,7 +1356,7 @@ void ODocumentDefinition::saveAs()
Reference< XMultiServiceFactory > xORB( m_xParentContainer, UNO_QUERY_THROW );
Reference< XInterface > xComponent( xORB->createInstanceWithArguments( SERVICE_SDB_DOCUMENTDEFINITION, aArguments ) );
Reference< XNameContainer > xNameContainer( m_xParentContainer, UNO_QUERY_THROW );
- xNameContainer->insertByName( sOldName, makeAny( xComponent ) );
+ xNameContainer->insertByName( sOldName, Any( xComponent ) );
}
catch(const Exception&)
{
@@ -1376,7 +1374,7 @@ void ODocumentDefinition::saveAs()
}
catch(const Exception&)
{
- OSL_FAIL("ODocumentDefinition::save: caught an Exception (tried to let the InteractionHandler handle it)!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "ODocumentDefinition::save: caught an Exception (tried to let the InteractionHandler handle it)!");
}
}
@@ -1384,25 +1382,25 @@ namespace
{
void lcl_putLoadArgs( ::comphelper::NamedValueCollection& _io_rArgs, const optional_bool& _bSuppressMacros, const optional_bool& _bReadOnly )
{
- if ( !!_bSuppressMacros )
+ if ( _bSuppressMacros.has_value() )
{
if ( *_bSuppressMacros )
{
// if we're to suppress macros, do exactly this
- _io_rArgs.put( "MacroExecutionMode", MacroExecMode::NEVER_EXECUTE );
+ _io_rArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::NEVER_EXECUTE );
}
else
{
// otherwise, put the setting only if not already present
- if ( !_io_rArgs.has( "MacroExecutionMode" ) )
+ if ( !_io_rArgs.has( u"MacroExecutionMode"_ustr ) )
{
- _io_rArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
+ _io_rArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::USE_CONFIG );
}
}
}
- if ( !!_bReadOnly )
- _io_rArgs.put( "ReadOnly", *_bReadOnly );
+ if ( _bReadOnly.has_value() )
+ _io_rArgs.put( u"ReadOnly"_ustr, *_bReadOnly );
}
}
@@ -1410,7 +1408,7 @@ namespace
{
Reference< XFrame > lcl_getDatabaseDocumentFrame( ODatabaseModelImpl const & _rImpl )
{
- Reference< XModel > xDatabaseDocumentModel( _rImpl.getModel_noCreate() );
+ rtl::Reference< ODatabaseDocument > xDatabaseDocumentModel( _rImpl.getModel_noCreate() );
Reference< XController > xDatabaseDocumentController;
if ( xDatabaseDocumentModel.is() )
@@ -1427,7 +1425,7 @@ namespace
bool ODocumentDefinition::objectSupportsEmbeddedScripts() const
{
bool bAllowDocumentMacros = !m_pImpl->m_pDataSource
- || ( m_pImpl->m_pDataSource->determineEmbeddedMacros() == ODatabaseModelImpl::eSubDocumentMacros );
+ || ( m_pImpl->m_pDataSource->determineEmbeddedMacros() == ODatabaseModelImpl::EmbeddedMacros::SubDocument );
// if *any* of the objects of the database document already has macros, we
// continue to allow it to have them, until the user does a migration.
@@ -1446,16 +1444,14 @@ void ODocumentDefinition::separateOpenCommandArguments( const Sequence< Property
{
::comphelper::NamedValueCollection aOpenCommandArguments( i_rOpenCommandArguments );
- const char* const pObjectDescriptorArgs[] =
- {
- "RecoveryStorage"
- };
- for (const char* pObjectDescriptorArg : pObjectDescriptorArgs)
+ static const std::u16string_view sObjectDescriptorArgs[] = { u"RecoveryStorage" };
+ for (const auto& rObjectDescriptorArg : sObjectDescriptorArgs)
{
- if ( aOpenCommandArguments.has( pObjectDescriptorArg ) )
+ const OUString sObjectDescriptorArg(rObjectDescriptorArg);
+ if ( aOpenCommandArguments.has( sObjectDescriptorArg ) )
{
- o_rEmbeddedObjectDescriptor.put( pObjectDescriptorArg, aOpenCommandArguments.get( pObjectDescriptorArg ) );
- aOpenCommandArguments.remove( pObjectDescriptorArg );
+ o_rEmbeddedObjectDescriptor.put( sObjectDescriptorArg, aOpenCommandArguments.get( sObjectDescriptorArg ) );
+ aOpenCommandArguments.remove( sObjectDescriptorArg );
}
}
@@ -1473,18 +1469,17 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
}
m_pInterceptor = new OInterceptor( this );
- Reference<XDispatchProviderInterceptor> xInterceptor = m_pInterceptor.get();
::comphelper::NamedValueCollection aEmbeddedDescriptor;
- aEmbeddedDescriptor.put( "OutplaceDispatchInterceptor", xInterceptor );
+ aEmbeddedDescriptor.put( u"OutplaceDispatchInterceptor"_ustr, Reference<XDispatchProviderInterceptor>(m_pInterceptor) );
::comphelper::NamedValueCollection aMediaDesc;
separateOpenCommandArguments( i_rOpenCommandArguments, aMediaDesc, aEmbeddedDescriptor );
// create the OutplaceFrameProperties, and put them into the descriptor of the embedded object
::comphelper::NamedValueCollection OutplaceFrameProperties;
- OutplaceFrameProperties.put( "TopWindow", true );
- OutplaceFrameProperties.put( "SupportPersistentWindowState", true );
+ OutplaceFrameProperties.put( u"TopWindow"_ustr, true );
+ OutplaceFrameProperties.put( u"SupportPersistentWindowState"_ustr, true );
Reference< XFrame > xParentFrame;
if ( m_pImpl->m_pDataSource )
@@ -1493,7 +1488,7 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
{ // i87957 we need a parent frame
Reference< XDesktop2 > xDesktop = Desktop::create( m_aContext );
xParentFrame.set( xDesktop, UNO_QUERY_THROW );
- Reference<util::XCloseable> xCloseable(m_pImpl->m_pDataSource->getModel_noCreate(),UNO_QUERY);
+ rtl::Reference<ODatabaseDocument> xCloseable(m_pImpl->m_pDataSource->getModel_noCreate());
if ( xCloseable.is() )
{
xCloseable->addCloseListener(this);
@@ -1502,15 +1497,15 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
}
OSL_ENSURE( xParentFrame.is(), "ODocumentDefinition::fillLoadArgs: no parent frame!" );
if ( xParentFrame.is() )
- OutplaceFrameProperties.put( "ParentFrame", xParentFrame );
+ OutplaceFrameProperties.put( u"ParentFrame"_ustr, xParentFrame );
- aEmbeddedDescriptor.put( "OutplaceFrameProperties", OutplaceFrameProperties.getNamedValues() );
+ aEmbeddedDescriptor.put( u"OutplaceFrameProperties"_ustr, OutplaceFrameProperties.getNamedValues() );
// tell the embedded object to have (or not have) script support
- aEmbeddedDescriptor.put( "EmbeddedScriptSupport", objectSupportsEmbeddedScripts() );
+ aEmbeddedDescriptor.put( u"EmbeddedScriptSupport"_ustr, objectSupportsEmbeddedScripts() );
// tell the embedded object to not participate in the document recovery game - the DB doc will handle it
- aEmbeddedDescriptor.put( "DocumentRecoverySupport", false );
+ aEmbeddedDescriptor.put( u"DocumentRecoverySupport"_ustr, false );
// pass the descriptor of the embedded object to the caller
aEmbeddedDescriptor >>= _out_rEmbeddedObjectDescriptor;
@@ -1518,15 +1513,15 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
// create the ComponentData, and put it into the document's media descriptor
{
::comphelper::NamedValueCollection aComponentData;
- aComponentData.put( "ActiveConnection", _xConnection );
- aComponentData.put( "ApplyFormDesignMode", !_bReadOnly );
- aMediaDesc.put( "ComponentData", aComponentData.getPropertyValues() );
+ aComponentData.put( u"ActiveConnection"_ustr, _xConnection );
+ aComponentData.put( u"ApplyFormDesignMode"_ustr, !_bReadOnly );
+ aMediaDesc.put( u"ComponentData"_ustr, aComponentData.getPropertyValues() );
}
if ( !m_pImpl->m_aProps.aTitle.isEmpty() )
- aMediaDesc.put( "DocumentTitle", m_pImpl->m_aProps.aTitle );
+ aMediaDesc.put( u"DocumentTitle"_ustr, m_pImpl->m_aProps.aTitle );
- aMediaDesc.put( "DocumentBaseURL", m_pImpl->m_pDataSource->getURL() );
+ aMediaDesc.put( u"DocumentBaseURL"_ustr, m_pImpl->m_pDataSource->getURL() );
// put the common load arguments into the document's media descriptor
lcl_putLoadArgs( aMediaDesc, optional_bool( _bSuppressMacros ), optional_bool( _bReadOnly ) );
@@ -1565,9 +1560,7 @@ void ODocumentDefinition::loadEmbeddedObject( const Reference< XConnection >& i_
Reference< XEnumeration > xEnumDrivers = xEnumAccess->createContentEnumeration(sReportEngineServiceName);
if ( !xEnumDrivers.is() || !xEnumDrivers->hasMoreElements() )
{
- css::io::WrongFormatException aWFE;
- aWFE.Message = DBA_RES( RID_STR_MISSING_EXTENSION );
- throw aWFE;
+ throw css::io::WrongFormatException(DBA_RES(RID_STR_MISSING_EXTENSION));
}
}
if ( !aClassID.hasElements() )
@@ -1601,8 +1594,7 @@ void ODocumentDefinition::loadEmbeddedObject( const Reference< XConnection >& i_
{
m_pClientHelper = new OEmbeddedClientHelper;
}
- Reference<XEmbeddedClient> xClient = m_pClientHelper.get();
- m_xEmbeddedObject->setClientSite(xClient);
+ m_xEmbeddedObject->setClientSite(m_pClientHelper);
m_xEmbeddedObject->changeState(EmbedStates::RUNNING);
if ( bSetSize )
{
@@ -1623,8 +1615,7 @@ void ODocumentDefinition::loadEmbeddedObject( const Reference< XConnection >& i_
{
m_pClientHelper = new OEmbeddedClientHelper;
}
- Reference<XEmbeddedClient> xClient = m_pClientHelper.get();
- m_xEmbeddedObject->setClientSite(xClient);
+ m_xEmbeddedObject->setClientSite(m_pClientHelper);
Sequence< PropertyValue > aEmbeddedObjectDescriptor;
Sequence< PropertyValue > aLoadArgs( fillLoadArgs(
@@ -1779,7 +1770,7 @@ namespace
{
Reference< XDatabaseDocumentUI > xUI;
- Reference< XModel > xModel( _rModelImpl.getModel_noCreate() );
+ rtl::Reference< ODatabaseDocument > xModel( _rModelImpl.getModel_noCreate() );
if ( xModel.is() )
xUI.set( xModel->getCurrentController(), UNO_QUERY );
return xUI;
@@ -1896,11 +1887,7 @@ OUString SAL_CALL ODocumentDefinition::getHierarchicalName()
OUString SAL_CALL ODocumentDefinition::composeHierarchicalName( const OUString& i_rRelativeName )
{
- OUStringBuffer aBuffer;
- aBuffer.append( getHierarchicalName() );
- aBuffer.append( '/' );
- aBuffer.append( i_rRelativeName );
- return aBuffer.makeStringAndClear();
+ return getHierarchicalName() + "/" + i_rRelativeName;
}
void SAL_CALL ODocumentDefinition::rename( const OUString& _rNewName )
@@ -1931,7 +1918,7 @@ void SAL_CALL ODocumentDefinition::rename( const OUString& _rNewName )
Reference< XStorage> ODocumentDefinition::getContainerStorage() const
{
return m_pImpl->m_pDataSource
- ? m_pImpl->m_pDataSource->getStorage( m_bForm ? ODatabaseModelImpl::E_FORM : ODatabaseModelImpl::E_REPORT )
+ ? m_pImpl->m_pDataSource->getStorage( m_bForm ? ODatabaseModelImpl::ObjectType::Form : ODatabaseModelImpl::ObjectType::Report )
: Reference< XStorage>();
}
@@ -2016,8 +2003,8 @@ void ODocumentDefinition::fillReportData( const Reference< XComponentContext >&
try
{
Reference< XJobExecutor > xExecutable(
- _rContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.wizards.report.CallReportWizard", aArgs, _rContext), UNO_QUERY_THROW );
- xExecutable->trigger( "fill" );
+ _rContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.wizards.report.CallReportWizard"_ustr, aArgs, _rContext), UNO_QUERY_THROW );
+ xExecutable->trigger( u"fill"_ustr );
}
catch( const Exception& )
{
@@ -2036,12 +2023,12 @@ void ODocumentDefinition::updateDocumentTitle()
sName = DBA_RES( RID_STR_FORM );
else
sName = DBA_RES( RID_STR_REPORT );
- Reference< XUntitledNumbers > xUntitledProvider(m_pImpl->m_pDataSource->getModel_noCreate(), UNO_QUERY );
+ rtl::Reference< ODatabaseDocument > xUntitledProvider(m_pImpl->m_pDataSource->getModel_noCreate() );
if ( xUntitledProvider.is() )
sName += OUString::number( xUntitledProvider->leaseNumber(getComponent()) );
}
- Reference< XTitle > xDatabaseDocumentModel(m_pImpl->m_pDataSource->getModel_noCreate(),uno::UNO_QUERY);
+ rtl::Reference< ODatabaseDocument > xDatabaseDocumentModel(m_pImpl->m_pDataSource->getModel_noCreate());
if ( xDatabaseDocumentModel.is() )
sName = xDatabaseDocumentModel->getTitle() + " : " + sName;
}
@@ -2081,8 +2068,8 @@ void ODocumentDefinition::firePropertyChange( sal_Int32 i_nHandle, const Any& i_
NameChangeNotifier::NameChangeNotifier( ODocumentDefinition& i_rDocumentDefinition, const OUString& i_rNewName,
::osl::ResettableMutexGuard& i_rClearForNotify )
:m_rDocumentDefinition( i_rDocumentDefinition )
- ,m_aOldValue( makeAny( i_rDocumentDefinition.getCurrentName() ) )
- ,m_aNewValue( makeAny( i_rNewName ) )
+ ,m_aOldValue( Any( i_rDocumentDefinition.getCurrentName() ) )
+ ,m_aNewValue( Any( i_rNewName ) )
,m_rClearForNotify( i_rClearForNotify )
{
impl_fireEvent_throw( true );
diff --git a/dbaccess/source/core/dataaccess/documentdefinition.hxx b/dbaccess/source/core/dataaccess/documentdefinition.hxx
index 389ab601f2ab..b26ca698f412 100644
--- a/dbaccess/source/core/dataaccess/documentdefinition.hxx
+++ b/dbaccess/source/core/dataaccess/documentdefinition.hxx
@@ -44,7 +44,7 @@ namespace comphelper
namespace dbaccess
{
-
+ class OEmbedObjectHolder;
class OInterceptor;
class OEmbeddedClientHelper;
// ODocumentDefinition - a database "document" which is simply a link to a real
@@ -63,7 +63,7 @@ class ODocumentDefinition
,public ODocumentDefinition_Base
{
css::uno::Reference< css::embed::XEmbeddedObject> m_xEmbeddedObject;
- css::uno::Reference< css::embed::XStateChangeListener > m_xListener;
+ rtl::Reference< OEmbedObjectHolder > m_xListener;
css::uno::Reference< css::sdbc::XConnection > m_xLastKnownConnection;
rtl::Reference<OInterceptor> m_pInterceptor;
@@ -207,7 +207,7 @@ private:
@throws css::uno::RuntimeException
*/
static void impl_removeFrameFromDesktop_throw(
- const css::uno::Reference< css::uno::XComponentContext >& _rContxt,
+ const css::uno::Reference< css::uno::XComponentContext >& _rContext,
const css::uno::Reference< css::frame::XFrame >& _rxFrame
);
diff --git a/dbaccess/source/core/dataaccess/documenteventexecutor.cxx b/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
index 3d16ee6ebb79..aebaf385e64b 100644
--- a/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
+++ b/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
@@ -18,6 +18,7 @@
*/
#include "documenteventexecutor.hxx"
+#include "databasedocument.hxx"
#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
@@ -27,7 +28,7 @@
#include <comphelper/namedvaluecollection.hxx>
#include <cppuhelper/weakref.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
namespace dbaccess
@@ -57,24 +58,14 @@ namespace dbaccess
using namespace ::com::sun::star;
- // DocumentEventExecutor_Data
- struct DocumentEventExecutor_Data
- {
- WeakReference< XEventsSupplier > xDocument;
- Reference< XURLTransformer > xURLTransformer;
-
- explicit DocumentEventExecutor_Data( const Reference< XEventsSupplier >& _rxDocument )
- :xDocument( _rxDocument )
- {
- }
- };
-
namespace
{
- void lcl_dispatchScriptURL_throw( DocumentEventExecutor_Data const & _rDocExecData,
+ void lcl_dispatchScriptURL_throw(
+ ::unotools::WeakReference< ODatabaseDocument > const & xWeakDocument,
+ css::uno::Reference< css::util::XURLTransformer > const & xURLTransformer,
const OUString& _rScriptURL, const DocumentEvent& _rTrigger )
{
- Reference< XModel > xDocument( _rDocExecData.xDocument.get(), UNO_QUERY_THROW );
+ rtl::Reference< ODatabaseDocument > xDocument( xWeakDocument.get() );
Reference< XController > xController( xDocument->getCurrentController() );
Reference< XDispatchProvider > xDispProv;
@@ -88,8 +79,8 @@ namespace dbaccess
URL aScriptURL;
aScriptURL.Complete = _rScriptURL;
- if ( _rDocExecData.xURLTransformer.is() )
- _rDocExecData.xURLTransformer->parseStrict( aScriptURL );
+ if ( xURLTransformer.is() )
+ xURLTransformer->parseStrict( aScriptURL );
// unfortunately, executing a script can trigger all kind of complex stuff, and unfortunately, not
// every component involved into this properly cares for thread safety. To be on the safe side,
@@ -112,20 +103,18 @@ namespace dbaccess
// DocumentEventExecutor
DocumentEventExecutor::DocumentEventExecutor( const Reference<XComponentContext> & _rContext,
- const Reference< XEventsSupplier >& _rxDocument )
- :m_pData( new DocumentEventExecutor_Data( _rxDocument ) )
+ const rtl::Reference< ODatabaseDocument >& _rxDocument )
+ :mxDocument( _rxDocument )
{
- Reference< XDocumentEventBroadcaster > xBroadcaster( _rxDocument, UNO_QUERY_THROW );
-
osl_atomic_increment( &m_refCount );
{
- xBroadcaster->addDocumentEventListener( this );
+ _rxDocument->addDocumentEventListener( this );
}
osl_atomic_decrement( &m_refCount );
try
{
- m_pData->xURLTransformer = URLTransformer::create(_rContext);
+ mxURLTransformer = URLTransformer::create(_rContext);
}
catch( const Exception& )
{
@@ -139,18 +128,16 @@ namespace dbaccess
void SAL_CALL DocumentEventExecutor::documentEventOccured( const DocumentEvent& Event )
{
- Reference< XEventsSupplier > xEventsSupplier( m_pData->xDocument.get(), UNO_QUERY );
- if ( !xEventsSupplier.is() )
+ rtl::Reference< ODatabaseDocument > xDocument( mxDocument.get() );
+ if ( !xDocument )
{
OSL_FAIL( "DocumentEventExecutor::documentEventOccurred: no document anymore, but still being notified?" );
return;
}
- Reference< XModel > xDocument( xEventsSupplier, UNO_QUERY_THROW );
-
try
{
- Reference< XNameAccess > xDocEvents( xEventsSupplier->getEvents(), UNO_SET_THROW );
+ Reference< XNameAccess > xDocEvents( xDocument->getEvents(), UNO_SET_THROW );
if ( !xDocEvents->hasByName( Event.EventName ) )
{
// this is worth an assertion: We are listener at the very same document which we just asked
@@ -162,10 +149,10 @@ namespace dbaccess
const ::comphelper::NamedValueCollection aScriptDescriptor( xDocEvents->getByName( Event.EventName ) );
OUString sEventType;
- bool bScriptAssigned = aScriptDescriptor.get_ensureType( "EventType", sEventType );
+ bool bScriptAssigned = aScriptDescriptor.get_ensureType( u"EventType"_ustr, sEventType );
OUString sScript;
- bScriptAssigned = bScriptAssigned && aScriptDescriptor.get_ensureType( "Script", sScript );
+ bScriptAssigned = bScriptAssigned && aScriptDescriptor.get_ensureType( u"Script"_ustr, sScript );
if ( !bScriptAssigned )
// no script is assigned to this event
@@ -179,7 +166,7 @@ namespace dbaccess
if ( bDispatchScriptURL && bNonEmptyScript )
{
- lcl_dispatchScriptURL_throw( *m_pData, sScript, Event );
+ lcl_dispatchScriptURL_throw( mxDocument, mxURLTransformer, sScript, Event );
}
}
catch( const RuntimeException& ) { throw; }
diff --git a/dbaccess/source/core/dataaccess/documenteventexecutor.hxx b/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
index 90dc9083c4a3..e012846c83e9 100644
--- a/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
+++ b/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
@@ -23,15 +23,15 @@
#include <com/sun/star/document/XEventsSupplier.hpp>
#include <cppuhelper/implbase.hxx>
-
-#include <memory>
+#include <unotools/weakref.hxx>
namespace com::sun::star::uno { class XComponentContext; }
+namespace com::sun::star::util { class XURLTransformer; }
namespace dbaccess
{
+ class ODatabaseDocument;
- struct DocumentEventExecutor_Data;
// DocumentEventExecutor
typedef ::cppu::WeakImplHelper < css::document::XDocumentEventListener
> DocumentEventExecutor_Base;
@@ -40,7 +40,7 @@ namespace dbaccess
public:
DocumentEventExecutor(
const css::uno::Reference< css::uno::XComponentContext >& _rContext,
- const css::uno::Reference< css::document::XEventsSupplier >& _rxDocument );
+ const rtl::Reference< ODatabaseDocument >& _rxDocument );
protected:
virtual ~DocumentEventExecutor() override;
@@ -51,7 +51,8 @@ namespace dbaccess
virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
private:
- std::unique_ptr< DocumentEventExecutor_Data > m_pData;
+ unotools::WeakReference< ODatabaseDocument > mxDocument;
+ css::uno::Reference< css::util::XURLTransformer > mxURLTransformer;
};
} // namespace dbaccess
diff --git a/dbaccess/source/core/dataaccess/documenteventnotifier.cxx b/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
index 16b46ad6ddf8..a5c678579253 100644
--- a/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
+++ b/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
@@ -22,9 +22,10 @@
#include <com/sun/star/frame/DoubleInitializationException.hpp>
#include <comphelper/asyncnotification.hxx>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/weak.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
+#include <vcl/svapp.hxx>
namespace dbaccess
{
@@ -39,9 +40,6 @@ namespace dbaccess
using namespace ::com::sun::star;
- // DocumentEventHolder
- typedef ::comphelper::EventHolder< DocumentEvent > DocumentEventHolder;
-
// DocumentEventNotifier_Impl
class DocumentEventNotifier_Impl : public ::comphelper::IEventProcessor
{
@@ -51,8 +49,8 @@ namespace dbaccess
bool m_bInitialized;
bool m_bDisposed;
std::shared_ptr<::comphelper::AsyncEventNotifierAutoJoin> m_pEventBroadcaster;
- ::comphelper::OInterfaceContainerHelper2 m_aLegacyEventListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aDocumentEventListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::document::XEventListener> m_aLegacyEventListeners;
+ ::comphelper::OInterfaceContainerHelper3<XDocumentEventListener> m_aDocumentEventListeners;
public:
DocumentEventNotifier_Impl( ::cppu::OWeakObject& _rBroadcasterDocument, ::osl::Mutex& _rMutex )
@@ -67,8 +65,8 @@ namespace dbaccess
}
// IEventProcessor
- virtual void SAL_CALL acquire() throw () override;
- virtual void SAL_CALL release() throw () override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
void addLegacyEventListener( const Reference< document::XEventListener >& Listener )
{
@@ -121,12 +119,12 @@ namespace dbaccess
void impl_notifyEventAsync_nothrow( const DocumentEvent& _rEvent );
};
- void SAL_CALL DocumentEventNotifier_Impl::acquire() throw ()
+ void SAL_CALL DocumentEventNotifier_Impl::acquire() noexcept
{
osl_atomic_increment( &m_refCount );
}
- void SAL_CALL DocumentEventNotifier_Impl::release() throw ()
+ void SAL_CALL DocumentEventNotifier_Impl::release() noexcept
{
if ( 0 == osl_atomic_decrement( &m_refCount ) )
delete this;
@@ -141,21 +139,24 @@ namespace dbaccess
{
m_pEventBroadcaster->removeEventsForProcessor( this );
m_pEventBroadcaster->terminate();
- //TODO: a protocol is missing how to join with the thread before
- // exit(3), to ensure the thread is no longer relying on any
- // infrastructure while that infrastructure is being shut down
- // in atexit handlers; simply calling join here leads to
- // deadlock, as this thread holds the solar mutex while the
- // other thread is typically blocked waiting for the solar mutex
- // For now, use newAutoJoinAsyncEventNotifier which is
- // better than nothing.
- m_pEventBroadcaster.reset();
}
+ auto xEventBroadcaster = std::exchange(m_pEventBroadcaster, {});
+
lang::EventObject aEvent( m_rDocument );
aGuard.clear();
// <-- SYNCHRONIZED
+ if (xEventBroadcaster)
+ {
+ comphelper::SolarMutex& rSolarMutex = Application::GetSolarMutex();
+ // unblock threads blocked on that so we can join
+ sal_uInt32 nLockCount = (rSolarMutex.IsCurrentThread()) ? rSolarMutex.release(true) : 0;
+ xEventBroadcaster->join();
+ if (nLockCount)
+ rSolarMutex.acquire(nLockCount);
+ xEventBroadcaster.reset();
+ }
m_aLegacyEventListeners.disposeAndClear( aEvent );
m_aDocumentEventListeners.disposeAndClear( aEvent );
@@ -214,7 +215,7 @@ namespace dbaccess
::comphelper::AsyncEventNotifierAutoJoin::launch(m_pEventBroadcaster);
}
}
- m_pEventBroadcaster->addEvent( new DocumentEventHolder( _rEvent ), this );
+ m_pEventBroadcaster->addEvent( new comphelper::DocumentEventHolder( _rEvent ), this );
}
void DocumentEventNotifier_Impl::processEvent( const ::comphelper::AnyEvent& _rEvent )
@@ -225,7 +226,7 @@ namespace dbaccess
if ( m_bDisposed )
return;
}
- const DocumentEventHolder& rEventHolder = dynamic_cast< const DocumentEventHolder& >( _rEvent );
+ const comphelper::DocumentEventHolder& rEventHolder = dynamic_cast< const comphelper::DocumentEventHolder& >( _rEvent );
impl_notifyEvent_nothrow( rEventHolder.getEventObject() );
}
diff --git a/dbaccess/source/core/dataaccess/documenteventnotifier.hxx b/dbaccess/source/core/dataaccess/documenteventnotifier.hxx
index 6f3bffc4cf54..347b3ea000d3 100644
--- a/dbaccess/source/core/dataaccess/documenteventnotifier.hxx
+++ b/dbaccess/source/core/dataaccess/documenteventnotifier.hxx
@@ -87,38 +87,6 @@ namespace dbaccess
const css::uno::Any& Supplement
);
- /** notifies a document event to all registered listeners
-
- @precond
- the mutex is not locked
- @precond
- ->onDocumentInitialized has been called
- */
- void notifyDocumentEvent(
- const char* _pAsciiEventName,
- const css::uno::Reference< css::frame::XController2 >& _rxViewController = nullptr,
- const css::uno::Any& _rSupplement = css::uno::Any()
- )
- {
- notifyDocumentEvent( OUString::createFromAscii( _pAsciiEventName ), _rxViewController, _rSupplement );
- }
-
- /** notifies a document event to all registered listeners, asynchronously
-
- Note that no event is actually notified before you called ->onDocumentInitialized.
-
- @precond
- the mutex is locked
- */
- void notifyDocumentEventAsync(
- const char* _pAsciiEventName,
- const css::uno::Reference< css::frame::XController2 >& _rxViewController = nullptr,
- const css::uno::Any& _rSupplement = css::uno::Any()
- )
- {
- notifyDocumentEventAsync( OUString::createFromAscii( _pAsciiEventName ), _rxViewController, _rSupplement );
- }
-
private:
::rtl::Reference< DocumentEventNotifier_Impl > m_pImpl;
};
diff --git a/dbaccess/source/core/dataaccess/documentevents.cxx b/dbaccess/source/core/dataaccess/documentevents.cxx
index d3c6a03ceeec..66c312417ecb 100644
--- a/dbaccess/source/core/dataaccess/documentevents.cxx
+++ b/dbaccess/source/core/dataaccess/documentevents.cxx
@@ -21,6 +21,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <o3tl/string_view.hxx>
#include <osl/diagnose.h>
#include <comphelper/namedvaluecollection.hxx>
#include <comphelper/sequence.hxx>
@@ -35,77 +36,53 @@ namespace dbaccess
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::Type;
- // DocumentEvents_Data
- struct DocumentEvents_Data
- {
- ::cppu::OWeakObject& rParent;
- ::osl::Mutex& rMutex;
- DocumentEventsData& rEventsData;
-
- DocumentEvents_Data( ::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex, DocumentEventsData& _rEventsData )
- :rParent( _rParent )
- ,rMutex( _rMutex )
- ,rEventsData( _rEventsData )
- {
- }
- DocumentEvents_Data(const DocumentEvents_Data&) = delete;
- const DocumentEvents_Data& operator=(const DocumentEvents_Data&) = delete;
- };
-
namespace {
// helper
struct DocumentEventData
{
- const char* pAsciiEventName;
+ OUString aAsciiEventName;
bool bNeedsSyncNotify;
};
- const DocumentEventData* lcl_getDocumentEventData()
- {
- static const DocumentEventData s_aData[] = {
- { "OnCreate", true },
- { "OnLoadFinished", true },
- { "OnNew", false }, // compatibility, see https://bz.apache.org/ooo/show_bug.cgi?id=46484
- { "OnLoad", false }, // compatibility, see https://bz.apache.org/ooo/show_bug.cgi?id=46484
- { "OnSaveAs", true },
- { "OnSaveAsDone", false },
- { "OnSaveAsFailed", false },
- { "OnSave", true },
- { "OnSaveDone", false },
- { "OnSaveFailed", false },
- { "OnSaveTo", true },
- { "OnSaveToDone", false },
- { "OnSaveToFailed", false },
- { "OnPrepareUnload", true },
- { "OnUnload", true },
- { "OnFocus", false },
- { "OnUnfocus", false },
- { "OnModifyChanged", false },
- { "OnViewCreated", false },
- { "OnPrepareViewClosing", true },
- { "OnViewClosed", false },
- { "OnTitleChanged", false },
- { "OnSubComponentOpened", false },
- { "OnSubComponentClosed", false },
- { nullptr, false }
- };
- return s_aData;
- }
+ constexpr DocumentEventData s_DocumentEventData[] {
+ { u"OnCreate"_ustr, true },
+ { u"OnLoadFinished"_ustr, true },
+ { u"OnNew"_ustr, false }, // compatibility, see https://bz.apache.org/ooo/show_bug.cgi?id=46484
+ { u"OnLoad"_ustr, false }, // compatibility, see https://bz.apache.org/ooo/show_bug.cgi?id=46484
+ { u"OnSaveAs"_ustr, true },
+ { u"OnSaveAsDone"_ustr, false },
+ { u"OnSaveAsFailed"_ustr, false },
+ { u"OnSave"_ustr, true },
+ { u"OnSaveDone"_ustr, false },
+ { u"OnSaveFailed"_ustr, false },
+ { u"OnSaveTo"_ustr, true },
+ { u"OnSaveToDone"_ustr, false },
+ { u"OnSaveToFailed"_ustr, false },
+ { u"OnPrepareUnload"_ustr, true },
+ { u"OnUnload"_ustr, true },
+ { u"OnFocus"_ustr, false },
+ { u"OnUnfocus"_ustr, false },
+ { u"OnModifyChanged"_ustr, false },
+ { u"OnViewCreated"_ustr, false },
+ { u"OnPrepareViewClosing"_ustr, true },
+ { u"OnViewClosed"_ustr, false },
+ { u"OnTitleChanged"_ustr, false },
+ { u"OnSubComponentOpened"_ustr, false },
+ { u"OnSubComponentClosed"_ustr, false },
+ };
}
// DocumentEvents
DocumentEvents::DocumentEvents( ::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex, DocumentEventsData& _rEventsData )
- :m_pData( new DocumentEvents_Data( _rParent, _rMutex, _rEventsData ) )
+ :mrParent(_rParent), mrMutex(_rMutex), mrEventsData(_rEventsData)
{
- const DocumentEventData* pEventData = lcl_getDocumentEventData();
- while ( pEventData->pAsciiEventName )
+ for (const auto & rEventData : s_DocumentEventData)
{
- OUString sEventName = OUString::createFromAscii( pEventData->pAsciiEventName );
- DocumentEventsData::const_iterator existingPos = m_pData->rEventsData.find( sEventName );
- if ( existingPos == m_pData->rEventsData.end() )
- m_pData->rEventsData[ sEventName ] = Sequence< PropertyValue >();
- ++pEventData;
+ OUString sEventName = rEventData.aAsciiEventName;
+ DocumentEventsData::const_iterator existingPos = mrEventsData.find( sEventName );
+ if ( existingPos == mrEventsData.end() )
+ mrEventsData[ sEventName ] = Sequence< PropertyValue >();
}
}
@@ -113,24 +90,22 @@ namespace dbaccess
{
}
- void SAL_CALL DocumentEvents::acquire() throw()
+ void SAL_CALL DocumentEvents::acquire() noexcept
{
- m_pData->rParent.acquire();
+ mrParent.acquire();
}
- void SAL_CALL DocumentEvents::release() throw()
+ void SAL_CALL DocumentEvents::release() noexcept
{
- m_pData->rParent.release();
+ mrParent.release();
}
- bool DocumentEvents::needsSynchronousNotification( const OUString& _rEventName )
+ bool DocumentEvents::needsSynchronousNotification( std::u16string_view _rEventName )
{
- const DocumentEventData* pEventData = lcl_getDocumentEventData();
- while ( pEventData->pAsciiEventName )
+ for (const auto & rEventData : s_DocumentEventData)
{
- if ( _rEventName.equalsAscii( pEventData->pAsciiEventName ) )
- return pEventData->bNeedsSyncNotify;
- ++pEventData;
+ if ( _rEventName == rEventData.aAsciiEventName )
+ return rEventData.bNeedsSyncNotify;
}
// this is an unknown event ... assume async notification
@@ -139,10 +114,10 @@ namespace dbaccess
void SAL_CALL DocumentEvents::replaceByName( const OUString& Name, const Any& Element )
{
- ::osl::MutexGuard aGuard( m_pData->rMutex );
+ ::osl::MutexGuard aGuard( mrMutex );
- DocumentEventsData::iterator elementPos = m_pData->rEventsData.find( Name );
- if ( elementPos == m_pData->rEventsData.end() )
+ DocumentEventsData::iterator elementPos = mrEventsData.find( Name );
+ if ( elementPos == mrEventsData.end() )
throw NoSuchElementException( Name, *this );
Sequence< PropertyValue > aEventDescriptor;
@@ -152,30 +127,30 @@ namespace dbaccess
// Weird enough, the event assignment UI has (well: had) the idea of using an empty "EventType"/"Script"
// to indicate the event descriptor should be reset, instead of just passing an empty event descriptor.
::comphelper::NamedValueCollection aCheck( aEventDescriptor );
- if ( aCheck.has( "EventType" ) )
+ if ( aCheck.has( u"EventType"_ustr ) )
{
- OUString sEventType = aCheck.getOrDefault( "EventType", OUString() );
+ OUString sEventType = aCheck.getOrDefault( u"EventType"_ustr, OUString() );
OSL_ENSURE( !sEventType.isEmpty(), "DocumentEvents::replaceByName: doing a reset via an empty EventType is weird!" );
if ( sEventType.isEmpty() )
aEventDescriptor.realloc( 0 );
}
- if ( aCheck.has( "Script" ) )
+ if ( aCheck.has( u"Script"_ustr ) )
{
- OUString sScript = aCheck.getOrDefault( "Script", OUString() );
+ OUString sScript = aCheck.getOrDefault( u"Script"_ustr, OUString() );
OSL_ENSURE( !sScript.isEmpty(), "DocumentEvents::replaceByName: doing a reset via an empty Script is weird!" );
if ( sScript.isEmpty() )
aEventDescriptor.realloc( 0 );
}
- elementPos->second = aEventDescriptor;
+ elementPos->second = std::move(aEventDescriptor);
}
Any SAL_CALL DocumentEvents::getByName( const OUString& Name )
{
- ::osl::MutexGuard aGuard( m_pData->rMutex );
+ ::osl::MutexGuard aGuard( mrMutex );
- DocumentEventsData::const_iterator elementPos = m_pData->rEventsData.find( Name );
- if ( elementPos == m_pData->rEventsData.end() )
+ DocumentEventsData::const_iterator elementPos = mrEventsData.find( Name );
+ if ( elementPos == mrEventsData.end() )
throw NoSuchElementException( Name, *this );
Any aReturn;
@@ -187,16 +162,16 @@ namespace dbaccess
Sequence< OUString > SAL_CALL DocumentEvents::getElementNames( )
{
- ::osl::MutexGuard aGuard( m_pData->rMutex );
+ ::osl::MutexGuard aGuard( mrMutex );
- return comphelper::mapKeysToSequence( m_pData->rEventsData );
+ return comphelper::mapKeysToSequence( mrEventsData );
}
sal_Bool SAL_CALL DocumentEvents::hasByName( const OUString& Name )
{
- ::osl::MutexGuard aGuard( m_pData->rMutex );
+ ::osl::MutexGuard aGuard( mrMutex );
- return m_pData->rEventsData.find( Name ) != m_pData->rEventsData.end();
+ return mrEventsData.find( Name ) != mrEventsData.end();
}
Type SAL_CALL DocumentEvents::getElementType( )
@@ -206,8 +181,8 @@ namespace dbaccess
sal_Bool SAL_CALL DocumentEvents::hasElements( )
{
- ::osl::MutexGuard aGuard( m_pData->rMutex );
- return !m_pData->rEventsData.empty();
+ ::osl::MutexGuard aGuard( mrMutex );
+ return !mrEventsData.empty();
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/dataaccess/intercept.cxx b/dbaccess/source/core/dataaccess/intercept.cxx
index 3b42df4ed6a1..174e6e5fb56c 100644
--- a/dbaccess/source/core/dataaccess/intercept.cxx
+++ b/dbaccess/source/core/dataaccess/intercept.cxx
@@ -20,7 +20,7 @@
#include "intercept.hxx"
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <memory>
@@ -28,13 +28,11 @@ namespace dbaccess
{
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::embed;
using namespace ::com::sun::star::container;
using namespace ::comphelper;
using namespace ::cppu;
@@ -65,17 +63,14 @@ void OInterceptor::dispose()
OInterceptor::OInterceptor( ODocumentDefinition* _pContentHolder )
:m_pContentHolder( _pContentHolder )
- ,m_aInterceptedURL(7)
+ ,m_aInterceptedURL{ /* DISPATCH_SAVEAS */ u".uno:SaveAs"_ustr,
+ /* DISPATCH_SAVE */ u".uno:Save"_ustr,
+ /* DISPATCH_CLOSEDOC */ u".uno:CloseDoc"_ustr,
+ /* DISPATCH_CLOSEWIN */ u".uno:CloseWin"_ustr,
+ /* DISPATCH_CLOSEFRAME */ u".uno:CloseFrame"_ustr,
+ /* DISPATCH_RELOAD */ u".uno:Reload"_ustr }
{
-
OSL_ENSURE(DISPATCH_RELOAD < m_aInterceptedURL.getLength(),"Illegal size.");
-
- m_aInterceptedURL[DISPATCH_SAVEAS] = ".uno:SaveAs";
- m_aInterceptedURL[DISPATCH_SAVE] = ".uno:Save";
- m_aInterceptedURL[DISPATCH_CLOSEDOC] = ".uno:CloseDoc";
- m_aInterceptedURL[DISPATCH_CLOSEWIN] = ".uno:CloseWin";
- m_aInterceptedURL[DISPATCH_CLOSEFRAME] = ".uno:CloseFrame";
- m_aInterceptedURL[DISPATCH_RELOAD] = ".uno:Reload";
}
@@ -131,7 +126,7 @@ void SAL_CALL OInterceptor::dispatch( const URL& URL,const Sequence<PropertyValu
{
if ( aNewArgs[nInd].Name == "SaveTo" )
{
- aNewArgs[nInd].Value <<= true;
+ aNewArgs.getArray()[nInd].Value <<= true;
break;
}
nInd++;
@@ -140,11 +135,12 @@ void SAL_CALL OInterceptor::dispatch( const URL& URL,const Sequence<PropertyValu
if ( nInd == aNewArgs.getLength() )
{
aNewArgs.realloc( nInd + 1 );
- aNewArgs[nInd].Name = "SaveTo";
- aNewArgs[nInd].Value <<= true;
+ auto pNewArgs = aNewArgs.getArray();
+ pNewArgs[nInd].Name = "SaveTo";
+ pNewArgs[nInd].Value <<= true;
}
- Reference< XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(URL, "_self", 0 );
+ Reference< XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(URL, u"_self"_ustr, 0 );
if ( xDispatch.is() )
xDispatch->dispatch( URL, aNewArgs );
}
@@ -171,7 +167,7 @@ IMPL_LINK( OInterceptor, OnDispatch, void*, _pDispatcher, void )
{
if ( m_pContentHolder && m_pContentHolder->prepareClose() && m_xSlaveDispatchProvider.is() )
{
- Reference< XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(pHelper->aURL, "_self", 0 );
+ Reference< XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(pHelper->aURL, u"_self"_ustr, 0 );
if ( xDispatch.is() )
{
Reference< XInterface > xKeepContentHolderAlive( *m_pContentHolder );
@@ -203,14 +199,14 @@ void SAL_CALL OInterceptor::addStatusListener(
aStateEvent.FeatureDescriptor = "SaveCopyTo";
aStateEvent.IsEnabled = true;
aStateEvent.Requery = false;
- aStateEvent.State <<= OUString("($3)");
+ aStateEvent.State <<= u"($3)"_ustr;
Control->statusChanged(aStateEvent);
}
{
osl::MutexGuard aGuard(m_aMutex);
if(!m_pStatCL)
- m_pStatCL.reset( new PropertyChangeListenerContainer(m_aMutex) );
+ m_pStatCL.reset( new StatusListenerContainer(m_aMutex) );
}
m_pStatCL->addInterface(URL.Complete,Control);
@@ -227,7 +223,7 @@ void SAL_CALL OInterceptor::addStatusListener(
{
osl::MutexGuard aGuard(m_aMutex);
if(!m_pStatCL)
- m_pStatCL.reset( new PropertyChangeListenerContainer(m_aMutex) );
+ m_pStatCL.reset( new StatusListenerContainer(m_aMutex) );
}
m_pStatCL->addInterface(URL.Complete,Control);
@@ -251,7 +247,7 @@ void SAL_CALL OInterceptor::addStatusListener(
{
osl::MutexGuard aGuard(m_aMutex);
if(!m_pStatCL)
- m_pStatCL.reset( new PropertyChangeListenerContainer(m_aMutex) );
+ m_pStatCL.reset( new StatusListenerContainer(m_aMutex) );
}
m_pStatCL->addInterface(URL.Complete,Control);
@@ -289,13 +285,9 @@ Sequence< OUString > SAL_CALL OInterceptor::getInterceptedURLs( )
Reference< XDispatch > SAL_CALL OInterceptor::queryDispatch( const URL& URL,const OUString& TargetFrameName,sal_Int32 SearchFlags )
{
osl::MutexGuard aGuard(m_aMutex);
- const OUString* pIter = m_aInterceptedURL.getConstArray();
- const OUString* pEnd = pIter + m_aInterceptedURL.getLength();
- for(;pIter != pEnd;++pIter)
- {
- if ( URL.Complete == *pIter )
+ for (auto& interceptedUrl : m_aInterceptedURL)
+ if (URL.Complete == interceptedUrl)
return static_cast<XDispatch*>(this);
- }
if(m_xSlaveDispatchProvider.is())
return m_xSlaveDispatchProvider->queryDispatch(URL,TargetFrameName,SearchFlags);
@@ -305,22 +297,20 @@ Reference< XDispatch > SAL_CALL OInterceptor::queryDispatch( const URL& URL,cons
Sequence< Reference< XDispatch > > SAL_CALL OInterceptor::queryDispatches( const Sequence<DispatchDescriptor >& Requests )
{
- Sequence< Reference< XDispatch > > aRet;
osl::MutexGuard aGuard(m_aMutex);
- if(m_xSlaveDispatchProvider.is())
- aRet = m_xSlaveDispatchProvider->queryDispatches(Requests);
- else
- aRet.realloc(Requests.getLength());
+ typedef Sequence<Reference<XDispatch>> DispatchSeq;
+ DispatchSeq aRet = m_xSlaveDispatchProvider.is() ?
+ m_xSlaveDispatchProvider->queryDispatches(Requests) :
+ DispatchSeq(Requests.getLength());
+ auto aRetRange = asNonConstRange(aRet);
for(sal_Int32 i = 0; i < Requests.getLength(); ++i)
{
- const OUString* pIter = m_aInterceptedURL.getConstArray();
- const OUString* pEnd = pIter + m_aInterceptedURL.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& interceptedUrl : m_aInterceptedURL)
{
- if ( Requests[i].FeatureURL.Complete == *pIter )
+ if (Requests[i].FeatureURL.Complete == interceptedUrl)
{
- aRet[i] = static_cast<XDispatch*>(this);
+ aRetRange[i] = static_cast<XDispatch*>(this);
break;
}
}
diff --git a/dbaccess/source/core/dataaccess/intercept.hxx b/dbaccess/source/core/dataaccess/intercept.hxx
index 16077c3c9e52..7ce53752f19d 100644
--- a/dbaccess/source/core/dataaccess/intercept.hxx
+++ b/dbaccess/source/core/dataaccess/intercept.hxx
@@ -103,7 +103,9 @@ private:
css::uno::Sequence< OUString > m_aInterceptedURL;
- std::unique_ptr<PropertyChangeListenerContainer> m_pStatCL;
+ typedef comphelper::OMultiTypeInterfaceContainerHelperVar3<css::frame::XStatusListener, OUString>
+ StatusListenerContainer;
+ std::unique_ptr<StatusListenerContainer> m_pStatCL;
};
} // namespace dbaccess
diff --git a/dbaccess/source/core/dataaccess/myucp_datasupplier.cxx b/dbaccess/source/core/dataaccess/myucp_datasupplier.cxx
index 52d6bd6a2b91..483712b90dac 100644
--- a/dbaccess/source/core/dataaccess/myucp_datasupplier.cxx
+++ b/dbaccess/source/core/dataaccess/myucp_datasupplier.cxx
@@ -17,82 +17,38 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <utility>
#include <vector>
-#include <ucbhelper/contentidentifier.hxx>
-
#include "myucp_datasupplier.hxx"
#include <ContentHelper.hxx>
#include <com/sun/star/ucb/IllegalIdentifierException.hpp>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::container;
-// @@@ Adjust namespace name.
using namespace dbaccess;
-// @@@ Adjust namespace name.
-namespace dbaccess
-{
-
-namespace {
-
-// struct ResultListEntry.
-struct ResultListEntry
-{
- OUString aId;
- Reference< XContentIdentifier > xId;
- ::rtl::Reference< OContentHelper > xContent;
- Reference< XRow > xRow;
- const ContentProperties& rData;
-
- explicit ResultListEntry(const ContentProperties& rEntry) : rData( rEntry ) {}
-};
-
-}
-
-// struct DataSupplier_Impl.
-struct DataSupplier_Impl
-{
- osl::Mutex m_aMutex;
- std::vector< std::unique_ptr<ResultListEntry> > m_aResults;
- rtl::Reference< ODocumentContainer > m_xContent;
- bool m_bCountFinal;
-
- explicit DataSupplier_Impl(const rtl::Reference< ODocumentContainer >& rContent)
- : m_xContent(rContent)
- , m_bCountFinal(false)
- {
- }
-};
-
-}
-
-// DataSupplier Implementation.
DataSupplier::DataSupplier( const rtl::Reference< ODocumentContainer >& rContent )
-: m_pImpl( new DataSupplier_Impl( rContent ) )
+: m_xContent( rContent )
{
-
}
DataSupplier::~DataSupplier()
{
-
}
-OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
+OUString DataSupplier::queryContentIdentifierString( std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex )
{
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::Guard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(nIndex) < m_pImpl->m_aResults.size() )
+ if ( static_cast<size_t>(nIndex) < m_aResults.size() )
{
- OUString aId = m_pImpl->m_aResults[ nIndex ]->aId;
+ OUString aId = m_aResults[ nIndex ]->aId;
if ( !aId.isEmpty() )
{
// Already cached.
@@ -100,29 +56,29 @@ OUString DataSupplier::queryContentIdentifierString( sal_uInt32 nIndex )
}
}
- if ( getResult( nIndex ) )
+ if ( getResult( rResultSetGuard, nIndex ) )
{
- OUString aId = m_pImpl->m_xContent->getIdentifier()->getContentIdentifier();
+ OUString aId = m_xContent->getIdentifier()->getContentIdentifier();
if ( !aId.isEmpty() )
aId += "/";
- aId += m_pImpl->m_aResults[ nIndex ]->rData.aTitle;
+ aId += m_aResults[ nIndex ]->rData.aTitle;
- m_pImpl->m_aResults[ nIndex ]->aId = aId;
+ m_aResults[ nIndex ]->aId = aId;
return aId;
}
return OUString();
}
Reference< XContentIdentifier >
-DataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
+DataSupplier::queryContentIdentifier( std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex )
{
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::Guard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(nIndex) < m_pImpl->m_aResults.size() )
+ if ( static_cast<size_t>(nIndex) < m_aResults.size() )
{
- Reference< XContentIdentifier > xId = m_pImpl->m_aResults[ nIndex ]->xId;
+ Reference< XContentIdentifier > xId = m_aResults[ nIndex ]->xId;
if ( xId.is() )
{
// Already cached.
@@ -130,24 +86,24 @@ DataSupplier::queryContentIdentifier( sal_uInt32 nIndex )
}
}
- OUString aId = queryContentIdentifierString( nIndex );
+ OUString aId = queryContentIdentifierString( rResultSetGuard, nIndex );
if ( !aId.isEmpty() )
{
Reference< XContentIdentifier > xId = new ::ucbhelper::ContentIdentifier( aId );
- m_pImpl->m_aResults[ nIndex ]->xId = xId;
+ m_aResults[ nIndex ]->xId = xId;
return xId;
}
return Reference< XContentIdentifier >();
}
Reference< XContent >
-DataSupplier::queryContent( sal_uInt32 _nIndex )
+DataSupplier::queryContent( std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 _nIndex )
{
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::Guard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(_nIndex) < m_pImpl->m_aResults.size() )
+ if ( static_cast<size_t>(_nIndex) < m_aResults.size() )
{
- Reference< XContent > xContent = m_pImpl->m_aResults[ _nIndex ]->xContent.get();
+ rtl::Reference< OContentHelper > xContent = m_aResults[ _nIndex ]->xContent;
if ( xContent.is() )
{
// Already cached.
@@ -155,7 +111,7 @@ DataSupplier::queryContent( sal_uInt32 _nIndex )
}
}
- Reference< XContentIdentifier > xId = queryContentIdentifier( _nIndex );
+ Reference< XContentIdentifier > xId = queryContentIdentifier( rResultSetGuard, _nIndex );
if ( xId.is() )
{
try
@@ -164,9 +120,9 @@ DataSupplier::queryContent( sal_uInt32 _nIndex )
OUString sName = xId->getContentIdentifier();
sName = sName.copy(sName.lastIndexOf('/')+1);
- m_pImpl->m_aResults[ _nIndex ]->xContent = m_pImpl->m_xContent->getContent(sName);
+ m_aResults[ _nIndex ]->xContent = m_xContent->getContent(sName);
- xContent = m_pImpl->m_aResults[ _nIndex ]->xContent.get();
+ xContent = m_aResults[ _nIndex ]->xContent.get();
return xContent;
}
@@ -177,11 +133,11 @@ DataSupplier::queryContent( sal_uInt32 _nIndex )
return Reference< XContent >();
}
-bool DataSupplier::getResult( sal_uInt32 nIndex )
+bool DataSupplier::getResult( std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex )
{
- osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(nIndex) < m_pImpl->m_aResults.size() )
+ if ( static_cast<size_t>(nIndex) < m_aResults.size() )
{
// Result already present.
return true;
@@ -189,108 +145,99 @@ bool DataSupplier::getResult( sal_uInt32 nIndex )
// Result not (yet) present.
- if ( m_pImpl->m_bCountFinal )
+ if ( m_bCountFinal )
return false;
// Try to obtain result...
- sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+ sal_uInt32 nOldCount = m_aResults.size();
bool bFound = false;
- sal_uInt32 nPos = nOldCount;
// @@@ Obtain data and put it into result list...
- Sequence< OUString> aSeq = m_pImpl->m_xContent->getElementNames();
+ Sequence< OUString> aSeq = m_xContent->getElementNames();
if ( nIndex < sal::static_int_cast< sal_uInt32 >( aSeq.getLength() ) )
{
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(pIter = pIter + nPos;pIter != pEnd;++pIter,++nPos)
- {
- m_pImpl->m_aResults.emplace_back(
- new ResultListEntry( m_pImpl->m_xContent->getContent(*pIter)->getContentProperties() ) );
-
- if ( nPos == nIndex )
- {
- // Result obtained.
- bFound = true;
- break;
- }
- }
+ m_aResults.reserve(nIndex + 1);
+ const OUString* pEnd = aSeq.begin() + nIndex + 1;
+ for (const OUString* pIter = aSeq.begin() + nOldCount; pIter != pEnd; ++pIter)
+ m_aResults.emplace_back(
+ new ResultListEntry( m_xContent->getContent(*pIter)->getContentProperties() ) );
+
+ // Result obtained.
+ bFound = true;
}
if ( !bFound )
- m_pImpl->m_bCountFinal = true;
+ m_bCountFinal = true;
- rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+ rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet();
if ( xResultSet.is() )
{
// Callbacks follow!
aGuard.clear();
- if ( static_cast<size_t>(nOldCount) < m_pImpl->m_aResults.size() )
- xResultSet->rowCountChanged(
- nOldCount, m_pImpl->m_aResults.size() );
+ if ( static_cast<size_t>(nOldCount) < m_aResults.size() )
+ xResultSet->rowCountChanged( rResultSetGuard, nOldCount, m_aResults.size() );
- if ( m_pImpl->m_bCountFinal )
- xResultSet->rowCountFinal();
+ if ( m_bCountFinal )
+ xResultSet->rowCountFinal(rResultSetGuard);
}
return bFound;
}
-sal_uInt32 DataSupplier::totalCount()
+sal_uInt32 DataSupplier::totalCount(std::unique_lock<std::mutex>& rResultSetGuard)
{
- osl::ClearableGuard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::ClearableGuard< osl::Mutex > aGuard( m_aMutex );
- if ( m_pImpl->m_bCountFinal )
- return m_pImpl->m_aResults.size();
+ if ( m_bCountFinal )
+ return m_aResults.size();
- sal_uInt32 nOldCount = m_pImpl->m_aResults.size();
+ sal_uInt32 nOldCount = m_aResults.size();
// @@@ Obtain data and put it into result list...
- Sequence< OUString> aSeq = m_pImpl->m_xContent->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
- m_pImpl->m_aResults.emplace_back(
- new ResultListEntry( m_pImpl->m_xContent->getContent(*pIter)->getContentProperties() ) );
+ Sequence< OUString> aSeq = m_xContent->getElementNames();
+ // FIXME: this adds everything from aSeq to m_aResults, unlike similar code in getResult,
+ // which skips nOldCount entries in aSeq - which is correct?
+ for (auto& name : aSeq)
+ m_aResults.emplace_back(
+ new ResultListEntry( m_xContent->getContent(name)->getContentProperties() ) );
- m_pImpl->m_bCountFinal = true;
+ m_bCountFinal = true;
- rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet().get();
+ rtl::Reference< ::ucbhelper::ResultSet > xResultSet = getResultSet();
if ( xResultSet.is() )
{
// Callbacks follow!
aGuard.clear();
- if ( static_cast<size_t>(nOldCount) < m_pImpl->m_aResults.size() )
- xResultSet->rowCountChanged(
- nOldCount, m_pImpl->m_aResults.size() );
+ if ( static_cast<size_t>(nOldCount) < m_aResults.size() )
+ xResultSet->rowCountChanged( rResultSetGuard, nOldCount, m_aResults.size() );
- xResultSet->rowCountFinal();
+ xResultSet->rowCountFinal(rResultSetGuard);
}
- return m_pImpl->m_aResults.size();
+ return m_aResults.size();
}
sal_uInt32 DataSupplier::currentCount()
{
- return m_pImpl->m_aResults.size();
+ return m_aResults.size();
}
bool DataSupplier::isCountFinal()
{
- return m_pImpl->m_bCountFinal;
+ return m_bCountFinal;
}
Reference< XRow >
-DataSupplier::queryPropertyValues( sal_uInt32 nIndex )
+DataSupplier::queryPropertyValues( std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex )
{
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::Guard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(nIndex) < m_pImpl->m_aResults.size() )
+ if ( static_cast<size_t>(nIndex) < m_aResults.size() )
{
- Reference< XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xRow;
+ Reference< XRow > xRow = m_aResults[ nIndex ]->xRow;
if ( xRow.is() )
{
// Already cached.
@@ -298,13 +245,13 @@ DataSupplier::queryPropertyValues( sal_uInt32 nIndex )
}
}
- if ( getResult( nIndex ) )
+ if ( getResult( rResultSetGuard, nIndex ) )
{
- if ( !m_pImpl->m_aResults[ nIndex ]->xContent.is() )
- queryContent(nIndex);
+ if ( !m_aResults[ nIndex ]->xContent.is() )
+ queryContent(rResultSetGuard, nIndex);
- Reference< XRow > xRow = m_pImpl->m_aResults[ nIndex ]->xContent->getPropertyValues(getResultSet()->getProperties());
- m_pImpl->m_aResults[ nIndex ]->xRow = xRow;
+ Reference< XRow > xRow = m_aResults[ nIndex ]->xContent->getPropertyValues(getResultSet()->getProperties());
+ m_aResults[ nIndex ]->xRow = xRow;
return xRow;
}
@@ -313,10 +260,10 @@ DataSupplier::queryPropertyValues( sal_uInt32 nIndex )
void DataSupplier::releasePropertyValues( sal_uInt32 nIndex )
{
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
+ osl::Guard< osl::Mutex > aGuard( m_aMutex );
- if ( static_cast<size_t>(nIndex) < m_pImpl->m_aResults.size() )
- m_pImpl->m_aResults[ nIndex ]->xRow.clear();
+ if ( static_cast<size_t>(nIndex) < m_aResults.size() )
+ m_aResults[ nIndex ]->xRow.clear();
}
void DataSupplier::close()
diff --git a/dbaccess/source/core/dataaccess/myucp_datasupplier.hxx b/dbaccess/source/core/dataaccess/myucp_datasupplier.hxx
index 8d1c53f112d2..b9eecab2ddff 100644
--- a/dbaccess/source/core/dataaccess/myucp_datasupplier.hxx
+++ b/dbaccess/source/core/dataaccess/myucp_datasupplier.hxx
@@ -20,43 +20,61 @@
#pragma once
#include <rtl/ref.hxx>
+#include <ucbhelper/contentidentifier.hxx>
#include <ucbhelper/resultset.hxx>
#include "documentcontainer.hxx"
#include <memory>
-namespace dbaccess {
+namespace dbaccess
+{
+struct ResultListEntry
+{
+ OUString aId;
+ css::uno::Reference<css::ucb::XContentIdentifier> xId;
+ ::rtl::Reference<OContentHelper> xContent;
+ css::uno::Reference<css::sdbc::XRow> xRow;
+ const ContentProperties& rData;
-struct DataSupplier_Impl;
+ explicit ResultListEntry(const ContentProperties& rEntry)
+ : rData(rEntry)
+ {
+ }
+};
class DataSupplier : public ucbhelper::ResultSetDataSupplier
{
- std::unique_ptr<DataSupplier_Impl> m_pImpl;
+ osl::Mutex m_aMutex;
+ std::vector<std::unique_ptr<ResultListEntry>> m_aResults;
+ rtl::Reference<ODocumentContainer> m_xContent;
+ bool m_bCountFinal = false;
public:
- explicit DataSupplier( const rtl::Reference< ODocumentContainer >& rxContent );
+ explicit DataSupplier(const rtl::Reference<ODocumentContainer>& rxContent);
virtual ~DataSupplier() override;
- virtual OUString queryContentIdentifierString( sal_uInt32 nIndex ) override;
- virtual css::uno::Reference< css::ucb::XContentIdentifier >
- queryContentIdentifier( sal_uInt32 nIndex ) override;
- virtual css::uno::Reference< css::ucb::XContent >
- queryContent( sal_uInt32 nIndex ) override;
+ virtual OUString queryContentIdentifierString(std::unique_lock<std::mutex>& rResultSetGuard,
+ sal_uInt32 nIndex) override;
+ virtual css::uno::Reference<css::ucb::XContentIdentifier>
+ queryContentIdentifier(std::unique_lock<std::mutex>& rResultSetGuard,
+ sal_uInt32 nIndex) override;
+ virtual css::uno::Reference<css::ucb::XContent>
+ queryContent(std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex) override;
- virtual bool getResult( sal_uInt32 nIndex ) override;
+ virtual bool getResult(std::unique_lock<std::mutex>& rResultSetGuard,
+ sal_uInt32 nIndex) override;
- virtual sal_uInt32 totalCount() override;
+ virtual sal_uInt32 totalCount(std::unique_lock<std::mutex>& rResultSetGuard) override;
virtual sal_uInt32 currentCount() override;
virtual bool isCountFinal() override;
- virtual css::uno::Reference< css::sdbc::XRow >
- queryPropertyValues( sal_uInt32 nIndex ) override;
- virtual void releasePropertyValues( sal_uInt32 nIndex ) override;
+ virtual css::uno::Reference<css::sdbc::XRow>
+ queryPropertyValues(std::unique_lock<std::mutex>& rResultSetGuard, sal_uInt32 nIndex) override;
+ virtual void releasePropertyValues(sal_uInt32 nIndex) override;
virtual void close() override;
virtual void validate() override;
};
-
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/dataaccess/myucp_resultset.cxx b/dbaccess/source/core/dataaccess/myucp_resultset.cxx
index 67c1ad7c8b4b..9ba383e0aa18 100644
--- a/dbaccess/source/core/dataaccess/myucp_resultset.cxx
+++ b/dbaccess/source/core/dataaccess/myucp_resultset.cxx
@@ -26,14 +26,13 @@
*************************************************************************/
+#include <utility>
+
#include "myucp_datasupplier.hxx"
#include "myucp_resultset.hxx"
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::container;
@@ -42,11 +41,11 @@ using namespace dbaccess;
// DynamicResultSet Implementation.
DynamicResultSet::DynamicResultSet(
const Reference< XComponentContext >& rxContext,
- const rtl::Reference< ODocumentContainer >& rxContent,
+ rtl::Reference< ODocumentContainer > xContent,
const OpenCommandArgument2& rCommand,
const Reference< XCommandEnvironment >& rxEnv )
:ResultSetImplHelper( rxContext, rCommand )
- ,m_xContent(rxContent)
+ ,m_xContent(std::move(xContent))
,m_xEnv( rxEnv )
{
}
diff --git a/dbaccess/source/core/dataaccess/myucp_resultset.hxx b/dbaccess/source/core/dataaccess/myucp_resultset.hxx
index ae269ffb8ac9..220bdf0a70b7 100644
--- a/dbaccess/source/core/dataaccess/myucp_resultset.hxx
+++ b/dbaccess/source/core/dataaccess/myucp_resultset.hxx
@@ -39,7 +39,7 @@ private:
public:
DynamicResultSet(
const css::uno::Reference< css::uno::XComponentContext >& rxContext,
- const rtl::Reference< ODocumentContainer >& rxContent,
+ rtl::Reference< ODocumentContainer > xContent,
const css::ucb::OpenCommandArgument2& rCommand,
const css::uno::Reference< css::ucb::XCommandEnvironment >& rxEnv );
};
diff --git a/dbaccess/source/core/inc/ContentHelper.hxx b/dbaccess/source/core/inc/ContentHelper.hxx
index b7d275481ec1..d60521a4328d 100644
--- a/dbaccess/source/core/inc/ContentHelper.hxx
+++ b/dbaccess/source/core/inc/ContentHelper.hxx
@@ -25,11 +25,11 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
+#include <comphelper/multiinterfacecontainer3.hxx>
#include <com/sun/star/beans/Property.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/sdbcx/XRename.hpp>
@@ -71,7 +71,7 @@ namespace dbaccess
typedef std::shared_ptr<OContentHelper_Impl> TContentPtr;
- typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString>
+ typedef comphelper::OMultiTypeInterfaceContainerHelperVar3<css::beans::XPropertiesChangeListener, OUString>
PropertyChangeListenerContainer;
typedef ::cppu::WeakComponentImplHelper< css::ucb::XContent
, css::ucb::XCommandProcessor
@@ -79,7 +79,6 @@ namespace dbaccess
, css::beans::XPropertiesChangeNotifier
, css::beans::XPropertyContainer
, css::lang::XInitialization
- , css::lang::XUnoTunnel
, css::container::XChild
, css::sdbcx::XRename
> OContentHelper_COMPBASE;
@@ -93,7 +92,7 @@ namespace dbaccess
void impl_rename_throw(const OUString& _sNewName,bool _bNotify = true);
protected:
- ::comphelper::OInterfaceContainerHelper2 m_aContentListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::ucb::XContentEventListener> m_aContentListeners;
PropertyChangeListenerContainer m_aPropertyChangeListeners;
css::uno::Reference< css::uno::XInterface >
m_xParentContainer;
@@ -121,7 +120,7 @@ namespace dbaccess
OContentHelper( const css::uno::Reference< css::uno::XComponentContext >& _xORB
,const css::uno::Reference< css::uno::XInterface >& _xParentContainer
- ,const TContentPtr& _pImpl
+ ,TContentPtr _pImpl
);
// css::lang::XTypeProvider
@@ -154,10 +153,6 @@ namespace dbaccess
// XInitialization
virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
- // css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
-
// css::container::XChild
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent( ) override;
virtual void SAL_CALL setParent( const css::uno::Reference< css::uno::XInterface >& Parent ) override;
diff --git a/dbaccess/source/core/inc/DatabaseDataProvider.hxx b/dbaccess/source/core/inc/DatabaseDataProvider.hxx
index 5df139157d78..8c2029634b8a 100644
--- a/dbaccess/source/core/inc/DatabaseDataProvider.hxx
+++ b/dbaccess/source/core/inc/DatabaseDataProvider.hxx
@@ -54,9 +54,9 @@ public:
private:
// css::uno::XInterface:
virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type) override;
- virtual void SAL_CALL acquire() throw () override
+ virtual void SAL_CALL acquire() noexcept override
{ TDatabaseDataProvider::acquire(); }
- virtual void SAL_CALL release() throw () override
+ virtual void SAL_CALL release() noexcept override
{ TDatabaseDataProvider::release(); }
// css::lang::XServiceInfo
@@ -73,7 +73,7 @@ private:
virtual css::uno::Reference<css::chart2::data::XDataSequence> SAL_CALL
createDataSequenceByValueArray(
- const OUString& aRole, const OUString & aRangeRepresentation) override;
+ const OUString& aRole, const OUString & aRangeRepresentation, const OUString& aRoleQualifier) override;
virtual css::uno::Reference< css::sheet::XRangeSelection > SAL_CALL getRangeSelection() override;
@@ -220,7 +220,7 @@ private:
::osl::MutexGuard aGuard(m_aMutex);
if ( _member != Value )
{
- prepareSet(_sProperty, css::uno::makeAny(_member), css::uno::makeAny(Value), &l);
+ prepareSet(_sProperty, css::uno::Any(_member), css::uno::Any(Value), &l);
_member = Value;
}
}
diff --git a/dbaccess/source/core/inc/FilteredContainer.hxx b/dbaccess/source/core/inc/FilteredContainer.hxx
index 968f3a1d622b..3ec2b1735bf3 100644
--- a/dbaccess/source/core/inc/FilteredContainer.hxx
+++ b/dbaccess/source/core/inc/FilteredContainer.hxx
@@ -28,11 +28,6 @@
#include <connectivity/sdbcx/VCollection.hxx>
-namespace dbtools
-{
- class WarningsContainer;
-}
-
namespace dbaccess
{
class IRefreshListener;
@@ -62,7 +57,7 @@ namespace dbaccess
// ::connectivity::sdbcx::OCollection
virtual void impl_refresh() override;
- virtual OUString getNameForObject(const ::connectivity::sdbcx::ObjectType& _xObject) override;
+ virtual OUString getNameForObject(const ::css::uno::Reference< css::beans::XPropertySet >& _xObject) override;
/** tell the container to free all elements and all additional resources.<BR>
After using this method the object may be reconstructed by calling one of the <code>construct</code> methods.
diff --git a/dbaccess/source/core/inc/ModelImpl.hxx b/dbaccess/source/core/inc/ModelImpl.hxx
index b6e2fe729ffb..8f4e7affddbe 100644
--- a/dbaccess/source/core/inc/ModelImpl.hxx
+++ b/dbaccess/source/core/inc/ModelImpl.hxx
@@ -27,56 +27,50 @@
#include <com/sun/star/document/XDocumentSubStorageSupplier.hpp>
#include <com/sun/star/embed/XStorage.hpp>
#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/reflection/ProxyFactory.hpp>
#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
#include <com/sun/star/sdbc/XDataSource.hpp>
#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+
#include <comphelper/namedvaluecollection.hxx>
#include <cppuhelper/weakref.hxx>
#include <vcl/svapp.hxx>
#include <sfx2/docmacromode.hxx>
#include <sfx2/docstoragemodifylistener.hxx>
#include <unotools/sharedunocomponent.hxx>
+#include <rtl/digest.h>
#include <rtl/ref.hxx>
+#include <o3tl/enumarray.hxx>
+#include <unotools/weakref.hxx>
-namespace comphelper
-{
- class NamedValueCollection;
-}
+#include <span>
namespace dbaccess
{
+class OCommandContainer;
+class OConnection;
typedef std::vector< css::uno::WeakReference< css::sdbc::XConnection > > OWeakConnectionArray;
-struct AsciiPropertyValue
+struct DefaultPropertyValue
{
- // note: the canonic member order would be AsciiName / DefaultValue, but
- // this crashes on unxlngi6.pro, since there's a bug which somehow results in
- // getDefaultDataSourceSettings returning corrupted Any instances then.
+ OUString Name;
css::uno::Any DefaultValue;
- const char* AsciiName;
const css::uno::Type& ValueType;
- AsciiPropertyValue()
- :DefaultValue( )
- ,AsciiName( nullptr )
- ,ValueType( ::cppu::UnoType<void>::get() )
- {
- }
-
- AsciiPropertyValue( const char* _pAsciiName, const css::uno::Any& _rDefaultValue )
- :DefaultValue( _rDefaultValue )
- ,AsciiName( _pAsciiName )
+ DefaultPropertyValue(const OUString& _aName, const css::uno::Any& _rDefaultValue)
+ :Name( _aName )
+ ,DefaultValue( _rDefaultValue )
,ValueType( _rDefaultValue.getValueType() )
{
OSL_ENSURE( ValueType.getTypeClass() != css::uno::TypeClass_VOID,
"AsciiPropertyValue::AsciiPropertyValue: NULL values not allowed here, use the other CTOR for this!" );
}
- AsciiPropertyValue( const char* _pAsciiName, const css::uno::Type& _rValeType )
- :DefaultValue()
- ,AsciiName( _pAsciiName )
+ DefaultPropertyValue(const OUString& _aName, const css::uno::Type& _rValeType)
+ :Name( _aName )
,ValueType( _rValeType )
{
OSL_ENSURE( ValueType.getTypeClass() != css::uno::TypeClass_VOID,
@@ -84,43 +78,104 @@ struct AsciiPropertyValue
}
};
-class ODatabaseContext;
-class OSharedConnectionManager;
-
// ODatabaseModelImpl
typedef ::utl::SharedUNOComponent< css::embed::XStorage > SharedStorage;
class ODatabaseContext;
class DocumentStorageAccess;
-class OSharedConnectionManager;
+class ODatabaseSource;
+class ODatabaseDocument;
+
+
+/** The class OSharedConnectionManager implements a structure to share connections.
+ It owns the master connections which will be disposed when the last connection proxy is gone.
+*/
+// need to hold the digest
+struct TDigestHolder
+{
+ sal_uInt8 m_pBuffer[RTL_DIGEST_LENGTH_SHA1];
+ TDigestHolder()
+ {
+ m_pBuffer[0] = 0;
+ }
+
+};
+
+class OSharedConnectionManager : public ::cppu::WeakImplHelper< css::lang::XEventListener >
+{
+ // contains the currently used master connections
+ struct TConnectionHolder
+ {
+ rtl::Reference< OConnection > xMasterConnection;
+ oslInterlockedCount nALiveCount;
+ };
+
+ // the less-compare functor, used for the stl::map
+ struct TDigestLess
+ {
+ bool operator() (const TDigestHolder& x, const TDigestHolder& y) const
+ {
+ sal_uInt32 i;
+ for(i=0;i < RTL_DIGEST_LENGTH_SHA1 && (x.m_pBuffer[i] >= y.m_pBuffer[i]); ++i)
+ ;
+ return i < RTL_DIGEST_LENGTH_SHA1;
+ }
+ };
+
+ typedef std::map< TDigestHolder,TConnectionHolder,TDigestLess> TConnectionMap; // holds the master connections
+ typedef std::map< css::uno::Reference< css::sdbc::XConnection >,TConnectionMap::iterator> TSharedConnectionMap;// holds the shared connections
+
+ ::osl::Mutex m_aMutex;
+ TConnectionMap m_aConnections; // remember the master connection in conjunction with the digest
+ TSharedConnectionMap m_aSharedConnection; // the shared connections with conjunction with an iterator into the connections map
+ css::uno::Reference< css::reflection::XProxyFactory > m_xProxyFactory;
+
+protected:
+ virtual ~OSharedConnectionManager() override;
+
+public:
+ explicit OSharedConnectionManager(const css::uno::Reference< css::uno::XComponentContext >& _rxContext);
+
+ void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
+ css::uno::Reference< css::sdbc::XConnection > getConnection( const OUString& url,
+ const OUString& user,
+ const OUString& password,
+ const css::uno::Sequence< css::beans::PropertyValue >& _aInfo,
+ ODatabaseSource* _pDataSource);
+ void addEventListener(const css::uno::Reference< css::sdbc::XConnection >& _rxConnection, TConnectionMap::iterator const & _rIter);
+};
+
+
class ODatabaseModelImpl :public ::sfx2::IMacroDocumentAccess
,public ::sfx2::IModifiableDocument
{
public:
- enum ObjectType
+
+ enum class ObjectType
{
- E_FORM = 0,
- E_REPORT = 1,
- E_QUERY = 2,
- E_TABLE = 3
+ Form = 0,
+ Report = 1,
+ Query = 2,
+ Table = 3,
+ LAST = Table
};
- enum EmbeddedMacros
+ enum class EmbeddedMacros
{
// the database document (storage) itself contains macros
- eDocumentWideMacros,
+ DocumentWide,
// there are sub document( storage)s containing macros
- eSubDocumentMacros,
+ SubDocument,
// there are no known macro( storage)s
- eNoMacros
+ NONE
};
private:
- css::uno::WeakReference< css::frame::XModel > m_xModel;
- css::uno::WeakReference< css::sdbc::XDataSource > m_xDataSource;
+ unotools::WeakReference< ODatabaseDocument > m_xModel;
+ unotools::WeakReference< ODatabaseSource > m_xDataSource;
rtl::Reference<DocumentStorageAccess> m_pStorageAccess;
- std::vector< TContentPtr > m_aContainer; // one for each ObjectType
+ o3tl::enumarray< ObjectType, TContentPtr > m_aContainer; // one for each ObjectType
::sfx2::DocumentMacroMode m_aMacroMode;
sal_Int16 m_nImposedMacroExecMode;
@@ -165,7 +220,7 @@ public:
public:
css::uno::WeakReference< css::container::XNameAccess > m_xCommandDefinitions;
- css::uno::WeakReference< css::container::XNameAccess > m_xTableDefinitions;
+ unotools::WeakReference< ::dbaccess::OCommandContainer > m_xTableDefinitions;
css::uno::Reference< css::util::XNumberFormatsSupplier >
m_xNumberFormatsSupplier;
@@ -187,9 +242,7 @@ public:
m_xSettings;
css::uno::Sequence< OUString > m_aTableFilter;
css::uno::Sequence< OUString > m_aTableTypeFilter;
- OSharedConnectionManager* m_pSharedConnectionManager;
- css::uno::Reference< css::lang::XEventListener >
- m_xSharedConnectionManager;
+ rtl::Reference< OSharedConnectionManager > m_xSharedConnectionManager;
css::uno::Reference<css::awt::XWindow>
m_xDialogParent;
sal_uInt16 m_nControllerLockCount;
@@ -221,7 +274,7 @@ public:
virtual ~ODatabaseModelImpl();
ODatabaseModelImpl(
- const OUString& _rRegistrationName,
+ OUString _sRegistrationName,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
ODatabaseContext& _rDBContext
);
@@ -290,7 +343,7 @@ public:
/** returns the model, if there already exists one
*/
- css::uno::Reference< css::frame::XModel > getModel_noCreate() const;
+ rtl::Reference< ODatabaseDocument > getModel_noCreate() const;
/** returns a new ->ODatabaseDocument
@@ -300,7 +353,7 @@ public:
@seealso
getModel_noCreate
*/
- css::uno::Reference< css::frame::XModel > createNewModel_deliverOwnership();
+ rtl::Reference< ODatabaseDocument > createNewModel_deliverOwnership();
struct ResetModelAccess { friend class ODatabaseDocument; private: ResetModelAccess() { } };
@@ -323,7 +376,7 @@ public:
void release();
/// returns all known data source settings, including their default values
- static const AsciiPropertyValue* getDefaultDataSourceSettings();
+ static std::span<const DefaultPropertyValue> getDefaultDataSourceSettings();
/** retrieves the requested container of objects (forms/reports/tables/queries)
*/
@@ -377,7 +430,7 @@ public:
css::uno::Reference< css::script::XStorageBasedLibraryContainer >
getLibraryContainer( bool _bScript );
- /** lets our library containers store themself into the given root storage
+ /** lets our library containers store themselves into the given root storage
*/
void storeLibraryContainersTo( const css::uno::Reference< css::embed::XStorage >& _rxToRootStorage );
@@ -416,7 +469,8 @@ public:
virtual bool macroCallsSeenWhileLoading() const override;
virtual css::uno::Reference< css::document::XEmbeddedScripts > getEmbeddedDocumentScripts() const override;
virtual SignatureState getScriptingSignatureState() override;
- virtual bool hasTrustedScriptingSignature( bool bAllowUIToAddAuthor ) override;
+ virtual bool hasTrustedScriptingSignature(
+ const css::uno::Reference<css::task::XInteractionHandler>& _rxInteraction) override;
// IModifiableDocument
virtual void storageIsModified() override;
@@ -451,7 +505,7 @@ protected:
::osl::Mutex m_aMutex; // only use this to init WeakComponentImplHelper
protected:
- explicit ModelDependentComponent( const ::rtl::Reference< ODatabaseModelImpl >& _model );
+ explicit ModelDependentComponent( ::rtl::Reference< ODatabaseModelImpl > _model );
virtual ~ModelDependentComponent();
/** returns the component itself
@@ -468,7 +522,7 @@ public:
void checkDisposed() const
{
if ( !m_pImpl.is() )
- throw css::lang::DisposedException( "Component is already disposed.", getThis() );
+ throw css::lang::DisposedException( u"Component is already disposed."_ustr, getThis() );
}
void lockModify()
diff --git a/dbaccess/source/core/inc/PropertyForward.hxx b/dbaccess/source/core/inc/PropertyForward.hxx
index b8e602fc05cf..daf31758d000 100644
--- a/dbaccess/source/core/inc/PropertyForward.hxx
+++ b/dbaccess/source/core/inc/PropertyForward.hxx
@@ -49,7 +49,7 @@ namespace dbaccess
public:
OPropertyForward( const css::uno::Reference< css::beans::XPropertySet>& _xSource,
const css::uno::Reference< css::container::XNameAccess>& _xDestContainer,
- const OUString& _sName,
+ OUString _sName,
const std::vector< OUString >& _aPropertyList
);
diff --git a/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx b/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
index 356d00aafdb0..fdde2d451d17 100644
--- a/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
+++ b/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx
@@ -76,6 +76,7 @@ namespace dbaccess
typedef std::function<const ::connectivity::OSQLParseNode*(::connectivity::OSQLParseTreeIterator *)>
TGetParseNode;
::svxform::OSystemParseContext m_aParseContext;
+ ::svxform::ONeutralParseContext m_aNeutralContext;
::connectivity::OSQLParser m_aSqlParser;
::connectivity::OSQLParseTreeIterator m_aSqlIterator; // the iterator for the complete statement
::connectivity::OSQLParseTreeIterator m_aAdditiveIterator; // the iterator for the "additive statement" (means without the clauses of the elementary statement)
@@ -218,7 +219,10 @@ namespace dbaccess
// XServiceInfo
DECLARE_SERVICE_INFO();
- DECLARE_PROPERTYCONTAINER_DEFAULTS();
+ virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override;
+
// css::sdb::XSingleSelectQueryComposer
virtual OUString SAL_CALL getElementaryQuery() override;
diff --git a/dbaccess/source/core/inc/TableDeco.hxx b/dbaccess/source/core/inc/TableDeco.hxx
index 002423908e29..289bfe5cd0bf 100644
--- a/dbaccess/source/core/inc/TableDeco.hxx
+++ b/dbaccess/source/core/inc/TableDeco.hxx
@@ -61,8 +61,7 @@ namespace dbaccess
,public ODBTableDecorator_PROP
{
void fillPrivileges() const;
- protected:
- css::uno::Reference< css::container::XContainerListener > m_xColumnMediator;
+ rtl::Reference< OContainerMediator > m_xColumnMediator;
css::uno::Reference< css::sdbcx::XColumnsSupplier > m_xTable;
css::uno::Reference< css::container::XNameAccess > m_xColumnDefinitions;
css::uno::Reference< css::sdbc::XConnection > m_xConnection;
@@ -75,8 +74,9 @@ namespace dbaccess
// note: this thing uses the ref-count of "this", see OCollection::acquire()!
std::unique_ptr<::connectivity::sdbcx::OCollection> m_pColumns;
+ protected:
// IColumnFactory
- virtual OColumn* createColumn(const OUString& _rName) const override;
+ virtual rtl::Reference<OColumn> createColumn(const OUString& _rName) const override;
virtual css::uno::Reference< css::beans::XPropertySet > createColumnDescriptor() override;
virtual void columnAppended( const css::uno::Reference< css::beans::XPropertySet >& _rxSourceDescriptor ) override;
virtual void columnDropped(const OUString& _sName) override;
@@ -120,8 +120,8 @@ namespace dbaccess
//XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
//XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
@@ -145,7 +145,7 @@ namespace dbaccess
virtual void SAL_CALL setName( const OUString& aName ) override;
// css::lang::XUnoTunnel
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
+ static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
// XColumnsSupplier
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getColumns( ) override;
diff --git a/dbaccess/source/core/inc/bookmarkcontainer.hxx b/dbaccess/source/core/inc/bookmarkcontainer.hxx
index 9a2d3b93d147..464192542499 100644
--- a/dbaccess/source/core/inc/bookmarkcontainer.hxx
+++ b/dbaccess/source/core/inc/bookmarkcontainer.hxx
@@ -24,7 +24,7 @@
#include <map>
#include <vector>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <cppuhelper/implbase.hxx>
#include <osl/mutex.hxx>
#include <com/sun/star/container/XChild.hpp>
@@ -58,7 +58,7 @@ class OBookmarkContainer final
MapIteratorVector m_aBookmarksIndexed; // for index access to the
::cppu::OWeakObject& m_rParent; // for the ref counting
- ::comphelper::OInterfaceContainerHelper2
+ ::comphelper::OInterfaceContainerHelper3<css::container::XContainerListener>
m_aContainerListeners;
::osl::Mutex& m_rMutex;
@@ -78,8 +78,8 @@ public:
virtual ~OBookmarkContainer() override;
// css::uno::XInterface
- virtual void SAL_CALL acquire( ) throw() override;
- virtual void SAL_CALL release( ) throw() override;
+ virtual void SAL_CALL acquire( ) noexcept override;
+ virtual void SAL_CALL release( ) noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
diff --git a/dbaccess/source/core/inc/callablestatement.hxx b/dbaccess/source/core/inc/callablestatement.hxx
index a61973db2b9d..c5d7b94154d9 100644
--- a/dbaccess/source/core/inc/callablestatement.hxx
+++ b/dbaccess/source/core/inc/callablestatement.hxx
@@ -32,7 +32,7 @@ namespace dbaccess
public css::sdbc::XOutParameters
{
public:
- OCallableStatement(const css::uno::Reference< css::sdbc::XConnection > & _xConn,
+ OCallableStatement(const rtl::Reference< OConnection > & _xConn,
const css::uno::Reference< css::uno::XInterface > & _xStatement)
:OPreparedStatement(_xConn, _xStatement){}
@@ -42,8 +42,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
diff --git a/dbaccess/source/core/inc/column.hxx b/dbaccess/source/core/inc/column.hxx
index 9c4e20153f06..9c3e1e0ad18b 100644
--- a/dbaccess/source/core/inc/column.hxx
+++ b/dbaccess/source/core/inc/column.hxx
@@ -67,8 +67,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::beans::XPropertySet
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
@@ -97,7 +97,7 @@ namespace dbaccess
public:
/** creates an OColumn object which should represent the column with a given name
*/
- virtual OColumn*
+ virtual rtl::Reference<OColumn>
createColumn( const OUString& _rName ) const = 0;
/** creates a column descriptor object.
@@ -128,7 +128,6 @@ namespace dbaccess
{
OContainerMediator* m_pMediator;
- protected:
// comes from the driver can be null
css::uno::Reference< css::container::XNameAccess > m_xDrvColumns;
css::uno::WeakReference< css::uno::XInterface > m_xParent;
@@ -139,14 +138,15 @@ namespace dbaccess
bool m_bAddColumn : 1;
bool m_bDropColumn : 1;
+ protected:
virtual void impl_refresh() override;
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual css::uno::Reference< css::beans::XPropertySet > createDescriptor() override;
- virtual connectivity::sdbcx::ObjectType appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
virtual void dropObject(sal_Int32 _nPos, const OUString& _sElementName) override;
public:
- connectivity::sdbcx::ObjectType createBaseObject(const OUString& _rName)
+ css::uno::Reference< css::beans::XPropertySet > createBaseObject(const OUString& _rName)
{
return OColumns_BASE::createObject(_rName);
}
@@ -178,7 +178,7 @@ namespace dbaccess
OColumns(
::cppu::OWeakObject& _rParent,
::osl::Mutex& _rMutex,
- const css::uno::Reference< css::container::XNameAccess >& _rxDrvColumns,
+ css::uno::Reference< css::container::XNameAccess > _xDrvColumns,
bool _bCaseSensitive,
const std::vector< OUString> &_rVector,
IColumnFactory* _pColFactory,
@@ -190,8 +190,8 @@ namespace dbaccess
//XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override { OColumns_BASE::acquire(); }
- virtual void SAL_CALL release() throw() override { OColumns_BASE::release(); }
+ virtual void SAL_CALL acquire() noexcept override { OColumns_BASE::acquire(); }
+ virtual void SAL_CALL release() noexcept override { OColumns_BASE::release(); }
//XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
diff --git a/dbaccess/source/core/dataaccess/connection.hxx b/dbaccess/source/core/inc/connection.hxx
index 93192d7988ff..31f2c924bde1 100644
--- a/dbaccess/source/core/dataaccess/connection.hxx
+++ b/dbaccess/source/core/inc/connection.hxx
@@ -24,11 +24,10 @@
#include <cstddef>
#include <map>
-#include <apitools.hxx>
-#include <querycontainer.hxx>
-#include <tablecontainer.hxx>
-#include <viewcontainer.hxx>
-#include <RefreshListener.hxx>
+#include "querycontainer.hxx"
+#include "tablecontainer.hxx"
+#include "viewcontainer.hxx"
+#include "RefreshListener.hxx"
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
@@ -48,11 +47,15 @@
#include <connectivity/ConnectionWrapper.hxx>
#include <connectivity/CommonTools.hxx>
#include <connectivity/warningscontainer.hxx>
+#include <unotools/weakref.hxx>
+
+class OStatementBase;
namespace dbaccess
{
-typedef cppu::ImplHelper13 < css::container::XChild
+typedef cppu::ImplInheritanceHelper< connectivity::OConnectionWrapper
+ , css::container::XChild
, css::sdbcx::XTablesSupplier
, css::sdbcx::XViewsSupplier
, css::sdbc::XConnection
@@ -69,17 +72,16 @@ typedef cppu::ImplHelper13 < css::container::XChild
class ODatabaseSource;
// OConnection
-class OConnection final :public ::cppu::BaseMutex
- ,public OSubComponent
- ,public ::connectivity::OConnectionWrapper
- ,public OConnection_Base
+class OConnection final :public OConnection_Base
,public IRefreshListener
{
+ unotools::WeakReference<ODatabaseSource> m_xParent;
css::uno::Reference< css::sdbcx::XTablesSupplier >
m_xMasterTables; // just to avoid the recreation of the catalog
- connectivity::OWeakRefArray m_aStatements;
- css::uno::Reference< css::container::XNameAccess >
- m_xQueries;
+ // contains OStatement and OPreparedStatement
+ std::vector<unotools::WeakReference<OStatementBase>>
+ m_aStatements;
+ rtl::Reference< OQueryContainer > m_xQueries;
connectivity::OWeakRefArray m_aComposers;
// the filter as set on the parent data link at construction of the connection
@@ -111,12 +113,9 @@ public:
// css::lang::XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override;
- virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw( ) override;
- virtual void SAL_CALL release() throw( ) override;
// OComponentHelper
virtual void SAL_CALL disposing() override;
@@ -215,7 +214,7 @@ private:
if the implementation cannot be loaded
@postcond
- m_xConnectionTools is nol <NULL/>
+ m_xConnectionTools is not <NULL/>
*/
void impl_loadConnectionTools_throw();
diff --git a/dbaccess/source/core/inc/databasecontext.hxx b/dbaccess/source/core/inc/databasecontext.hxx
index 4f561ebd2401..8b8dd2b40fbb 100644
--- a/dbaccess/source/core/inc/databasecontext.hxx
+++ b/dbaccess/source/core/inc/databasecontext.hxx
@@ -28,7 +28,6 @@
#include "ModelImpl.hxx"
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/sdb/XDatabaseContext.hpp>
#include <com/sun/star/sdb/XDatabaseRegistrations.hpp>
#include <com/sun/star/uno/XAggregation.hpp>
@@ -40,22 +39,12 @@
#include <basic/basicmanagerrepository.hxx>
#include <cppuhelper/compbase.hxx>
-// needed for registration
-namespace com::sun::star {
- namespace lang
- {
- class XMultiServiceFactory;
- class IllegalArgumentException;
- }
-}
-
namespace dbaccess
{
class DatabaseDocumentLoader;
typedef ::cppu::WeakComponentImplHelper< css::lang::XServiceInfo
, css::sdb::XDatabaseContext
- , css::lang::XUnoTunnel
> DatabaseAccessContext_Base;
class ODatabaseContext :public DatabaseAccessContext_Base
@@ -84,13 +73,10 @@ private:
BasicDLL m_aBasicDLL;
#endif
-protected:
::osl::Mutex m_aMutex;
css::uno::Reference< css::uno::XComponentContext >
m_aContext;
- css::uno::Reference< css::uno::XAggregation >
- m_xDBRegistrationAggregate;
css::uno::Reference< css::sdb::XDatabaseRegistrations >
m_xDatabaseRegistrations;
@@ -105,7 +91,7 @@ protected:
// recreated afterwards. So it's our (the context's) responsibility to store the session-persistent
// properties.
- ::comphelper::OInterfaceContainerHelper2 m_aContainerListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::container::XContainerListener> m_aContainerListeners;
rtl::Reference<DatabaseDocumentLoader> m_xDatabaseDocumentLoader;
public:
@@ -156,10 +142,6 @@ public:
virtual void SAL_CALL addContainerListener( const css::uno::Reference< css::container::XContainerListener >& xListener ) override;
virtual void SAL_CALL removeContainerListener( const css::uno::Reference< css::container::XContainerListener >& xListener ) override;
- // css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
-
void registerDatabaseDocument( ODatabaseModelImpl& _rModelImpl);
void revokeDatabaseDocument( const ODatabaseModelImpl& _rModelImpl);
void databaseDocumentURLChange(const OUString& _sOldName, const OUString& _sNewName);
diff --git a/dbaccess/source/core/inc/definitioncolumn.hxx b/dbaccess/source/core/inc/definitioncolumn.hxx
index 4d7ff3e170e0..b4c0a5c081a6 100644
--- a/dbaccess/source/core/inc/definitioncolumn.hxx
+++ b/dbaccess/source/core/inc/definitioncolumn.hxx
@@ -151,7 +151,7 @@ namespace dbaccess
OQueryColumn(
const css::uno::Reference< css::beans::XPropertySet>& _rxParserColumn,
const css::uno::Reference< css::sdbc::XConnection >& _rxConnection,
- const OUString &i_sLabel
+ OUString i_sLabel
);
// XTypeProvider
diff --git a/dbaccess/source/core/inc/definitioncontainer.hxx b/dbaccess/source/core/inc/definitioncontainer.hxx
index bcb6bd364470..33367a1d2fcc 100644
--- a/dbaccess/source/core/inc/definitioncontainer.hxx
+++ b/dbaccess/source/core/inc/definitioncontainer.hxx
@@ -36,6 +36,7 @@
#include "ContentHelper.hxx"
#include "containerapprove.hxx"
#include <comphelper/uno3.hxx>
+#include <comphelper/interfacecontainer2.hxx>
namespace dbaccess
{
@@ -62,7 +63,7 @@ public:
void erase( const OUString& _rName ) { m_aDefinitions.erase( _rName ); }
void erase( const TContentPtr& _pDefinition );
- void insert( const OUString& _rName, TContentPtr _pDefinition )
+ void insert( const OUString& _rName, const TContentPtr& _pDefinition )
{
m_aDefinitions.emplace( _rName, _pDefinition );
}
@@ -129,7 +130,7 @@ protected:
with a new one), this new element must pass our own internal approval, plus the approval
given here.
*/
- void setElementApproval( PContainerApprove _pElementApproval ) { m_pElementApproval = _pElementApproval; }
+ void setElementApproval(const PContainerApprove& _pElementApproval ) { m_pElementApproval = _pElementApproval; }
const PContainerApprove& getElementApproval() const { return m_pElementApproval; }
protected:
diff --git a/dbaccess/source/core/inc/documentevents.hxx b/dbaccess/source/core/inc/documentevents.hxx
index f24fa83f2a6b..224fc407d2fe 100644
--- a/dbaccess/source/core/inc/documentevents.hxx
+++ b/dbaccess/source/core/inc/documentevents.hxx
@@ -24,7 +24,6 @@
#include <cppuhelper/implbase.hxx>
-#include <memory>
#include <map>
namespace dbaccess
@@ -33,9 +32,6 @@ namespace dbaccess
typedef std::map< OUString, css::uno::Sequence< css::beans::PropertyValue > >
DocumentEventsData;
- // DocumentEvents
- struct DocumentEvents_Data;
-
typedef ::cppu::WeakImplHelper< css::container::XNameReplace
> DocumentEvents_Base;
@@ -48,11 +44,11 @@ namespace dbaccess
DocumentEvents(const DocumentEvents&) = delete;
const DocumentEvents& operator=(const DocumentEvents&) = delete;
- static bool needsSynchronousNotification( const OUString& _rEventName );
+ static bool needsSynchronousNotification( std::u16string_view _rEventName );
// XInterface
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// XNameReplace
virtual void SAL_CALL replaceByName( const OUString& aName, const css::uno::Any& aElement ) override;
@@ -67,7 +63,9 @@ namespace dbaccess
virtual sal_Bool SAL_CALL hasElements( ) override;
private:
- std::unique_ptr< DocumentEvents_Data > m_pData;
+ ::cppu::OWeakObject& mrParent;
+ ::osl::Mutex& mrMutex;
+ DocumentEventsData& mrEventsData;
};
} // namespace dbaccess
diff --git a/dbaccess/source/core/inc/object.hxx b/dbaccess/source/core/inc/object.hxx
deleted file mode 100644
index a947f9c57c3e..000000000000
--- a/dbaccess/source/core/inc/object.hxx
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#pragma once
-
-enum ObjectType
-{
- dbaTable,
- dbaQuery,
- dbaForm,
- dbaReport
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/inc/objectnameapproval.hxx b/dbaccess/source/core/inc/objectnameapproval.hxx
index ddd538c79edb..e503c347ea4e 100644
--- a/dbaccess/source/core/inc/objectnameapproval.hxx
+++ b/dbaccess/source/core/inc/objectnameapproval.hxx
@@ -21,14 +21,13 @@
#include <memory>
#include "containerapprove.hxx"
-
+#include <cppuhelper/weakref.hxx>
#include <com/sun/star/sdbc/XConnection.hpp>
namespace dbaccess
{
// ObjectNameApproval
- struct ObjectNameApproval_Impl;
/** implementation of the IContainerApprove interface which approves
elements for insertion into a query or tables container.
@@ -40,7 +39,8 @@ namespace dbaccess
*/
class ObjectNameApproval : public IContainerApprove
{
- std::unique_ptr< ObjectNameApproval_Impl > m_pImpl;
+ css::uno::WeakReference< css::sdbc::XConnection > mxConnection;
+ sal_Int32 mnCommandType;
public:
enum ObjectType
diff --git a/dbaccess/source/core/inc/preparedstatement.hxx b/dbaccess/source/core/inc/preparedstatement.hxx
index 5aed22dd3f78..d39af31e13cb 100644
--- a/dbaccess/source/core/inc/preparedstatement.hxx
+++ b/dbaccess/source/core/inc/preparedstatement.hxx
@@ -42,7 +42,7 @@ namespace dbaccess
css::uno::Reference< css::sdbc::XParameters > m_xAggregateAsParameters;
public:
- OPreparedStatement(const css::uno::Reference< css::sdbc::XConnection > & _xConn,
+ OPreparedStatement(const rtl::Reference< OConnection > & _xConn,
const css::uno::Reference< css::uno::XInterface > & _xStatement);
virtual ~OPreparedStatement() override;
@@ -52,8 +52,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// css::lang::XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
diff --git a/dbaccess/source/core/inc/querycomposer.hxx b/dbaccess/source/core/inc/querycomposer.hxx
index 7671b9a9bf7f..c5d764d98cf8 100644
--- a/dbaccess/source/core/inc/querycomposer.hxx
+++ b/dbaccess/source/core/inc/querycomposer.hxx
@@ -62,8 +62,8 @@ namespace dbaccess
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
diff --git a/dbaccess/source/core/inc/querycontainer.hxx b/dbaccess/source/core/inc/querycontainer.hxx
index a04a1ddf3d31..df4b1acea5f1 100644
--- a/dbaccess/source/core/inc/querycontainer.hxx
+++ b/dbaccess/source/core/inc/querycontainer.hxx
@@ -66,7 +66,6 @@ namespace dbaccess
/** a class which automatically resets m_eDoingCurrently in its destructor
*/
- class OAutoActionReset; // just for the following friend declaration
friend class OAutoActionReset;
class OAutoActionReset
{
diff --git a/dbaccess/source/core/inc/recovery/dbdocrecovery.hxx b/dbaccess/source/core/inc/recovery/dbdocrecovery.hxx
index e5f924650b52..4f0f68d306c9 100644
--- a/dbaccess/source/core/inc/recovery/dbdocrecovery.hxx
+++ b/dbaccess/source/core/inc/recovery/dbdocrecovery.hxx
@@ -24,13 +24,11 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <vector>
-#include <memory>
namespace dbaccess
{
// DatabaseDocumentRecovery
- struct DatabaseDocumentRecovery_Data;
class DatabaseDocumentRecovery
{
public:
@@ -63,7 +61,7 @@ namespace dbaccess
);
private:
- const std::unique_ptr< DatabaseDocumentRecovery_Data > m_pData;
+ css::uno::Reference<css::uno::XComponentContext> mxContext;
};
} // namespace dbaccess
diff --git a/dbaccess/source/core/inc/statement.hxx b/dbaccess/source/core/inc/statement.hxx
index 7ddc9129538f..17726d7d0f0b 100644
--- a/dbaccess/source/core/inc/statement.hxx
+++ b/dbaccess/source/core/inc/statement.hxx
@@ -33,13 +33,15 @@
#include <comphelper/proparrhlp.hxx>
#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/implbase3.hxx>
-#include <apitools.hxx>
+#include <cppuhelper/compbase.hxx>
+#include <unotools/weakref.hxx>
+namespace dbaccess { class OConnection; class OResultSet; }
// OStatementBase
class OStatementBase : public cppu::BaseMutex,
- public OSubComponent,
+ public ::cppu::WeakComponentImplHelper<>,
public ::cppu::OPropertySetHelper,
public ::comphelper::OPropertyArrayUsageHelper < OStatementBase >,
public css::util::XCancellable,
@@ -50,9 +52,10 @@ class OStatementBase : public cppu::BaseMutex,
public css::sdbc::XGeneratedResultSet
{
protected:
+ unotools::WeakReference<::dbaccess::OConnection> m_xParent;
::osl::Mutex m_aCancelMutex;
- css::uno::WeakReferenceHelper m_aResultSet;
+ unotools::WeakReference<::dbaccess::OResultSet> m_xWeakResultSet;
css::uno::Reference< css::beans::XPropertySet > m_xAggregateAsSet;
css::uno::Reference< css::util::XCancellable > m_xAggregateAsCancellable;
bool m_bUseBookmarks;
@@ -61,7 +64,7 @@ protected:
virtual ~OStatementBase() override;
public:
- OStatementBase(const css::uno::Reference< css::sdbc::XConnection > & _xConn,
+ OStatementBase(const rtl::Reference< ::dbaccess::OConnection > & _xConn,
const css::uno::Reference< css::uno::XInterface > & _xStatement);
@@ -70,8 +73,8 @@ public:
// css::uno::XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL acquire() throw() override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL acquire() noexcept override;
+ virtual void SAL_CALL release() noexcept override;
// OComponentHelper
virtual void SAL_CALL disposing() override;
@@ -141,7 +144,7 @@ private:
bool m_bAttemptedComposerCreation;
public:
- OStatement(const css::uno::Reference< css::sdbc::XConnection > & _xConn,
+ OStatement(const rtl::Reference< ::dbaccess::OConnection > & _xConn,
const css::uno::Reference< css::uno::XInterface > & _xStatement);
DECLARE_XINTERFACE()
diff --git a/dbaccess/source/core/inc/table.hxx b/dbaccess/source/core/inc/table.hxx
index 8962e13d5024..6c71e7447653 100644
--- a/dbaccess/source/core/inc/table.hxx
+++ b/dbaccess/source/core/inc/table.hxx
@@ -44,7 +44,6 @@ namespace dbaccess
private:
::rtl::Reference< OContainerMediator > m_pColumnMediator;
- protected:
css::uno::Reference< css::container::XNameAccess > m_xColumnDefinitions;
css::uno::Reference< css::container::XNameAccess > m_xDriverColumns;
@@ -52,11 +51,12 @@ namespace dbaccess
sal_Int32 m_nPrivileges;
// </properties>
+ protected:
virtual ::cppu::IPropertyArrayHelper* createArrayHelper( sal_Int32 _nId) const override;
virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper() override;
// IColumnFactory
- virtual OColumn* createColumn(const OUString& _rName) const override;
+ virtual rtl::Reference<OColumn> createColumn(const OUString& _rName) const override;
virtual css::uno::Reference< css::beans::XPropertySet > createColumnDescriptor() override;
virtual void columnAppended( const css::uno::Reference< css::beans::XPropertySet >& _rxSourceDescriptor ) override;
virtual void columnDropped(const OUString& _sName) override;
@@ -114,7 +114,6 @@ namespace dbaccess
//XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
// css::lang::XServiceInfo
DECLARE_SERVICE_INFO();
@@ -128,9 +127,6 @@ namespace dbaccess
// css::sdbcx::XAlterTable,
virtual void SAL_CALL alterColumnByName( const OUString& _rName, const css::uno::Reference< css::beans::XPropertySet >& _rxDescriptor ) override;
- // css::lang::XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
-
private:
using OTable_Base::createArrayHelper;
using OTable_Base::getFastPropertyValue;
diff --git a/dbaccess/source/core/inc/tablecontainer.hxx b/dbaccess/source/core/inc/tablecontainer.hxx
index c60be3b5ce00..985cf3e5e8aa 100644
--- a/dbaccess/source/core/inc/tablecontainer.hxx
+++ b/dbaccess/source/core/inc/tablecontainer.hxx
@@ -50,9 +50,9 @@ namespace dbaccess
virtual OUString getTableTypeRestriction() const override;
// ::connectivity::sdbcx::OCollection
- virtual connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual css::uno::Reference< css::beans::XPropertySet > createDescriptor() override;
- virtual connectivity::sdbcx::ObjectType appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
virtual void dropObject(sal_Int32 _nPos, const OUString& _sElementName) override;
virtual void disposing() override;
@@ -68,8 +68,8 @@ namespace dbaccess
virtual void SAL_CALL elementReplaced( const css::container::ContainerEvent& Event ) override;
public:
- virtual void SAL_CALL acquire() throw() override { OFilteredContainer::acquire();}
- virtual void SAL_CALL release() throw() override { OFilteredContainer::release();}
+ virtual void SAL_CALL acquire() noexcept override { OFilteredContainer::acquire();}
+ virtual void SAL_CALL release() noexcept override { OFilteredContainer::release();}
/** ctor of the container. The parent has to support the <type scope="css::sdbc">XConnection</type>
interface.<BR>
diff --git a/dbaccess/source/core/inc/veto.hxx b/dbaccess/source/core/inc/veto.hxx
index 5608e87d11ee..ec44172f70d4 100644
--- a/dbaccess/source/core/inc/veto.hxx
+++ b/dbaccess/source/core/inc/veto.hxx
@@ -37,7 +37,7 @@ namespace dbaccess
const css::uno::Any m_aDetails;
public:
- Veto( const css::uno::Any& _rDetails );
+ Veto( css::uno::Any _aDetails );
virtual OUString SAL_CALL getReason() override;
virtual css::uno::Any SAL_CALL getDetails() override;
diff --git a/dbaccess/source/core/inc/viewcontainer.hxx b/dbaccess/source/core/inc/viewcontainer.hxx
index 371b739b364f..52928e79e686 100644
--- a/dbaccess/source/core/inc/viewcontainer.hxx
+++ b/dbaccess/source/core/inc/viewcontainer.hxx
@@ -31,11 +31,6 @@
#include "FilteredContainer.hxx"
-namespace dbtools
-{
- class WarningsContainer;
-}
-
namespace dbaccess
{
// OViewContainer
@@ -67,8 +62,8 @@ namespace dbaccess
virtual OUString getTableTypeRestriction() const override;
private:
- virtual void SAL_CALL acquire() throw() override { OFilteredContainer::acquire();}
- virtual void SAL_CALL release() throw() override { OFilteredContainer::release();}
+ virtual void SAL_CALL acquire() noexcept override { OFilteredContainer::acquire();}
+ virtual void SAL_CALL release() noexcept override { OFilteredContainer::release();}
// css::lang::XServiceInfo
DECLARE_SERVICE_INFO();
@@ -80,9 +75,9 @@ namespace dbaccess
virtual void SAL_CALL elementReplaced( const css::container::ContainerEvent& Event ) override;
// ::connectivity::sdbcx::OCollection
- virtual ::connectivity::sdbcx::ObjectType createObject(const OUString& _rName) override;
+ virtual ::css::uno::Reference< css::beans::XPropertySet > createObject(const OUString& _rName) override;
virtual css::uno::Reference< css::beans::XPropertySet > createDescriptor() override;
- virtual connectivity::sdbcx::ObjectType appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
+ virtual css::uno::Reference< css::beans::XPropertySet > appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override;
virtual void dropObject(sal_Int32 _nPos, const OUString& _sElementName) override;
using OFilteredContainer::disposing;
diff --git a/dbaccess/source/core/misc/ContainerMediator.cxx b/dbaccess/source/core/misc/ContainerMediator.cxx
index 338858c87e76..0ee0d2e1f93c 100644
--- a/dbaccess/source/core/misc/ContainerMediator.cxx
+++ b/dbaccess/source/core/misc/ContainerMediator.cxx
@@ -25,7 +25,7 @@
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/sdbcx/XRename.hpp>
#include <comphelper/property.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -222,8 +222,7 @@ void OContainerMediator::notifyElementCreated( const OUString& _sName, const Ref
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- ::rtl::Reference pForward( new OPropertyForward( _xDest, m_xSettings, _sName, aPropertyList ) );
- m_aForwardList[ _sName ] = pForward;
+ m_aForwardList[_sName].set(new OPropertyForward(_xDest, m_xSettings, _sName, aPropertyList));
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/misc/DatabaseDataProvider.cxx b/dbaccess/source/core/misc/DatabaseDataProvider.cxx
index b6366e4482fb..8bf661362cd4 100644
--- a/dbaccess/source/core/misc/DatabaseDataProvider.cxx
+++ b/dbaccess/source/core/misc/DatabaseDataProvider.cxx
@@ -23,9 +23,8 @@
#include <comphelper/types.hxx>
#include <comphelper/namedvaluecollection.hxx>
#include <connectivity/FValue.hxx>
-#include <rtl/math.hxx>
#include <sal/macros.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
@@ -38,6 +37,7 @@
#include <com/sun/star/chart/ChartDataRowSource.hpp>
#include <com/sun/star/chart/XChartDataArray.hpp>
+#include <utility>
#include <vector>
// TODO: update for new HavingClause-aware FilterManager
@@ -52,14 +52,13 @@ DatabaseDataProvider::DatabaseDataProvider(uno::Reference< uno::XComponentContex
::cppu::PropertySetMixin< chart2::data::XDatabaseDataProvider >(
context, IMPLEMENTS_PROPERTY_SET, uno::Sequence< OUString >()),
m_aParameterManager( m_aMutex, context ),
- m_aFilterManager(),
m_xContext(context),
m_CommandType(sdb::CommandType::COMMAND), // #i94114
m_RowLimit(0),
m_EscapeProcessing(true),
m_ApplyFilter(true)
{
- m_xInternal.set( m_xContext->getServiceManager()->createInstanceWithContext("com.sun.star.comp.chart.InternalDataProvider",m_xContext ), uno::UNO_QUERY );
+ m_xInternal.set( m_xContext->getServiceManager()->createInstanceWithContext(u"com.sun.star.comp.chart.InternalDataProvider"_ustr,m_xContext ), uno::UNO_QUERY );
m_xRangeConversion.set(m_xInternal,uno::UNO_QUERY);
m_xComplexDescriptionAccess.set(m_xInternal,uno::UNO_QUERY);
@@ -71,8 +70,8 @@ DatabaseDataProvider::DatabaseDataProvider(uno::Reference< uno::XComponentContex
uno::Reference<beans::XPropertySet> xProp(static_cast< ::cppu::OWeakObject* >( this ),uno::UNO_QUERY);
m_aFilterManager.initialize( m_xAggregateSet );
m_aParameterManager.initialize( xProp, m_xAggregate );
- m_xAggregateSet->setPropertyValue(PROPERTY_COMMAND_TYPE,uno::makeAny(m_CommandType));
- m_xAggregateSet->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,uno::makeAny(m_EscapeProcessing));
+ m_xAggregateSet->setPropertyValue(PROPERTY_COMMAND_TYPE,uno::Any(m_CommandType));
+ m_xAggregateSet->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,uno::Any(m_EscapeProcessing));
}
osl_atomic_decrement( &m_refCount );
}
@@ -99,7 +98,7 @@ uno::Any DatabaseDataProvider::queryInterface(uno::Type const & type)
// XServiceInfo
OUString SAL_CALL DatabaseDataProvider::getImplementationName( )
{
- return "com.sun.star.comp.dbaccess.DatabaseDataProvider";
+ return u"com.sun.star.comp.dbaccess.DatabaseDataProvider"_ustr;
}
sal_Bool SAL_CALL DatabaseDataProvider::supportsService( const OUString& _rServiceName )
@@ -109,50 +108,46 @@ sal_Bool SAL_CALL DatabaseDataProvider::supportsService( const OUString& _rServi
uno::Sequence< OUString > SAL_CALL DatabaseDataProvider::getSupportedServiceNames( )
{
- return { "com.sun.star.chart2.data.DatabaseDataProvider" };
+ return { u"com.sun.star.chart2.data.DatabaseDataProvider"_ustr };
}
// lang::XInitialization:
void SAL_CALL DatabaseDataProvider::initialize(const uno::Sequence< uno::Any > & aArguments)
{
osl::MutexGuard g(m_aMutex);
- const uno::Any* pIter = aArguments.getConstArray();
- const uno::Any* pEnd = pIter + aArguments.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& arg : aArguments)
{
if ( !m_xActiveConnection.is() )
- (*pIter) >>= m_xActiveConnection;
+ arg >>= m_xActiveConnection;
else if ( !m_xHandler.is() )
- (*pIter) >>= m_xHandler;
+ arg >>= m_xHandler;
}
- m_xAggregateSet->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, uno::makeAny( m_xActiveConnection ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, uno::Any( m_xActiveConnection ) );
}
// chart2::data::XDataProvider:
sal_Bool SAL_CALL DatabaseDataProvider::createDataSourcePossible(const uno::Sequence< beans::PropertyValue > & _aArguments)
{
- const beans::PropertyValue* pArgIter = _aArguments.getConstArray();
- const beans::PropertyValue* pArgEnd = pArgIter + _aArguments.getLength();
- for(;pArgIter != pArgEnd;++pArgIter)
+ for (auto& arg : _aArguments)
{
- if ( pArgIter->Name == "DataRowSource" )
+ if (arg.Name == "DataRowSource")
{
css::chart::ChartDataRowSource eRowSource = css::chart::ChartDataRowSource_COLUMNS;
- pArgIter->Value >>= eRowSource;
+ arg.Value >>= eRowSource;
if ( eRowSource != css::chart::ChartDataRowSource_COLUMNS )
return false;
}
- else if ( pArgIter->Name == "CellRangeRepresentation" )
+ else if (arg.Name == "CellRangeRepresentation")
{
OUString sRange;
- pArgIter->Value >>= sRange;
+ arg.Value >>= sRange;
if ( sRange != "all" )
return false;
}
- else if ( pArgIter->Name == "FirstCellAsLabel" )
+ else if (arg.Name == "FirstCellAsLabel")
{
bool bFirstCellAsLabel = true;
- pArgIter->Value >>= bFirstCellAsLabel;
+ arg.Value >>= bFirstCellAsLabel;
if ( !bFirstCellAsLabel )
return false;
}
@@ -179,9 +174,9 @@ uno::Reference< chart2::data::XDataSource > SAL_CALL DatabaseDataProvider::creat
}
::comphelper::NamedValueCollection aArgs( _aArguments );
- const bool bHasCategories = aArgs.getOrDefault( "HasCategories", true );
+ const bool bHasCategories = aArgs.getOrDefault( u"HasCategories"_ustr, true );
uno::Sequence< OUString > aColumnNames =
- aArgs.getOrDefault( "ColumnDescriptions", uno::Sequence< OUString >() );
+ aArgs.getOrDefault( u"ColumnDescriptions"_ustr, uno::Sequence< OUString >() );
bool bRet = false;
if ( !m_Command.isEmpty() && m_xActiveConnection.is() )
@@ -203,9 +198,8 @@ uno::Reference< chart2::data::XDataSource > SAL_CALL DatabaseDataProvider::creat
uno::Reference< lang::XInitialization> xIni(m_xInternal,uno::UNO_QUERY);
if ( xIni.is() )
{
- uno::Sequence< uno::Any > aInitArgs(1);
- beans::NamedValue aParam("CreateDefaultData",uno::makeAny(true));
- aInitArgs[0] <<= aParam;
+ beans::NamedValue aParam(u"CreateDefaultData"_ustr,uno::Any(true));
+ uno::Sequence< uno::Any > aInitArgs{ uno::Any(aParam) };
xIni->initialize(aInitArgs);
}
}
@@ -217,10 +211,10 @@ uno::Reference< chart2::data::XDataSource > SAL_CALL DatabaseDataProvider::creat
uno::Sequence< beans::PropertyValue > SAL_CALL DatabaseDataProvider::detectArguments(const uno::Reference< chart2::data::XDataSource > & _xDataSource)
{
::comphelper::NamedValueCollection aArguments;
- aArguments.put( "CellRangeRepresentation", uno::Any( OUString( "all" ) ) );
- aArguments.put( "DataRowSource", uno::makeAny( chart::ChartDataRowSource_COLUMNS ) );
+ aArguments.put( u"CellRangeRepresentation"_ustr, uno::Any( u"all"_ustr ) );
+ aArguments.put( u"DataRowSource"_ustr, uno::Any( chart::ChartDataRowSource_COLUMNS ) );
// internal data always contains labels
- aArguments.put( "FirstCellAsLabel", uno::makeAny( true ) );
+ aArguments.put( u"FirstCellAsLabel"_ustr, uno::Any( true ) );
bool bHasCategories = false;
if( _xDataSource.is())
@@ -234,7 +228,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL DatabaseDataProvider::detectArgum
uno::Reference< beans::XPropertySet > xSeqProp( aSequences[nIdx]->getValues(), uno::UNO_QUERY );
OUString aRole;
if ( xSeqProp.is()
- && ( xSeqProp->getPropertyValue( "Role" ) >>= aRole )
+ && ( xSeqProp->getPropertyValue( u"Role"_ustr ) >>= aRole )
&& aRole == "categories"
)
{
@@ -244,7 +238,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL DatabaseDataProvider::detectArgum
}
}
}
- aArguments.put( "HasCategories", uno::makeAny( bHasCategories ) );
+ aArguments.put( u"HasCategories"_ustr, uno::Any( bHasCategories ) );
return aArguments.getPropertyValues();
}
@@ -258,7 +252,7 @@ uno::Any DatabaseDataProvider::impl_getNumberFormatKey_nothrow(const OUString &
std::map< OUString,css::uno::Any>::const_iterator aFind = m_aNumberFormats.find(_sRangeRepresentation);
if ( aFind != m_aNumberFormats.end() )
return aFind->second;
- return uno::makeAny(sal_Int32(0));
+ return uno::Any(sal_Int32(0));
}
uno::Reference< chart2::data::XDataSequence > SAL_CALL DatabaseDataProvider::createDataSequenceByRangeRepresentation(const OUString & _sRangeRepresentation)
@@ -266,7 +260,7 @@ uno::Reference< chart2::data::XDataSequence > SAL_CALL DatabaseDataProvider::cre
osl::MutexGuard g(m_aMutex);
uno::Reference< chart2::data::XDataSequence > xData = m_xInternal->createDataSequenceByRangeRepresentation(_sRangeRepresentation);
uno::Reference<beans::XPropertySet> xProp(xData,uno::UNO_QUERY);
- static const char s_sNumberFormatKey[] = "NumberFormatKey";
+ static constexpr OUString s_sNumberFormatKey = u"NumberFormatKey"_ustr;
if ( xProp.is() && xProp->getPropertySetInfo()->hasPropertyByName(s_sNumberFormatKey) )
{
xProp->setPropertyValue(s_sNumberFormatKey,impl_getNumberFormatKey_nothrow(_sRangeRepresentation));
@@ -276,7 +270,7 @@ uno::Reference< chart2::data::XDataSequence > SAL_CALL DatabaseDataProvider::cre
uno::Reference<chart2::data::XDataSequence>
SAL_CALL DatabaseDataProvider::createDataSequenceByValueArray(
- const OUString& /*aRole*/, const OUString& /*aRangeRepresentation*/ )
+ const OUString& /*aRole*/, const OUString& /*aRangeRepresentation*/, const OUString& /*aRoleQualifier*/ )
{
return uno::Reference<chart2::data::XDataSequence>();
}
@@ -422,7 +416,7 @@ uno::Sequence< OUString > SAL_CALL DatabaseDataProvider::getMasterFields()
void SAL_CALL DatabaseDataProvider::setMasterFields(const uno::Sequence< OUString > & the_value)
{
impl_invalidateParameter_nothrow();
- set("MasterFields",the_value,m_MasterFields);
+ set(u"MasterFields"_ustr,the_value,m_MasterFields);
}
uno::Sequence< OUString > SAL_CALL DatabaseDataProvider::getDetailFields()
@@ -433,7 +427,7 @@ uno::Sequence< OUString > SAL_CALL DatabaseDataProvider::getDetailFields()
void SAL_CALL DatabaseDataProvider::setDetailFields(const uno::Sequence< OUString > & the_value)
{
- set("DetailFields",the_value,m_DetailFields);
+ set(u"DetailFields"_ustr,the_value,m_DetailFields);
}
OUString SAL_CALL DatabaseDataProvider::getCommand()
@@ -447,7 +441,7 @@ void SAL_CALL DatabaseDataProvider::setCommand(const OUString & the_value)
{
osl::MutexGuard g(m_aMutex);
impl_invalidateParameter_nothrow();
- m_xAggregateSet->setPropertyValue( PROPERTY_COMMAND, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_COMMAND, uno::Any( the_value ) );
}
set(PROPERTY_COMMAND,the_value,m_Command);
}
@@ -462,7 +456,7 @@ void SAL_CALL DatabaseDataProvider::setCommandType(::sal_Int32 the_value)
{
{
osl::MutexGuard g(m_aMutex);
- m_xAggregateSet->setPropertyValue( PROPERTY_COMMAND_TYPE, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_COMMAND_TYPE, uno::Any( the_value ) );
}
set(PROPERTY_COMMAND_TYPE,the_value,m_CommandType);
}
@@ -492,7 +486,7 @@ void SAL_CALL DatabaseDataProvider::setApplyFilter( sal_Bool the_value )
{
{
osl::MutexGuard g(m_aMutex);
- m_xAggregateSet->setPropertyValue( PROPERTY_APPLYFILTER, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_APPLYFILTER, uno::Any( the_value ) );
}
set(PROPERTY_APPLYFILTER,static_cast<bool>(the_value),m_ApplyFilter);
}
@@ -507,7 +501,7 @@ void SAL_CALL DatabaseDataProvider::setHavingClause( const OUString& the_value )
{
{
osl::MutexGuard g(m_aMutex);
- m_xAggregateSet->setPropertyValue( PROPERTY_HAVING_CLAUSE, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_HAVING_CLAUSE, uno::Any( the_value ) );
}
set(PROPERTY_HAVING_CLAUSE,the_value,m_HavingClause);
}
@@ -522,7 +516,7 @@ void SAL_CALL DatabaseDataProvider::setGroupBy( const OUString& the_value )
{
{
osl::MutexGuard g(m_aMutex);
- m_xAggregateSet->setPropertyValue( PROPERTY_GROUP_BY, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_GROUP_BY, uno::Any( the_value ) );
}
set(PROPERTY_GROUP_BY,the_value,m_GroupBy);
}
@@ -537,7 +531,7 @@ void SAL_CALL DatabaseDataProvider::setOrder( const OUString& the_value )
{
{
osl::MutexGuard g(m_aMutex);
- m_xAggregateSet->setPropertyValue( PROPERTY_ORDER, uno::makeAny( the_value ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_ORDER, uno::Any( the_value ) );
}
set(PROPERTY_ORDER,the_value,m_Order);
}
@@ -561,7 +555,7 @@ void SAL_CALL DatabaseDataProvider::setEscapeProcessing(sal_Bool the_value)
void SAL_CALL DatabaseDataProvider::setRowLimit(::sal_Int32 the_value)
{
- set("RowLimit",the_value,m_RowLimit);
+ set(u"RowLimit"_ustr,the_value,m_RowLimit);
}
uno::Reference< sdbc::XConnection > SAL_CALL DatabaseDataProvider::getActiveConnection()
@@ -597,13 +591,12 @@ namespace
sal_Int32 nDataType;
ColumnDescription()
- :sName()
- ,nResultSetPosition( 0 )
+ :nResultSetPosition( 0 )
,nDataType( sdbc::DataType::VARCHAR )
{
}
- explicit ColumnDescription( const OUString& i_rName )
- :sName( i_rName )
+ explicit ColumnDescription( OUString i_sName )
+ :sName(std::move( i_sName ))
,nResultSetPosition( 0 )
,nDataType( sdbc::DataType::VARCHAR )
{
@@ -662,13 +655,13 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(bool _bHasCategor
{
const sal_Int32 nAssumedRowSetColumnIndex = _bHasCategories ? 1 : 0;
if ( nAssumedRowSetColumnIndex < aRowSetColumnNames.getLength() )
- aImposedColumnNames[0] = aRowSetColumnNames[ nAssumedRowSetColumnIndex ];
+ aImposedColumnNames.getArray()[0] = aRowSetColumnNames[ nAssumedRowSetColumnIndex ];
}
const sal_Int32 nCount = aImposedColumnNames.getLength();
for ( sal_Int32 i = 0 ; i < nCount; ++i )
{
- const OUString sColumnName( aImposedColumnNames[i] );
+ const OUString& sColumnName( aImposedColumnNames[i] );
if ( !xColumns->hasByName( sColumnName ) )
continue;
@@ -738,11 +731,7 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(bool _bHasCategor
aValue.fill( column.nResultSetPosition, column.nDataType, xRow );
if ( aValue.isNull() )
- {
- double nValue;
- ::rtl::math::setNan( &nValue );
- aRow.push_back( nValue );
- }
+ aRow.push_back( std::numeric_limits<double>::quiet_NaN() );
else
aRow.push_back( aValue.getDouble() );
}
@@ -763,7 +752,7 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(bool _bHasCategor
{
aRowLabels.push_back(OUString::number(h+1));
std::vector< double > aRow;
- const sal_Int32 nSize = SAL_N_ELEMENTS(fDefaultData);
+ const sal_Int32 nSize = std::size(fDefaultData);
for (size_t j = 0; j < (aColumns.size()-1); ++j,++k)
{
if ( k >= nSize )
@@ -800,7 +789,7 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(bool _bHasCategor
void DatabaseDataProvider::impl_fillRowSet_throw()
{
- m_xAggregateSet->setPropertyValue( PROPERTY_FILTER, uno::makeAny( getFilter() ) );
+ m_xAggregateSet->setPropertyValue( PROPERTY_FILTER, uno::Any( getFilter() ) );
uno::Reference< sdbc::XParameters> xParam(m_xRowSet,uno::UNO_QUERY_THROW);
xParam->clearParameters( );
}
diff --git a/dbaccess/source/core/misc/PropertyForward.cxx b/dbaccess/source/core/misc/PropertyForward.cxx
index 239bd422fd41..07e1068f695f 100644
--- a/dbaccess/source/core/misc/PropertyForward.cxx
+++ b/dbaccess/source/core/misc/PropertyForward.cxx
@@ -24,7 +24,8 @@
#include <com/sun/star/sdbcx/XAppend.hpp>
#include <comphelper/property.hxx>
-#include <tools/diagnose_ex.h>
+#include <utility>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -37,10 +38,10 @@ namespace dbaccess
OPropertyForward::OPropertyForward( const Reference< XPropertySet>& _xSource, const Reference< XNameAccess>& _xDestContainer,
- const OUString& _sName, const std::vector< OUString>& _aPropertyList )
+ OUString _sName, const std::vector< OUString>& _aPropertyList )
:m_xSource( _xSource, UNO_SET_THROW )
,m_xDestContainer( _xDestContainer, UNO_SET_THROW )
- ,m_sName( _sName )
+ ,m_sName(std::move( _sName ))
,m_bInInsert( false )
{
diff --git a/dbaccess/source/core/misc/apitools.cxx b/dbaccess/source/core/misc/apitools.cxx
index c080979ba042..2693f59eebb9 100644
--- a/dbaccess/source/core/misc/apitools.cxx
+++ b/dbaccess/source/core/misc/apitools.cxx
@@ -29,7 +29,7 @@ using namespace osl;
// various helper functions
// OSubComponent
OSubComponent::OSubComponent(Mutex& _rMutex, const Reference< XInterface > & xParent)
- :OComponentHelper(_rMutex)
+ :WeakComponentImplHelper(_rMutex)
,m_xParent(xParent)
{
@@ -41,74 +41,51 @@ OSubComponent::~OSubComponent()
}
-// css::lang::XTypeProvider
-Sequence< Type > OSubComponent::getTypes()
-{
- OTypeCollection aTypes(cppu::UnoType<XComponent>::get(),
- cppu::UnoType<XTypeProvider>::get(),
- cppu::UnoType<XWeak>::get());
-
- return aTypes.getTypes();
-}
-
// XInterface
-void OSubComponent::release() throw ( )
+void OSubComponent::release() noexcept
{
- Reference< XInterface > x( xDelegator );
- if (! x.is())
+ if (osl_atomic_decrement( &m_refCount ) == 0 )
{
- if (osl_atomic_decrement( &m_refCount ) == 0 )
+ if (! rBHelper.bDisposed)
{
- if (! rBHelper.bDisposed)
+ // *before* again incrementing our ref count, ensure that our weak connection point
+ // will not create references to us anymore (via XAdapter::queryAdapted)
+ disposeWeakConnectionPoint();
+
+ Reference< XInterface > xHoldAlive( *this );
+ // remember the parent
+ Reference< XInterface > xParent;
{
- // *before* again incrementing our ref count, ensure that our weak connection point
- // will not create references to us anymore (via XAdapter::queryAdapted)
- disposeWeakConnectionPoint();
-
- Reference< XInterface > xHoldAlive( *this );
- // remember the parent
- Reference< XInterface > xParent;
- {
- MutexGuard aGuard( rBHelper.rMutex );
- xParent = m_xParent;
- m_xParent = nullptr;
- }
-
- SAL_WARN_IF( m_refCount != 1, "dbaccess.core", "OSubComponent::release: invalid ref count (before dispose)!" );
-
- // First dispose
- dispose();
-
- // only the alive ref holds the object
- SAL_WARN_IF( m_refCount != 1, "dbaccess.core", "OSubComponent::release: invalid ref count (after dispose)!" );
-
- // release the parent in the ~
- if (xParent.is())
- {
- MutexGuard aGuard( rBHelper.rMutex );
- m_xParent = xParent;
- }
-
- // destroy the object if xHoldAlive decrement the refcount to 0
- return;
+ MutexGuard aGuard( rBHelper.rMutex );
+ xParent = m_xParent;
+ m_xParent = nullptr;
}
- }
- // restore the reference count
- osl_atomic_increment( &m_refCount );
- }
- // as we cover the job of the componenthelper we use the ...
- OWeakAggObject::release();
-}
+ SAL_WARN_IF( m_refCount != 1, "dbaccess.core", "OSubComponent::release: invalid ref count (before dispose)!" );
-Any OSubComponent::queryInterface( const Type & rType )
-{
- Any aReturn;
- if (!rType.equals(cppu::UnoType<XAggregation>::get()))
- aReturn = OComponentHelper::queryInterface(rType);
+ // First dispose
+ dispose();
+
+ // only the alive ref holds the object
+ SAL_WARN_IF( m_refCount != 1, "dbaccess.core", "OSubComponent::release: invalid ref count (after dispose)!" );
+
+ // release the parent in the ~
+ if (xParent.is())
+ {
+ MutexGuard aGuard( rBHelper.rMutex );
+ m_xParent = std::move(xParent);
+ }
+
+ // destroy the object if xHoldAlive decrement the refcount to 0
+ return;
+ }
+ }
+ // restore the reference count
+ osl_atomic_increment( &m_refCount );
- return aReturn;
+ // as we cover the job of the WeakComponentImplHelper we use the ...
+ OWeakObject::release();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/core/misc/dsntypes.cxx b/dbaccess/source/core/misc/dsntypes.cxx
index 8256f370cce3..f3d792b4f59e 100644
--- a/dbaccess/source/core/misc/dsntypes.cxx
+++ b/dbaccess/source/core/misc/dsntypes.cxx
@@ -17,13 +17,17 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_java.h>
#include <dsntypes.hxx>
#include <unotools/confignode.hxx>
+#include <o3tl/safeint.hxx>
+#include <o3tl/string_view.hxx>
#include <osl/diagnose.h>
-#include <svtools/miscopt.hxx>
#include <tools/wldcrd.hxx>
#include <osl/file.hxx>
+#include <officecfg/Office/Common.hxx>
#include <comphelper/string.hxx>
+#include <utility>
namespace dbaccess
{
@@ -31,17 +35,16 @@ namespace dbaccess
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
namespace
{
- void lcl_extractHostAndPort(const OUString& _sUrl,OUString& _sHostname,sal_Int32& _nPortNumber)
+ void lcl_extractHostAndPort(std::u16string_view _sUrl, OUString& _sHostname, sal_Int32& _nPortNumber)
{
if ( comphelper::string::getTokenCount(_sUrl, ':') >= 2 )
{
sal_Int32 nPos {0};
- _sHostname = _sUrl.getToken(0, ':', nPos);
- _nPortNumber = _sUrl.getToken(0, ':', nPos).toInt32();
+ _sHostname = o3tl::getToken(_sUrl, 0, ':', nPos);
+ _nPortNumber = o3tl::toInt32(o3tl::getToken(_sUrl, 0, ':', nPos));
}
}
}
@@ -52,13 +55,10 @@ ODsnTypeCollection::ODsnTypeCollection(const css::uno::Reference< css::uno::XCom
,m_nLivingIterators(0)
#endif
{
- const uno::Sequence< OUString > aURLs = m_aDriverConfig.getURLs();
- const OUString* pIter = aURLs.getConstArray();
- const OUString* pEnd = pIter + aURLs.getLength();
- for(;pIter != pEnd;++pIter )
+ for (auto& url : m_aDriverConfig.getURLs())
{
- m_aDsnPrefixes.push_back(*pIter);
- m_aDsnTypesDisplayNames.push_back(m_aDriverConfig.getDriverTypeDisplayName(*pIter));
+ m_aDsnPrefixes.push_back(url);
+ m_aDsnTypesDisplayNames.push_back(m_aDriverConfig.getDriverTypeDisplayName(url));
}
OSL_ENSURE(m_aDsnTypesDisplayNames.size() == m_aDsnPrefixes.size(),
@@ -72,18 +72,18 @@ ODsnTypeCollection::~ODsnTypeCollection()
#endif
}
-OUString ODsnTypeCollection::getTypeDisplayName(const OUString& _sURL) const
+OUString ODsnTypeCollection::getTypeDisplayName(std::u16string_view _sURL) const
{
return m_aDriverConfig.getDriverTypeDisplayName(_sURL);
}
-OUString ODsnTypeCollection::cutPrefix(const OUString& _sURL) const
+OUString ODsnTypeCollection::cutPrefix(std::u16string_view _sURL) const
{
OUString sRet;
OUString sOldPattern;
// on Windows or with gen rendering, the urls may begin with an ~
- const OUString& sCleanURL = comphelper::string::stripStart(_sURL, '~');
+ std::u16string_view sCleanURL = comphelper::string::stripStart(_sURL, '~');
for (auto const& dsnPrefix : m_aDsnPrefixes)
{
@@ -94,8 +94,8 @@ OUString ODsnTypeCollection::cutPrefix(const OUString& _sURL) const
// foo*
// that is, the very concept of "prefix" applies.
OUString prefix(comphelper::string::stripEnd(dsnPrefix, '*'));
- OSL_ENSURE(prefix.getLength() <= sCleanURL.getLength(), "How can A match B when A shorter than B?");
- sRet = sCleanURL.copy(prefix.getLength());
+ OSL_ENSURE(o3tl::make_unsigned(prefix.getLength()) <= sCleanURL.size(), "How can A match B when A shorter than B?");
+ sRet = sCleanURL.substr(prefix.getLength());
sOldPattern = dsnPrefix;
}
}
@@ -103,7 +103,7 @@ OUString ODsnTypeCollection::cutPrefix(const OUString& _sURL) const
return sRet;
}
-OUString ODsnTypeCollection::getPrefix(const OUString& _sURL) const
+OUString ODsnTypeCollection::getPrefix(std::u16string_view _sURL) const
{
OUString sRet;
OUString sOldPattern;
@@ -116,7 +116,7 @@ OUString ODsnTypeCollection::getPrefix(const OUString& _sURL) const
// foo*
// that is, the very concept of "prefix" applies.
sRet = comphelper::string::stripEnd(dsnPrefix, '*');
- OSL_ENSURE(sRet.getLength() <= _sURL.getLength(), "How can A match B when A shorter than B?");
+ OSL_ENSURE(sRet.getLength() <= static_cast<sal_Int32>(_sURL.size()), "How can A match B when A shorter than B?");
sOldPattern = dsnPrefix;
}
}
@@ -124,13 +124,13 @@ OUString ODsnTypeCollection::getPrefix(const OUString& _sURL) const
return sRet;
}
-bool ODsnTypeCollection::hasDriver( const char* _pAsciiPattern ) const
+bool ODsnTypeCollection::hasDriver( std::u16string_view _rAsciiPattern ) const
{
- OUString sPrefix( getPrefix( OUString::createFromAscii( _pAsciiPattern ) ) );
+ OUString sPrefix( getPrefix( _rAsciiPattern ) );
return !sPrefix.isEmpty();
}
-bool ODsnTypeCollection::isConnectionUrlRequired(const OUString& _sURL) const
+bool ODsnTypeCollection::isConnectionUrlRequired(std::u16string_view _sURL) const
{
OUString sRet;
OUString sOldPattern;
@@ -146,31 +146,28 @@ bool ODsnTypeCollection::isConnectionUrlRequired(const OUString& _sURL) const
return !sRet.isEmpty() && sRet[sRet.getLength()-1] == '*';
}
-OUString ODsnTypeCollection::getMediaType(const OUString& _sURL) const
+OUString ODsnTypeCollection::getMediaType(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("MediaType",OUString());
+ return aFeatures.getOrDefault(u"MediaType"_ustr,OUString());
}
-OUString ODsnTypeCollection::getDatasourcePrefixFromMediaType(const OUString& _sMediaType,const OUString& _sExtension)
+OUString ODsnTypeCollection::getDatasourcePrefixFromMediaType(std::u16string_view _sMediaType,std::u16string_view _sExtension)
{
OUString sURL, sFallbackURL;
- const uno::Sequence< OUString > aURLs = m_aDriverConfig.getURLs();
- const OUString* pIter = aURLs.getConstArray();
- const OUString* pEnd = pIter + aURLs.getLength();
- for(;pIter != pEnd;++pIter )
+ for (auto& url : m_aDriverConfig.getURLs())
{
- const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(*pIter);
- if ( aFeatures.getOrDefault("MediaType",OUString()) == _sMediaType )
+ const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(url);
+ if ( aFeatures.getOrDefault(u"MediaType"_ustr,OUString()) == _sMediaType )
{
- const OUString sFileExtension = aFeatures.getOrDefault("Extension",OUString());
+ const OUString sFileExtension = aFeatures.getOrDefault(u"Extension"_ustr,OUString());
if ( _sExtension == sFileExtension )
{
- sURL = *pIter;
+ sURL = url;
break;
}
- if ( sFileExtension.isEmpty() && !_sExtension.isEmpty() )
- sFallbackURL = *pIter;
+ if ( sFileExtension.isEmpty() && !_sExtension.empty() )
+ sFallbackURL = url;
}
}
@@ -225,8 +222,7 @@ void ODsnTypeCollection::extractHostNamePort(const OUString& _rDsn,OUString& _sD
_rsHostname = sUrl.getToken(0,'/');
_sDatabaseName = sUrl.copy(sUrl.lastIndexOf('/')+1);
}
- else if ( _rDsn.startsWithIgnoreAsciiCase("sdbc:ado:access:Provider=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=")
- || _rDsn.startsWithIgnoreAsciiCase("sdbc:ado:access:PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=") )
+ else if ( _rDsn.startsWithIgnoreAsciiCase("sdbc:ado:access:"))
{
OUString sNewFileName;
if ( ::osl::FileBase::getFileURLFromSystemPath( sUrl, sNewFileName ) == ::osl::FileBase::E_None )
@@ -236,64 +232,63 @@ void ODsnTypeCollection::extractHostNamePort(const OUString& _rDsn,OUString& _sD
}
}
-OUString ODsnTypeCollection::getJavaDriverClass(const OUString& _sURL) const
+OUString ODsnTypeCollection::getJavaDriverClass(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getProperties(_sURL);
- return aFeatures.getOrDefault("JavaDriverClass",OUString());
+ return aFeatures.getOrDefault(u"JavaDriverClass"_ustr,OUString());
}
-bool ODsnTypeCollection::isFileSystemBased(const OUString& _sURL) const
+bool ODsnTypeCollection::isFileSystemBased(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("FileSystemBased",false);
+ return aFeatures.getOrDefault(u"FileSystemBased"_ustr,false);
}
-bool ODsnTypeCollection::supportsTableCreation(const OUString& _sURL) const
+bool ODsnTypeCollection::supportsTableCreation(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("SupportsTableCreation",false);
+ return aFeatures.getOrDefault(u"SupportsTableCreation"_ustr,false);
}
-bool ODsnTypeCollection::supportsColumnDescription(const OUString& _sURL) const
+bool ODsnTypeCollection::supportsColumnDescription(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("SupportsColumnDescription",false);
+ return aFeatures.getOrDefault(u"SupportsColumnDescription"_ustr,false);
}
-bool ODsnTypeCollection::supportsBrowsing(const OUString& _sURL) const
+bool ODsnTypeCollection::supportsBrowsing(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("SupportsBrowsing",false);
+ return aFeatures.getOrDefault(u"SupportsBrowsing"_ustr,false);
}
-bool ODsnTypeCollection::supportsDBCreation(const OUString& _sURL) const
+bool ODsnTypeCollection::supportsDBCreation(std::u16string_view _sURL) const
{
const ::comphelper::NamedValueCollection& aFeatures = m_aDriverConfig.getMetaData(_sURL);
- return aFeatures.getOrDefault("SupportsDBCreation",false);
+ return aFeatures.getOrDefault(u"SupportsDBCreation"_ustr,false);
}
-Sequence<PropertyValue> ODsnTypeCollection::getDefaultDBSettings( const OUString& _sURL ) const
+Sequence<PropertyValue> ODsnTypeCollection::getDefaultDBSettings( std::u16string_view _sURL ) const
{
const ::comphelper::NamedValueCollection& aProperties = m_aDriverConfig.getProperties(_sURL);
return aProperties.getPropertyValues();
}
-bool ODsnTypeCollection::isEmbeddedDatabase( const OUString& _sURL )
+bool ODsnTypeCollection::isEmbeddedDatabase( std::u16string_view _sURL )
{
- return _sURL.startsWith( "sdbc:embedded:" );
+ return o3tl::starts_with( _sURL, u"sdbc:embedded:" );
}
OUString ODsnTypeCollection::getEmbeddedDatabase()
{
- SvtMiscOptions aMiscOptions;
- if (aMiscOptions.IsExperimentalMode())
- return "sdbc:embedded:firebird";
+ if (!HAVE_FEATURE_JAVA || officecfg::Office::Common::Misc::ExperimentalMode::get())
+ return u"sdbc:embedded:firebird"_ustr;
else
- return "sdbc:embedded:hsqldb";
+ return u"sdbc:embedded:hsqldb"_ustr;
}
-DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
+DATASOURCE_TYPE ODsnTypeCollection::determineType(std::u16string_view _rDsn) const
{
OUString sDsn(comphelper::string::stripEnd(_rDsn, '*'));
sal_Int32 nSeparator = sDsn.indexOf(u':');
@@ -321,6 +316,9 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
if (sDsn.equalsIgnoreAsciiCase("sdbc:embedded:firebird"))
return DST_EMBEDDED_FIREBIRD;
+ if (sDsn.startsWithIgnoreAsciiCase("sdbc:embedded:"))
+ return DST_EMBEDDED_UNKNOWN;
+
// find second :
nSeparator = sDsn.indexOf(u':', nSeparator + 1);
if (-1 == nSeparator)
@@ -334,10 +332,7 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
{
if (sDsn.startsWithIgnoreAsciiCase("sdbc:ado:access:"))
{
- if (sDsn.startsWithIgnoreAsciiCase("sdbc:ado:access:Provider=Microsoft.ACE.OLEDB.12.0;"))
- return DST_MSACCESS_2007;
- else
- return DST_MSACCESS;
+ return DST_MSACCESS;
}
return DST_ADO;
}
@@ -348,8 +343,8 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
const DATASOURCE_TYPE eType;
const bool bMatchComplete;
- KnownPrefix( const OUString &_s, const DATASOURCE_TYPE _t, const bool _m )
- :sPrefix( _s )
+ KnownPrefix( OUString _s, const DATASOURCE_TYPE _t, const bool _m )
+ :sPrefix(std::move( _s ))
,eType ( _t )
,bMatchComplete( _m )
{
@@ -369,28 +364,28 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
};
const KnownPrefix aKnowPrefixes[] =
{
- KnownPrefix( "sdbc:calc:", DST_CALC, false ),
- KnownPrefix( "sdbc:writer:", DST_WRITER, false ),
- KnownPrefix( "sdbc:flat:", DST_FLAT, false ),
- KnownPrefix( "sdbc:odbc:", DST_ODBC, false ),
- KnownPrefix( "sdbc:dbase:", DST_DBASE, false ),
- KnownPrefix( "sdbc:firebird:", DST_FIREBIRD, false ),
- KnownPrefix( "sdbc:mysql:odbc:", DST_MYSQL_ODBC, false ),
- KnownPrefix( "sdbc:mysql:jdbc:", DST_MYSQL_JDBC, false ),
- KnownPrefix( "sdbc:mysql:mysqlc:", DST_MYSQL_NATIVE, false ),
- KnownPrefix( "sdbc:mysqlc:", DST_MYSQL_NATIVE_DIRECT,false ),
- KnownPrefix( "sdbc:postgresql:", DST_POSTGRES ,false ),
-
- KnownPrefix( "sdbc:address:mozilla:", DST_MOZILLA, true ),
- KnownPrefix( "sdbc:address:thunderbird:", DST_THUNDERBIRD, true ),
- KnownPrefix( "sdbc:address:ldap:", DST_LDAP, true ),
- KnownPrefix( "sdbc:address:outlook", DST_OUTLOOK, true ),
- KnownPrefix( "sdbc:address:outlookexp", DST_OUTLOOKEXP, true ),
- KnownPrefix( "sdbc:address:evolution:ldap", DST_EVOLUTION_LDAP, true ),
- KnownPrefix( "sdbc:address:evolution:groupwise",DST_EVOLUTION_GROUPWISE,true ),
- KnownPrefix( "sdbc:address:evolution:local", DST_EVOLUTION, true ),
- KnownPrefix( "sdbc:address:kab", DST_KAB, true ),
- KnownPrefix( "sdbc:address:macab", DST_MACAB, true )
+ KnownPrefix( u"sdbc:calc:"_ustr, DST_CALC, false ),
+ KnownPrefix( u"sdbc:writer:"_ustr, DST_WRITER, false ),
+ KnownPrefix( u"sdbc:flat:"_ustr, DST_FLAT, false ),
+ KnownPrefix( u"sdbc:odbc:"_ustr, DST_ODBC, false ),
+ KnownPrefix( u"sdbc:dbase:"_ustr, DST_DBASE, false ),
+ KnownPrefix( u"sdbc:firebird:"_ustr, DST_FIREBIRD, false ),
+ KnownPrefix( u"sdbc:mysql:odbc:"_ustr, DST_MYSQL_ODBC, false ),
+ KnownPrefix( u"sdbc:mysql:jdbc:"_ustr, DST_MYSQL_JDBC, false ),
+ KnownPrefix( u"sdbc:mysql:mysqlc:"_ustr, DST_MYSQL_NATIVE, false ),
+ KnownPrefix( u"sdbc:mysqlc:"_ustr, DST_MYSQL_NATIVE_DIRECT,false ),
+ KnownPrefix( u"sdbc:postgresql:"_ustr, DST_POSTGRES ,false ),
+
+ KnownPrefix( u"sdbc:address:mozilla:"_ustr, DST_MOZILLA, true ),
+ KnownPrefix( u"sdbc:address:thunderbird:"_ustr, DST_THUNDERBIRD, true ),
+ KnownPrefix( u"sdbc:address:ldap:"_ustr, DST_LDAP, true ),
+ KnownPrefix( u"sdbc:address:outlook"_ustr, DST_OUTLOOK, true ),
+ KnownPrefix( u"sdbc:address:outlookexp"_ustr, DST_OUTLOOKEXP, true ),
+ KnownPrefix( u"sdbc:address:evolution:ldap"_ustr, DST_EVOLUTION_LDAP, true ),
+ KnownPrefix( u"sdbc:address:evolution:groupwise"_ustr,DST_EVOLUTION_GROUPWISE,true ),
+ KnownPrefix( u"sdbc:address:evolution:local"_ustr, DST_EVOLUTION, true ),
+ KnownPrefix( u"sdbc:address:kab"_ustr, DST_KAB, true ),
+ KnownPrefix( u"sdbc:address:macab"_ustr, DST_MACAB, true )
};
for (const auto & aKnowPrefixe : aKnowPrefixes)
@@ -404,7 +399,7 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
return DST_UNKNOWN;
}
-void ODsnTypeCollection::fillPageIds(const OUString& _sURL,std::vector<sal_Int16>& _rOutPathIds) const
+void ODsnTypeCollection::fillPageIds(std::u16string_view _sURL,std::vector<sal_Int16>& _rOutPathIds) const
{
DATASOURCE_TYPE eType = determineType(_sURL);
switch(eType)
@@ -443,11 +438,13 @@ void ODsnTypeCollection::fillPageIds(const OUString& _sURL,std::vector<sal_Int16
case DST_ORACLE_JDBC:
_rOutPathIds.push_back(PAGE_DBSETUPWIZARD_ORACLE);
break;
+ case DST_POSTGRES:
+ _rOutPathIds.push_back(PAGE_DBSETUPWIZARD_POSTGRES);
+ break;
case DST_LDAP:
_rOutPathIds.push_back(PAGE_DBSETUPWIZARD_LDAP);
break;
case DST_MSACCESS:
- case DST_MSACCESS_2007:
_rOutPathIds.push_back(PAGE_DBSETUPWIZARD_MSACCESS);
break;
case DST_OUTLOOKEXP:
@@ -461,6 +458,7 @@ void ODsnTypeCollection::fillPageIds(const OUString& _sURL,std::vector<sal_Int16
case DST_MACAB:
case DST_EMBEDDED_HSQLDB:
case DST_EMBEDDED_FIREBIRD:
+ case DST_EMBEDDED_UNKNOWN:
break;
default:
_rOutPathIds.push_back(PAGE_DBSETUPWIZARD_USERDEFINED);
@@ -468,7 +466,7 @@ void ODsnTypeCollection::fillPageIds(const OUString& _sURL,std::vector<sal_Int16
}
}
-OUString ODsnTypeCollection::getType(const OUString& _sURL) const
+OUString ODsnTypeCollection::getType(std::u16string_view _sURL) const
{
OUString sOldPattern;
for (auto const& dsnPrefix : m_aDsnPrefixes)
@@ -482,7 +480,7 @@ OUString ODsnTypeCollection::getType(const OUString& _sURL) const
return sOldPattern;
}
-sal_Int32 ODsnTypeCollection::getIndexOf(const OUString& _sURL) const
+sal_Int32 ODsnTypeCollection::getIndexOf(std::u16string_view _sURL) const
{
sal_Int32 nRet = -1;
OUString sOldPattern;
@@ -511,7 +509,7 @@ ODsnTypeCollection::TypeIterator::TypeIterator(const ODsnTypeCollection* _pConta
:m_pContainer(_pContainer)
,m_nPosition(_nInitialPos)
{
- OSL_ENSURE(m_pContainer, "ODsnTypeCollection::TypeIterator::TypeIterator : invalid container!");
+ assert(m_pContainer && "ODsnTypeCollection::TypeIterator::TypeIterator : invalid container!");
#if OSL_DEBUG_LEVEL > 0
++const_cast<ODsnTypeCollection*>(m_pContainer)->m_nLivingIterators;
#endif
diff --git a/dbaccess/source/core/misc/migrwarndlg.cxx b/dbaccess/source/core/misc/migrwarndlg.cxx
index d1712fba3f16..034d52829be3 100644
--- a/dbaccess/source/core/misc/migrwarndlg.cxx
+++ b/dbaccess/source/core/misc/migrwarndlg.cxx
@@ -12,8 +12,9 @@
namespace dbaccess
{
MigrationWarnDialog::MigrationWarnDialog(weld::Window* pParent)
- : MessageDialogController(pParent, "dbaccess/ui/migrwarndlg.ui", "MigrationWarnDialog")
- , m_xLater(m_xBuilder->weld_button("no"))
+ : MessageDialogController(pParent, u"dbaccess/ui/migrwarndlg.ui"_ustr,
+ u"MigrationWarnDialog"_ustr)
+ , m_xLater(m_xBuilder->weld_button(u"no"_ustr))
{
m_xLater->grab_focus();
}
diff --git a/dbaccess/source/core/misc/objectnameapproval.cxx b/dbaccess/source/core/misc/objectnameapproval.cxx
index 3ec15caaa4fd..fa03e81e3d09 100644
--- a/dbaccess/source/core/misc/objectnameapproval.cxx
+++ b/dbaccess/source/core/misc/objectnameapproval.cxx
@@ -23,35 +23,23 @@
#include <com/sun/star/sdb/tools/XConnectionTools.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
-#include <cppuhelper/weakref.hxx>
-
namespace dbaccess
{
using ::com::sun::star::sdbc::XConnection;
- using ::com::sun::star::uno::WeakReference;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::lang::DisposedException;
using ::com::sun::star::sdb::tools::XConnectionTools;
using ::com::sun::star::uno::UNO_QUERY_THROW;
using ::com::sun::star::sdb::tools::XObjectNames;
- using ::com::sun::star::uno::XInterface;
namespace CommandType = com::sun::star::sdb::CommandType;
- // ObjectNameApproval_Impl
- struct ObjectNameApproval_Impl
- {
- WeakReference< XConnection > aConnection;
- sal_Int32 nCommandType;
- };
-
// ObjectNameApproval
ObjectNameApproval::ObjectNameApproval( const Reference< XConnection >& _rxConnection, ObjectType _eType )
- :m_pImpl( new ObjectNameApproval_Impl )
{
- m_pImpl->aConnection = _rxConnection;
- m_pImpl->nCommandType = _eType == TypeQuery ? CommandType::QUERY : CommandType::TABLE;
+ mxConnection = _rxConnection;
+ mnCommandType = _eType == TypeQuery ? CommandType::QUERY : CommandType::TABLE;
}
ObjectNameApproval::~ObjectNameApproval()
@@ -60,13 +48,13 @@ namespace dbaccess
void ObjectNameApproval::approveElement( const OUString& _rName )
{
- Reference< XConnection > xConnection( m_pImpl->aConnection );
+ Reference< XConnection > xConnection( mxConnection );
if ( !xConnection.is() )
throw DisposedException();
Reference< XConnectionTools > xConnectionTools( xConnection, UNO_QUERY_THROW );
Reference< XObjectNames > xObjectNames( xConnectionTools->getObjectNames(), css::uno::UNO_SET_THROW );
- xObjectNames->checkNameForCreate( m_pImpl->nCommandType, _rName );
+ xObjectNames->checkNameForCreate( mnCommandType, _rName );
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/misc/sdbcoretools.cxx b/dbaccess/source/core/misc/sdbcoretools.cxx
index 70de1d1944ef..f21344430333 100644
--- a/dbaccess/source/core/misc/sdbcoretools.cxx
+++ b/dbaccess/source/core/misc/sdbcoretools.cxx
@@ -27,19 +27,16 @@
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <com/sun/star/embed/ElementModes.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/interaction.hxx>
#include <rtl/ref.hxx>
-#include <rtl/ustrbuf.hxx>
namespace dbaccess
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
- using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::task;
@@ -80,8 +77,8 @@ namespace dbaccess
::rtl::Reference pRequest( new ::comphelper::OInteractionRequest( _rError ) );
::rtl::Reference pApprove( new ::comphelper::OInteractionApprove );
- pRequest->addContinuation( pApprove.get() );
- Optional< OUString > aMessage = xStringResolver->getStringFromInformationalRequest( pRequest.get() );
+ pRequest->addContinuation( pApprove );
+ Optional< OUString > aMessage = xStringResolver->getStringFromInformationalRequest( pRequest );
if ( aMessage.IsPresent )
sDisplayMessage = aMessage.Value;
}
@@ -95,12 +92,9 @@ namespace dbaccess
Exception aExcept;
_rError >>= aExcept;
- OUStringBuffer aBuffer;
- aBuffer.append( _rError.getValueTypeName() );
- aBuffer.append( ":\n" );
- aBuffer.append( aExcept.Message );
-
- sDisplayMessage = aBuffer.makeStringAndClear();
+ sDisplayMessage = _rError.getValueTypeName() +
+ ":\n" +
+ aExcept.Message;
}
return sDisplayMessage;
@@ -117,7 +111,7 @@ namespace dbaccess
try
{
Reference< XPropertySet > xStorageProps( _rxStorage, UNO_QUERY_THROW );
- xStorageProps->getPropertyValue( "OpenMode" ) >>= nMode;
+ xStorageProps->getPropertyValue( u"OpenMode"_ustr ) >>= nMode;
}
catch( const Exception& )
{
diff --git a/dbaccess/source/core/misc/veto.cxx b/dbaccess/source/core/misc/veto.cxx
index d2596d4e1e11..07aa9567ec46 100644
--- a/dbaccess/source/core/misc/veto.cxx
+++ b/dbaccess/source/core/misc/veto.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <utility>
#include <veto.hxx>
namespace dbaccess
@@ -25,8 +26,8 @@ namespace dbaccess
using ::com::sun::star::uno::Any;
// Veto
- Veto::Veto( const Any& _rDetails )
- :m_aDetails( _rDetails )
+ Veto::Veto( Any _aDetails )
+ :m_aDetails(std::move( _aDetails ))
{
}
diff --git a/dbaccess/source/core/recovery/dbdocrecovery.cxx b/dbaccess/source/core/recovery/dbdocrecovery.cxx
index ab5947d91261..d367517a0315 100644
--- a/dbaccess/source/core/recovery/dbdocrecovery.cxx
+++ b/dbaccess/source/core/recovery/dbdocrecovery.cxx
@@ -28,9 +28,10 @@
#include <com/sun/star/io/TextInputStream.hpp>
#include <com/sun/star/util/XModifiable.hpp>
+#include <o3tl/string_view.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -65,30 +66,30 @@ namespace dbaccess
o_rBuffer.append( sal_Unicode( i_rComponentDesc.second.bForEditing ? '1' : '0' ) );
}
- bool lcl_extractCompDesc( const OUString& i_rIniLine, OUString& o_rStorName, SubComponentDescriptor& o_rCompDesc )
+ bool lcl_extractCompDesc( std::u16string_view i_rIniLine, OUString& o_rStorName, SubComponentDescriptor& o_rCompDesc )
{
- const sal_Int32 nEqualSignPos = i_rIniLine.indexOf( '=' );
- if ( nEqualSignPos < 1 )
+ const size_t nEqualSignPos = i_rIniLine.find( '=' );
+ if ( nEqualSignPos == 0 || nEqualSignPos == std::u16string_view::npos )
{
OSL_FAIL( "lcl_extractCompDesc: invalid map file entry - unexpected pos of '='" );
return false;
}
- o_rStorName = i_rIniLine.copy( 0, nEqualSignPos );
+ o_rStorName = i_rIniLine.substr( 0, nEqualSignPos );
- const sal_Int32 nCommaPos = i_rIniLine.lastIndexOf( ',' );
- if ( nCommaPos != i_rIniLine.getLength() - 2 )
+ const size_t nCommaPos = i_rIniLine.rfind( ',' );
+ if ( nCommaPos != i_rIniLine.size() - 2 )
{
OSL_FAIL( "lcl_extractCompDesc: invalid map file entry - unexpected pos of ','" );
return false;
}
- o_rCompDesc.sName = i_rIniLine.copy( nEqualSignPos + 1, nCommaPos - nEqualSignPos - 1 );
+ o_rCompDesc.sName = i_rIniLine.substr( nEqualSignPos + 1, nCommaPos - nEqualSignPos - 1 );
o_rCompDesc.bForEditing = ( i_rIniLine[ nCommaPos + 1 ] == '1' );
return true;
}
- const char sRecoveryDataSubStorageName[] = "recovery";
+ constexpr OUString sRecoveryDataSubStorageName = u"recovery"_ustr;
- const char sObjectMapStreamName[] = "storage-component-map.ini";
+ constexpr OUString sObjectMapStreamName = u"storage-component-map.ini"_ustr;
void lcl_writeObjectMap_throw( const Reference<XComponentContext> & i_rContext, const Reference< XStorage >& i_rStorage,
const MapStringToCompDesc& i_mapStorageToCompDesc )
@@ -99,7 +100,7 @@ namespace dbaccess
StorageTextOutputStream aTextOutput( i_rContext, i_rStorage, sObjectMapStreamName );
- aTextOutput.writeLine( "[storages]" );
+ aTextOutput.writeLine( u"[storages]"_ustr );
for (auto const& elem : i_mapStorageToCompDesc)
{
@@ -112,12 +113,12 @@ namespace dbaccess
aTextOutput.writeLine();
}
- bool lcl_isSectionStart( const OUString& i_rIniLine, OUString& o_rSectionName )
+ bool lcl_isSectionStart( std::u16string_view i_rIniLine, OUString& o_rSectionName )
{
- const sal_Int32 nLen = i_rIniLine.getLength();
- if ( i_rIniLine.startsWith("[") && i_rIniLine.endsWith("]") )
+ const size_t nLen = i_rIniLine.size();
+ if ( o3tl::starts_with(i_rIniLine, u"[") && o3tl::ends_with(i_rIniLine, u"]") )
{
- o_rSectionName = i_rIniLine.copy( 1, nLen -2 );
+ o_rSectionName = i_rIniLine.substr( 1, nLen -2 );
return true;
}
return false;
@@ -144,7 +145,7 @@ namespace dbaccess
sObjectMapStreamName, ElementModes::READ ), UNO_SET_THROW );
Reference< XTextInputStream2 > xTextInput = TextInputStream::create( i_rxContext );
- xTextInput->setEncoding( "UTF-8" );
+ xTextInput->setEncoding( u"UTF-8"_ustr );
xTextInput->setInputStream( xIniStream->getInputStream() );
OUString sCurrentSection;
@@ -177,7 +178,7 @@ namespace dbaccess
SubComponentDescriptor aCompDesc;
if ( !lcl_extractCompDesc( sLine, sStorageName, aCompDesc ) )
continue;
- o_mapStorageToObjectName[ sStorageName ] = aCompDesc;
+ o_mapStorageToObjectName[ sStorageName ] = std::move(aCompDesc);
}
}
@@ -194,20 +195,9 @@ namespace dbaccess
}
}
- // DatabaseDocumentRecovery_Data
- struct DatabaseDocumentRecovery_Data
- {
- const Reference<XComponentContext> aContext;
-
- explicit DatabaseDocumentRecovery_Data( const Reference<XComponentContext> & i_rContext )
- :aContext( i_rContext )
- {
- }
- };
-
// DatabaseDocumentRecovery
DatabaseDocumentRecovery::DatabaseDocumentRecovery( const Reference<XComponentContext> & i_rContext )
- :m_pData( new DatabaseDocumentRecovery_Data( i_rContext ) )
+ : mxContext( i_rContext )
{
}
@@ -243,7 +233,7 @@ namespace dbaccess
for ( auto const & component : aComponents )
{
- SubComponentRecovery aComponentRecovery( m_pData->aContext, xDatabaseUI, component );
+ SubComponentRecovery aComponentRecovery( mxContext, xDatabaseUI, component );
aComponentRecovery.saveToRecoveryStorage( xRecoveryStorage, aMapCompDescs );
}
}
@@ -252,7 +242,7 @@ namespace dbaccess
{
Reference< XStorage > xComponentsStor( xRecoveryStorage->openStorageElement(
SubComponentRecovery::getComponentsStorageName( elem.first ), ElementModes::WRITE | ElementModes::NOCREATE ) );
- lcl_writeObjectMap_throw( m_pData->aContext, xComponentsStor, elem.second );
+ lcl_writeObjectMap_throw( mxContext, xComponentsStor, elem.second );
tools::stor::commitStorageIfWriteable( xComponentsStor );
}
}
@@ -284,7 +274,7 @@ namespace dbaccess
Reference< XStorage > xComponentsStor( xRecoveryStorage->openStorageElement(
SubComponentRecovery::getComponentsStorageName( aKnownType ), ElementModes::READ ) );
- lcl_readObjectMap_throw( m_pData->aContext, xComponentsStor, aMapCompDescs[ aKnownType ] );
+ lcl_readObjectMap_throw( mxContext, xComponentsStor, aMapCompDescs[ aKnownType ] );
xComponentsStor->dispose();
}
@@ -318,7 +308,7 @@ namespace dbaccess
// recover the single component
Reference< XStorage > xCompStor( xComponentsStor->openStorageElement( elem.first, ElementModes::READ ) );
- SubComponentRecovery aComponentRecovery( m_pData->aContext, xDocumentUI, eComponentType );
+ SubComponentRecovery aComponentRecovery( mxContext, xDocumentUI, eComponentType );
Reference< XComponent > xSubComponent( aComponentRecovery.recoverFromStorage( xCompStor, sComponentName, elem.second.bForEditing ) );
// at the moment, we only store, during session save, sub components which are modified. So, set this
diff --git a/dbaccess/source/core/recovery/settingsimport.cxx b/dbaccess/source/core/recovery/settingsimport.cxx
index b64787aa82a4..513dcae7e43d 100644
--- a/dbaccess/source/core/recovery/settingsimport.cxx
+++ b/dbaccess/source/core/recovery/settingsimport.cxx
@@ -19,7 +19,7 @@
#include "settingsimport.hxx"
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <sal/log.hxx>
#include <sax/tools/converter.hxx>
#include <xmloff/xmltoken.hxx>
@@ -45,8 +45,8 @@ namespace dbaccess
// find the name of the setting
if ( i_rAttributes.is() )
{
- m_sItemName = i_rAttributes->getValueByName( "config:name" );
- m_sItemType = i_rAttributes->getValueByName( "config:type" );
+ m_sItemName = i_rAttributes->getValueByName( u"config:name"_ustr );
+ m_sItemType = i_rAttributes->getValueByName( u"config:type"_ustr );
}
}
@@ -54,7 +54,7 @@ namespace dbaccess
{
}
- void SettingsImport::characters( const OUString& i_rCharacters )
+ void SettingsImport::characters( std::u16string_view i_rCharacters )
{
m_aCharacters.append( i_rCharacters );
}
@@ -139,7 +139,7 @@ namespace dbaccess
o_rValue.clear();
// the characters building up th evalue
- const OUString sValue = getAccumulatedCharacters().toString();
+ std::u16string_view sValue = getAccumulatedCharacters();
const OUString& rItemType( getItemType() );
ENSURE_OR_RETURN_VOID( !rItemType.isEmpty(), "no item type -> no item value" );
@@ -170,7 +170,7 @@ namespace dbaccess
}
else if ( ::xmloff::token::IsXMLToken( rItemType, ::xmloff::token::XML_STRING ) )
{
- o_rValue <<= sValue;
+ o_rValue <<= OUString(sValue);
}
else
{
diff --git a/dbaccess/source/core/recovery/settingsimport.hxx b/dbaccess/source/core/recovery/settingsimport.hxx
index 38bce0228e29..bc29bd727b8f 100644
--- a/dbaccess/source/core/recovery/settingsimport.hxx
+++ b/dbaccess/source/core/recovery/settingsimport.hxx
@@ -48,7 +48,7 @@ namespace dbaccess
const css::uno::Reference< css::xml::sax::XAttributeList >& i_rAttributes
);
virtual void endElement();
- void characters( const OUString& i_rCharacters );
+ void characters( std::u16string_view i_rCharacters );
protected:
virtual ~SettingsImport() override;
diff --git a/dbaccess/source/core/recovery/storagestream.cxx b/dbaccess/source/core/recovery/storagestream.cxx
index 2831f406bbf7..613bfb729903 100644
--- a/dbaccess/source/core/recovery/storagestream.cxx
+++ b/dbaccess/source/core/recovery/storagestream.cxx
@@ -21,13 +21,12 @@
#include <com/sun/star/embed/ElementModes.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::UNO_QUERY_THROW;
using ::com::sun::star::uno::UNO_SET_THROW;
using ::com::sun::star::embed::XStorage;
using ::com::sun::star::io::XStream;
diff --git a/dbaccess/source/core/recovery/storagetextstream.cxx b/dbaccess/source/core/recovery/storagetextstream.cxx
index 6ea4ef005320..8d96a73c4d98 100644
--- a/dbaccess/source/core/recovery/storagetextstream.cxx
+++ b/dbaccess/source/core/recovery/storagetextstream.cxx
@@ -28,15 +28,8 @@ namespace dbaccess
using ::com::sun::star::uno::XComponentContext;
using ::com::sun::star::embed::XStorage;
using ::com::sun::star::io::TextOutputStream;
- using ::com::sun::star::io::XTextOutputStream2;
- // StorageTextOutputStream_Data
- struct StorageTextOutputStream_Data
- {
- Reference< XTextOutputStream2 > xTextOutput;
- };
-
- const char sLineFeed[] = "\n";
+ constexpr OUString sLineFeed = u"\n"_ustr;
// StorageTextOutputStream
StorageTextOutputStream::StorageTextOutputStream( const Reference<XComponentContext>& i_rContext,
@@ -44,11 +37,10 @@ namespace dbaccess
const OUString& i_rStreamName
)
:StorageOutputStream( i_rParentStorage, i_rStreamName )
- ,m_pData( new StorageTextOutputStream_Data )
{
- m_pData->xTextOutput = TextOutputStream::create( i_rContext );
- m_pData->xTextOutput->setEncoding( "UTF-8" );
- m_pData->xTextOutput->setOutputStream( getOutputStream() );
+ mxTextOutput = TextOutputStream::create( i_rContext );
+ mxTextOutput->setEncoding( u"UTF-8"_ustr );
+ mxTextOutput->setOutputStream( getOutputStream() );
}
StorageTextOutputStream::~StorageTextOutputStream()
@@ -57,13 +49,13 @@ namespace dbaccess
void StorageTextOutputStream::writeLine( const OUString& i_rLine )
{
- m_pData->xTextOutput->writeString( i_rLine );
- m_pData->xTextOutput->writeString( sLineFeed );
+ mxTextOutput->writeString( i_rLine );
+ mxTextOutput->writeString( sLineFeed );
}
void StorageTextOutputStream::writeLine()
{
- m_pData->xTextOutput->writeString( sLineFeed );
+ mxTextOutput->writeString( sLineFeed );
}
} // namespace dbaccess
diff --git a/dbaccess/source/core/recovery/storagetextstream.hxx b/dbaccess/source/core/recovery/storagetextstream.hxx
index 46c3e5b2ee26..31bef3d83bd8 100644
--- a/dbaccess/source/core/recovery/storagetextstream.hxx
+++ b/dbaccess/source/core/recovery/storagetextstream.hxx
@@ -23,13 +23,12 @@
#include <com/sun/star/uno/XComponentContext.hpp>
-#include <memory>
+namespace com::sun::star::io { class XTextOutputStream2; }
namespace dbaccess
{
// StorageTextStream
- struct StorageTextOutputStream_Data;
class StorageTextOutputStream : public StorageOutputStream
{
public:
@@ -44,8 +43,8 @@ namespace dbaccess
void writeLine();
private:
- std::unique_ptr< StorageTextOutputStream_Data > m_pData;
- };
+ css::uno::Reference< css::io::XTextOutputStream2 > mxTextOutput;
+ };
} // namespace dbaccess
diff --git a/dbaccess/source/core/recovery/storagexmlstream.cxx b/dbaccess/source/core/recovery/storagexmlstream.cxx
index c04eff6f8912..e828ac73d38d 100644
--- a/dbaccess/source/core/recovery/storagexmlstream.cxx
+++ b/dbaccess/source/core/recovery/storagexmlstream.cxx
@@ -25,10 +25,7 @@
#include <com/sun/star/xml/sax/Writer.hpp>
#include <rtl/ref.hxx>
-#include <tools/diagnose_ex.h>
-#include <xmloff/attrlist.hxx>
-
-#include <stack>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
@@ -43,28 +40,19 @@ namespace dbaccess
using ::com::sun::star::xml::sax::Parser;
using ::com::sun::star::xml::sax::InputSource;
- // StorageXMLOutputStream_Data
- struct StorageXMLOutputStream_Data
- {
- Reference< XDocumentHandler > xHandler;
- std::stack< OUString > aElements;
- ::rtl::Reference< SvXMLAttributeList > xAttributes;
- };
-
// StorageXMLOutputStream
StorageXMLOutputStream::StorageXMLOutputStream( const Reference<XComponentContext>& i_rContext,
const Reference< XStorage >& i_rParentStorage,
const OUString& i_rStreamName )
:StorageOutputStream( i_rParentStorage, i_rStreamName )
- ,m_pData( new StorageXMLOutputStream_Data )
{
const Reference< XWriter > xSaxWriter = Writer::create( i_rContext );
xSaxWriter->setOutputStream( getOutputStream() );
- m_pData->xHandler.set( xSaxWriter, UNO_QUERY_THROW );
- m_pData->xHandler->startDocument();
+ mxHandler.set( xSaxWriter, UNO_QUERY_THROW );
+ mxHandler->startDocument();
- m_pData->xAttributes = new SvXMLAttributeList;
+ mxAttributes = new comphelper::AttributeList;
}
StorageXMLOutputStream::~StorageXMLOutputStream()
@@ -73,48 +61,48 @@ namespace dbaccess
void StorageXMLOutputStream::close()
{
- ENSURE_OR_RETURN_VOID( m_pData->xHandler.is(), "illegal document handler" );
- m_pData->xHandler->endDocument();
+ ENSURE_OR_RETURN_VOID( mxHandler.is(), "illegal document handler" );
+ mxHandler->endDocument();
// do not call the base class, it would call closeOutput on the output stream, which is already done by
// endDocument
}
void StorageXMLOutputStream::addAttribute( const OUString& i_rName, const OUString& i_rValue ) const
{
- m_pData->xAttributes->AddAttribute( i_rName, i_rValue );
+ mxAttributes->AddAttribute( i_rName, i_rValue );
}
- void StorageXMLOutputStream::startElement( const OUString& i_rElementName ) const
+ void StorageXMLOutputStream::startElement( const OUString& i_rElementName )
{
- ENSURE_OR_RETURN_VOID( m_pData->xHandler.is(), "no document handler" );
+ ENSURE_OR_RETURN_VOID( mxHandler.is(), "no document handler" );
- m_pData->xHandler->startElement( i_rElementName, m_pData->xAttributes.get() );
- m_pData->xAttributes = new SvXMLAttributeList;
- m_pData->aElements.push( i_rElementName );
+ mxHandler->startElement( i_rElementName, mxAttributes );
+ mxAttributes = new comphelper::AttributeList;
+ maElements.push( i_rElementName );
}
- void StorageXMLOutputStream::endElement() const
+ void StorageXMLOutputStream::endElement()
{
- ENSURE_OR_RETURN_VOID( m_pData->xHandler.is(), "no document handler" );
- ENSURE_OR_RETURN_VOID( !m_pData->aElements.empty(), "no element on the stack" );
+ ENSURE_OR_RETURN_VOID( mxHandler.is(), "no document handler" );
+ ENSURE_OR_RETURN_VOID( !maElements.empty(), "no element on the stack" );
- const OUString sElementName( m_pData->aElements.top() );
- m_pData->xHandler->endElement( sElementName );
- m_pData->aElements.pop();
+ const OUString sElementName( maElements.top() );
+ mxHandler->endElement( sElementName );
+ maElements.pop();
}
void StorageXMLOutputStream::ignorableWhitespace( const OUString& i_rWhitespace ) const
{
- ENSURE_OR_RETURN_VOID( m_pData->xHandler.is(), "no document handler" );
+ ENSURE_OR_RETURN_VOID( mxHandler.is(), "no document handler" );
- m_pData->xHandler->ignorableWhitespace( i_rWhitespace );
+ mxHandler->ignorableWhitespace( i_rWhitespace );
}
void StorageXMLOutputStream::characters( const OUString& i_rCharacters ) const
{
- ENSURE_OR_RETURN_VOID( m_pData->xHandler.is(), "no document handler" );
+ ENSURE_OR_RETURN_VOID( mxHandler.is(), "no document handler" );
- m_pData->xHandler->characters( i_rCharacters );
+ mxHandler->characters( i_rCharacters );
}
// StorageXMLInputStream
diff --git a/dbaccess/source/core/recovery/storagexmlstream.hxx b/dbaccess/source/core/recovery/storagexmlstream.hxx
index fd762ae05dc8..8a340b6fea0c 100644
--- a/dbaccess/source/core/recovery/storagexmlstream.hxx
+++ b/dbaccess/source/core/recovery/storagexmlstream.hxx
@@ -25,14 +25,13 @@
#include <com/sun/star/embed/XStorage.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
-
-#include <memory>
+#include <comphelper/attributelist.hxx>
+#include <rtl/ref.hxx>
+#include <stack>
namespace dbaccess
{
- // StorageXMLOutputStream
- struct StorageXMLOutputStream_Data;
class StorageXMLOutputStream : public StorageOutputStream
{
public:
@@ -47,8 +46,8 @@ namespace dbaccess
void addAttribute( const OUString& i_rName, const OUString& i_rValue ) const;
- void startElement( const OUString& i_rElementName ) const;
- void endElement() const;
+ void startElement( const OUString& i_rElementName );
+ void endElement();
void ignorableWhitespace( const OUString& i_rWhitespace ) const;
void characters( const OUString& i_rCharacters ) const;
@@ -58,7 +57,9 @@ namespace dbaccess
StorageXMLOutputStream& operator=( const StorageXMLOutputStream& ) = delete;
private:
- std::unique_ptr< StorageXMLOutputStream_Data > m_pData;
+ css::uno::Reference< css::xml::sax::XDocumentHandler > mxHandler;
+ std::stack< OUString > maElements;
+ ::rtl::Reference<comphelper::AttributeList> mxAttributes;
};
class StorageXMLInputStream
diff --git a/dbaccess/source/core/recovery/subcomponentloader.cxx b/dbaccess/source/core/recovery/subcomponentloader.cxx
index 3393c3d13d08..a416b997fa38 100644
--- a/dbaccess/source/core/recovery/subcomponentloader.cxx
+++ b/dbaccess/source/core/recovery/subcomponentloader.cxx
@@ -22,7 +22,7 @@
#include <com/sun/star/ucb/Command.hpp>
#include <com/sun/star/frame/XController2.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaccess
{
diff --git a/dbaccess/source/core/recovery/subcomponentrecovery.cxx b/dbaccess/source/core/recovery/subcomponentrecovery.cxx
index ab16ee9e2c04..f60a370c19c5 100644
--- a/dbaccess/source/core/recovery/subcomponentrecovery.cxx
+++ b/dbaccess/source/core/recovery/subcomponentrecovery.cxx
@@ -36,7 +36,7 @@
#include <comphelper/namedvaluecollection.hxx>
#include <cppuhelper/implbase.hxx>
#include <connectivity/dbtools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <sal/log.hxx>
#include <xmloff/XMLSettingsExportContext.hxx>
#include <xmloff/SettingsExportHelper.hxx>
@@ -47,12 +47,10 @@ namespace dbaccess
{
using css::uno::Reference;
- using css::uno::XInterface;
using css::uno::UNO_QUERY;
using css::uno::UNO_QUERY_THROW;
using css::uno::UNO_SET_THROW;
using css::uno::Exception;
- using css::uno::RuntimeException;
using css::uno::Any;
using css::uno::Sequence;
using css::uno::XComponentContext;
@@ -86,13 +84,13 @@ namespace dbaccess
switch ( i_eType )
{
case FORM:
- return "form";
+ return u"form"_ustr;
case REPORT:
- return "report";
+ return u"report"_ustr;
case TABLE:
- return "table";
+ return u"table"_ustr;
case QUERY:
- return "query";
+ return u"query"_ustr;
default:
break;
}
@@ -128,7 +126,7 @@ namespace dbaccess
return false;
::comphelper::NamedValueCollection aDocArgs( xDocument->getArgs() );
- return aDocArgs.getOrDefault( "ReadOnly", false );
+ return aDocArgs.getOrDefault( u"ReadOnly"_ustr, false );
}
Reference< XCommandProcessor > lcl_getSubComponentDef_nothrow( const Reference< XDatabaseDocumentUI >& i_rAppUI,
@@ -160,8 +158,8 @@ namespace dbaccess
return xCommandProcessor;
}
- const char sSettingsStreamName[] = "settings.xml";
- const char sCurrentQueryDesignName[] = "ooo:current-query-design";
+ constexpr OUString sSettingsStreamName = u"settings.xml"_ustr;
+ constexpr OUString sCurrentQueryDesignName = u"ooo:current-query-design"_ustr;
}
namespace {
@@ -170,7 +168,7 @@ namespace dbaccess
class SettingsExportContext : public ::xmloff::XMLSettingsExportContext
{
public:
- SettingsExportContext( const Reference<XComponentContext>& i_rContext, const StorageXMLOutputStream& i_rDelegator )
+ SettingsExportContext( const Reference<XComponentContext>& i_rContext, StorageXMLOutputStream& i_rDelegator )
:m_rContext( i_rContext )
,m_rDelegator( i_rDelegator )
,m_aNamespace( ::xmloff::token::GetXMLToken( ::xmloff::token::XML_NP_CONFIG ) )
@@ -199,7 +197,7 @@ namespace dbaccess
private:
const Reference<XComponentContext>& m_rContext;
- const StorageXMLOutputStream& m_rDelegator;
+ StorageXMLOutputStream& m_rDelegator;
const OUString m_aNamespace;
};
@@ -217,7 +215,7 @@ namespace dbaccess
void SettingsExportContext::StartElement( enum ::xmloff::token::XMLTokenEnum i_eName )
{
- m_rDelegator.ignorableWhitespace( " " );
+ m_rDelegator.ignorableWhitespace( u" "_ustr );
m_rDelegator.startElement( impl_prefix( i_eName ) );
}
@@ -225,7 +223,7 @@ namespace dbaccess
void SettingsExportContext::EndElement( const bool i_bIgnoreWhitespace )
{
if ( i_bIgnoreWhitespace )
- m_rDelegator.ignorableWhitespace( " " );
+ m_rDelegator.ignorableWhitespace( u" "_ustr );
m_rDelegator.endElement();
}
@@ -351,15 +349,15 @@ namespace dbaccess
switch ( i_eType )
{
case FORM:
- return "forms";
+ return u"forms"_ustr;
case REPORT:
- return "reports";
+ return u"reports"_ustr;
case TABLE:
- return "tables";
+ return u"tables"_ustr;
case QUERY:
- return "queries";
+ return u"queries"_ustr;
case RELATION_DESIGN:
- return "relations";
+ return u"relations"_ustr;
default:
break;
}
@@ -376,13 +374,13 @@ namespace dbaccess
return;
// open the sub storage for the given kind of components
- const OUString& rStorageName( getComponentsStorageName( m_eType ) );
+ const OUString aStorageName( getComponentsStorageName( m_eType ) );
const Reference< XStorage > xComponentsStorage( i_rRecoveryStorage->openStorageElement(
- rStorageName, ElementModes::READWRITE ), UNO_SET_THROW );
+ aStorageName, ElementModes::READWRITE ), UNO_SET_THROW );
// find a free sub storage name, and create Yet Another Sub Storage
- const OUString& rBaseName( lcl_getComponentStorageBaseName( m_eType ) );
- const OUString sStorName = ::dbtools::createUniqueName( xComponentsStorage.get(), rBaseName );
+ const OUString aBaseName( lcl_getComponentStorageBaseName( m_eType ) );
+ const OUString sStorName = ::dbtools::createUniqueName( xComponentsStorage, aBaseName );
const Reference< XStorage > xObjectStor( xComponentsStorage->openStorageElement(
sStorName, ElementModes::READWRITE ), UNO_SET_THROW );
@@ -474,15 +472,15 @@ namespace dbaccess
// the latter is updated only upon successful save of the design)
Reference< XPropertySet > xDesignerProps( m_xComponent, UNO_QUERY_THROW );
Sequence< PropertyValue > aCurrentQueryDesign;
- OSL_VERIFY( xDesignerProps->getPropertyValue( "CurrentQueryDesign" ) >>= aCurrentQueryDesign );
+ OSL_VERIFY( xDesignerProps->getPropertyValue( u"CurrentQueryDesign"_ustr ) >>= aCurrentQueryDesign );
// write the query design
StorageXMLOutputStream aDesignOutput( m_rContext, i_rObjectStorage, sSettingsStreamName );
SettingsExportContext aSettingsExportContext( m_rContext, aDesignOutput );
- const OUString sWhitespace( " " );
+ static constexpr OUString sWhitespace( u" "_ustr );
- aDesignOutput.startElement( "office:settings" );
+ aDesignOutput.startElement( u"office:settings"_ustr );
aDesignOutput.ignorableWhitespace( sWhitespace );
XMLSettingsExportHelper aSettingsExporter( aSettingsExportContext );
@@ -510,10 +508,10 @@ namespace dbaccess
Reference< XCommandProcessor > xDocDefinition;
::comphelper::NamedValueCollection aLoadArgs;
- aLoadArgs.put( "RecoveryStorage", i_rRecoveryStorage );
+ aLoadArgs.put( u"RecoveryStorage"_ustr, i_rRecoveryStorage );
// load/create the sub component hidden. We'll show it when the main app window is shown.
- aLoadArgs.put( "Hidden", true );
+ aLoadArgs.put( u"Hidden"_ustr, true );
if ( !i_rComponentName.isEmpty() )
{
@@ -560,7 +558,7 @@ namespace dbaccess
StorageXMLInputStream aDesignInput( m_rContext, i_rRecoveryStorage, sSettingsStreamName );
::rtl::Reference< SettingsDocumentHandler > pDocHandler( new SettingsDocumentHandler );
- aDesignInput.import( pDocHandler.get() );
+ aDesignInput.import( pDocHandler );
const ::comphelper::NamedValueCollection& rSettings( pDocHandler->getSettings() );
const Any& aCurrentQueryDesign = rSettings.get( sCurrentQueryDesignName );
@@ -571,8 +569,8 @@ namespace dbaccess
// then load the query designer
::comphelper::NamedValueCollection aLoadArgs;
- aLoadArgs.put( "CurrentQueryDesign", aCurrentQueryDesign );
- aLoadArgs.put( "Hidden", true );
+ aLoadArgs.put( u"CurrentQueryDesign"_ustr, aCurrentQueryDesign );
+ aLoadArgs.put( u"Hidden"_ustr, true );
if ( !i_rComponentName.isEmpty() )
{
diff --git a/dbaccess/source/core/recovery/subcomponentrecovery.hxx b/dbaccess/source/core/recovery/subcomponentrecovery.hxx
index 26b81c63f374..ee41a32dfc89 100644
--- a/dbaccess/source/core/recovery/subcomponentrecovery.hxx
+++ b/dbaccess/source/core/recovery/subcomponentrecovery.hxx
@@ -24,6 +24,7 @@
#include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
#include <com/sun/star/embed/XStorage.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
+#include <utility>
namespace dbaccess
{
@@ -35,10 +36,10 @@ namespace dbaccess
SubComponentRecovery(
const css::uno::Reference< css::uno::XComponentContext >& i_rContext,
const css::uno::Reference< css::sdb::application::XDatabaseDocumentUI >& i_rController,
- const css::uno::Reference< css::lang::XComponent >& i_rComponent )
+ css::uno::Reference< css::lang::XComponent > i_xComponent )
:m_rContext( i_rContext )
,m_xDocumentUI( i_rController, css::uno::UNO_SET_THROW )
- ,m_xComponent( i_rComponent )
+ ,m_xComponent(std::move( i_xComponent ))
,m_eType( UNKNOWN )
,m_aCompDesc()
{
diff --git a/dbaccess/source/core/resource/core_resource.cxx b/dbaccess/source/core/resource/core_resource.cxx
index 34ab1b0ba829..2bc3f7a28a04 100644
--- a/dbaccess/source/core/resource/core_resource.cxx
+++ b/dbaccess/source/core/resource/core_resource.cxx
@@ -21,35 +21,24 @@
#include <unotools/resmgr.hxx>
-// ---- needed as long as we have no contexts for components ---
-#include <rtl/instance.hxx>
-
namespace dbaccess
{
- // ResourceManager
- namespace
- {
- // access safety
- struct theResourceManagerMutex : public rtl::Static< osl::Mutex, theResourceManagerMutex > {};
- }
-
- OUString ResourceManager::loadString(const char* pResId)
+ OUString ResourceManager::loadString(TranslateId pResId)
{
return Translate::get(pResId, Translate::Create("dba"));
}
- OUString ResourceManager::loadString(const char* pResId, const char* _pPlaceholderAscii, const OUString& _rReplace)
+ OUString ResourceManager::loadString(TranslateNId aContextSingularPlural, int nCardinality)
{
- OUString sString(loadString(pResId));
- return sString.replaceFirst( OUString::createFromAscii(_pPlaceholderAscii), _rReplace );
+ return Translate::nget(aContextSingularPlural, nCardinality, Translate::Create("dba"));
}
- OUString ResourceManager::loadString(const char* pResId, const char* _pPlaceholderAscii1, const OUString& _rReplace1,
- const char* _pPlaceholderAscii2, const OUString& _rReplace2)
+ OUString ResourceManager::loadString(TranslateId pResId, std::u16string_view _rPlaceholderAscii1, std::u16string_view _rReplace1,
+ std::u16string_view _rPlaceholderAscii2, std::u16string_view _rReplace2)
{
OUString sString(loadString(pResId));
- sString = sString.replaceFirst( OUString::createFromAscii(_pPlaceholderAscii1), _rReplace1 );
- sString = sString.replaceFirst( OUString::createFromAscii(_pPlaceholderAscii2), _rReplace2 );
+ sString = sString.replaceFirst( _rPlaceholderAscii1, _rReplace1 );
+ sString = sString.replaceFirst( _rPlaceholderAscii2, _rReplace2 );
return sString;
}
}
diff --git a/dbaccess/source/filter/hsqldb/columndef.cxx b/dbaccess/source/filter/hsqldb/columndef.cxx
index 62bd7b541bf1..643e8187627d 100644
--- a/dbaccess/source/filter/hsqldb/columndef.cxx
+++ b/dbaccess/source/filter/hsqldb/columndef.cxx
@@ -20,23 +20,22 @@
#include "columndef.hxx"
#include <com/sun/star/sdbc/DataType.hpp>
+#include <utility>
namespace dbahsql
{
-using namespace css::sdbc;
-
-ColumnDefinition::ColumnDefinition(const OUString& sName, sal_Int32 eType,
- const std::vector<sal_Int32>& aParams, bool bPrimary,
+ColumnDefinition::ColumnDefinition(OUString sName, sal_Int32 eType,
+ std::vector<sal_Int32>&& aParams, bool bPrimary,
sal_Int32 nAutoIncr, bool bNullable, bool bCaseInsensitive,
- const OUString& sDefault)
- : m_sName(sName)
+ OUString sDefault)
+ : m_sName(std::move(sName))
, m_eType(eType)
- , m_aParams(aParams)
+ , m_aParams(std::move(aParams))
, m_bPrimaryKey(bPrimary)
, m_nAutoIncrement(nAutoIncr)
, m_bNullable(bNullable)
, m_bCaseInsensitive(bCaseInsensitive)
- , m_sDefaultValue(sDefault)
+ , m_sDefaultValue(std::move(sDefault))
{
}
}
diff --git a/dbaccess/source/filter/hsqldb/columndef.hxx b/dbaccess/source/filter/hsqldb/columndef.hxx
index faad744c554e..4ac3532a3454 100644
--- a/dbaccess/source/filter/hsqldb/columndef.hxx
+++ b/dbaccess/source/filter/hsqldb/columndef.hxx
@@ -28,9 +28,9 @@ private:
OUString m_sDefaultValue;
public:
- ColumnDefinition(const OUString& sName, sal_Int32 eType, const std::vector<sal_Int32>& aParams,
+ ColumnDefinition(OUString sName, sal_Int32 eType, std::vector<sal_Int32>&& aParams,
bool bPrimary = false, sal_Int32 nAutoIncr = -1, bool bNullable = true,
- bool bCaseInsensitive = false, const OUString& sDefault = OUString{});
+ bool bCaseInsensitive = false, OUString sDefault = OUString{});
OUString const& getName() const { return m_sName; }
sal_Int32 getDataType() const { return m_eType; }
diff --git a/dbaccess/source/filter/hsqldb/createparser.cxx b/dbaccess/source/filter/hsqldb/createparser.cxx
index ad1c95f89966..9fe720095ac3 100644
--- a/dbaccess/source/filter/hsqldb/createparser.cxx
+++ b/dbaccess/source/filter/hsqldb/createparser.cxx
@@ -19,6 +19,7 @@
#include <comphelper/string.hxx>
#include <sal/log.hxx>
+#include <o3tl/string_view.hxx>
#include "createparser.hxx"
#include "utils.hxx"
#include <com/sun/star/sdbc/DataType.hpp>
@@ -30,16 +31,17 @@ namespace
{
/// Returns substring of sSql from the first occurrence of '(' until the
/// last occurrence of ')' (excluding the parenthesis)
-OUString lcl_getColumnPart(const OUString& sSql)
+std::u16string_view lcl_getColumnPart(std::u16string_view sSql)
{
- sal_Int32 nBeginIndex = sSql.indexOf("(") + 1;
- if (nBeginIndex < 0)
+ size_t nBeginIndex = sSql.find('(');
+ if (nBeginIndex == std::u16string_view::npos)
{
SAL_WARN("dbaccess", "No column definitions found");
- return OUString();
+ return std::u16string_view();
}
- sal_Int32 nCount = sSql.lastIndexOf(")") - nBeginIndex;
- return sSql.copy(nBeginIndex, nCount);
+ sal_Int32 nCount = sSql.rfind(')') - nBeginIndex - 1;
+ auto sPart = sSql.substr(nBeginIndex + 1, nCount);
+ return sPart;
}
/// Constructs a vector of strings that represents the definitions of each
@@ -47,7 +49,7 @@ OUString lcl_getColumnPart(const OUString& sSql)
///
/// @param sColumnPart part of the create statement inside the parenthesis
/// containing the column definitions
-std::vector<OUString> lcl_splitColumnPart(const OUString& sColumnPart)
+std::vector<OUString> lcl_splitColumnPart(std::u16string_view sColumnPart)
{
std::vector<OUString> sParts = string::split(sColumnPart, sal_Unicode(u','));
std::vector<OUString> sReturn;
@@ -67,10 +69,11 @@ std::vector<OUString> lcl_splitColumnPart(const OUString& sColumnPart)
return sReturn;
}
-sal_Int32 lcl_getAutoIncrementDefault(const OUString& sColumnDef)
+sal_Int32 lcl_getAutoIncrementDefault(std::u16string_view sColumnDef)
{
// TODO what if there are more spaces?
- if (sColumnDef.indexOf("GENERATED BY DEFAULT AS IDENTITY") > 0)
+ size_t nPos = sColumnDef.find(u"GENERATED BY DEFAULT AS IDENTITY");
+ if (nPos != std::u16string_view::npos && nPos > 0)
{
// TODO parse starting sequence stated by "START WITH"
return 0;
@@ -78,68 +81,78 @@ sal_Int32 lcl_getAutoIncrementDefault(const OUString& sColumnDef)
return -1;
}
-OUString lcl_getDefaultValue(const OUString& sColumnDef)
+std::u16string_view lcl_getDefaultValue(std::u16string_view sColumnDef)
{
- constexpr char DEFAULT_KW[] = "DEFAULT";
- auto nDefPos = sColumnDef.indexOf(DEFAULT_KW);
- if (nDefPos > 0 && lcl_getAutoIncrementDefault(sColumnDef) < 0)
+ static constexpr std::u16string_view DEFAULT_KW = u"DEFAULT";
+ size_t nDefPos = sColumnDef.find(DEFAULT_KW);
+ if (nDefPos > 0 && nDefPos != std::u16string_view::npos
+ && lcl_getAutoIncrementDefault(sColumnDef) < 0)
{
- const OUString& fromDefault = sColumnDef.copy(nDefPos + sizeof(DEFAULT_KW)).trim();
+ std::u16string_view fromDefault
+ = o3tl::trim(sColumnDef.substr(nDefPos + DEFAULT_KW.size()));
// next word is the value
- auto nNextSpace = fromDefault.indexOf(" ");
- return nNextSpace > 0 ? fromDefault.copy(0, fromDefault.indexOf(" ")) : fromDefault;
+ size_t nNextSpace = fromDefault.find(' ');
+ return (nNextSpace > 0 && nNextSpace != std::u16string_view::npos)
+ ? fromDefault.substr(0, nNextSpace)
+ : fromDefault;
}
- return OUString{};
+ return std::u16string_view();
}
-bool lcl_isNullable(const OUString& sColumnDef) { return sColumnDef.indexOf("NOT NULL") < 0; }
+bool lcl_isNullable(std::u16string_view sColumnDef)
+{
+ return sColumnDef.find(u"NOT NULL") == std::u16string_view::npos;
+}
-bool lcl_isPrimaryKey(const OUString& sColumnDef) { return sColumnDef.indexOf("PRIMARY KEY") >= 0; }
+bool lcl_isPrimaryKey(std::u16string_view sColumnDef)
+{
+ return sColumnDef.find(u"PRIMARY KEY") != std::u16string_view::npos;
+}
-sal_Int32 lcl_getDataTypeFromHsql(const OUString& sTypeName)
+sal_Int32 lcl_getDataTypeFromHsql(std::u16string_view sTypeName)
{
- if (sTypeName == "CHAR")
+ if (sTypeName == u"CHAR")
return DataType::CHAR;
- else if (sTypeName == "VARCHAR" || sTypeName == "VARCHAR_IGNORECASE")
+ else if (sTypeName == u"VARCHAR" || sTypeName == u"VARCHAR_IGNORECASE")
return DataType::VARCHAR;
- else if (sTypeName == "TINYINT")
+ else if (sTypeName == u"TINYINT")
return DataType::TINYINT;
- else if (sTypeName == "SMALLINT")
+ else if (sTypeName == u"SMALLINT")
return DataType::SMALLINT;
- else if (sTypeName == "INTEGER")
+ else if (sTypeName == u"INTEGER")
return DataType::INTEGER;
- else if (sTypeName == "BIGINT")
+ else if (sTypeName == u"BIGINT")
return DataType::BIGINT;
- else if (sTypeName == "NUMERIC")
+ else if (sTypeName == u"NUMERIC")
return DataType::NUMERIC;
- else if (sTypeName == "DECIMAL")
+ else if (sTypeName == u"DECIMAL")
return DataType::DECIMAL;
- else if (sTypeName == "BOOLEAN")
+ else if (sTypeName == u"BOOLEAN")
return DataType::BOOLEAN;
- else if (sTypeName == "LONGVARCHAR")
+ else if (sTypeName == u"LONGVARCHAR")
return DataType::LONGVARCHAR;
- else if (sTypeName == "LONGVARBINARY")
+ else if (sTypeName == u"LONGVARBINARY")
return DataType::LONGVARBINARY;
- else if (sTypeName == "CLOB")
+ else if (sTypeName == u"CLOB")
return DataType::CLOB;
- else if (sTypeName == "BLOB")
+ else if (sTypeName == u"BLOB")
return DataType::BLOB;
- else if (sTypeName == "BINARY")
+ else if (sTypeName == u"BINARY")
return DataType::BINARY;
- else if (sTypeName == "VARBINARY")
+ else if (sTypeName == u"VARBINARY")
return DataType::VARBINARY;
- else if (sTypeName == "DATE")
+ else if (sTypeName == u"DATE")
return DataType::DATE;
- else if (sTypeName == "TIME")
+ else if (sTypeName == u"TIME")
return DataType::TIME;
- else if (sTypeName == "TIMESTAMP")
+ else if (sTypeName == u"TIMESTAMP")
return DataType::TIMESTAMP;
- else if (sTypeName == "DOUBLE")
+ else if (sTypeName == u"DOUBLE")
return DataType::DOUBLE;
- else if (sTypeName == "REAL")
+ else if (sTypeName == u"REAL")
return DataType::REAL;
- else if (sTypeName == "FLOAT")
+ else if (sTypeName == u"FLOAT")
return DataType::FLOAT;
assert(false);
@@ -163,15 +176,15 @@ struct ColumnTypeParts
* Separates full type descriptions (e.g. NUMERIC(5,4)) to type name (NUMERIC) and
* parameters (5,4)
*/
-ColumnTypeParts lcl_getColumnTypeParts(const OUString& sFullTypeName)
+ColumnTypeParts lcl_getColumnTypeParts(std::u16string_view sFullTypeName)
{
ColumnTypeParts parts;
- auto nParenPos = sFullTypeName.indexOf("(");
- if (nParenPos > 0)
+ auto nParenPos = sFullTypeName.find('(');
+ if (nParenPos > 0 && nParenPos != std::u16string_view::npos)
{
- parts.typeName = sFullTypeName.copy(0, nParenPos).trim();
- OUString sParamStr
- = sFullTypeName.copy(nParenPos + 1, sFullTypeName.indexOf(")") - nParenPos - 1);
+ parts.typeName = o3tl::trim(sFullTypeName.substr(0, nParenPos));
+ std::u16string_view sParamStr
+ = sFullTypeName.substr(nParenPos + 1, sFullTypeName.find(')') - nParenPos - 1);
auto sParams = string::split(sParamStr, sal_Unicode(u','));
for (const auto& sParam : sParams)
{
@@ -180,7 +193,7 @@ ColumnTypeParts lcl_getColumnTypeParts(const OUString& sFullTypeName)
}
else
{
- parts.typeName = sFullTypeName.trim();
+ parts.typeName = o3tl::trim(sFullTypeName);
lcl_addDefaultParameters(parts.params, lcl_getDataTypeFromHsql(parts.typeName));
}
return parts;
@@ -192,13 +205,13 @@ namespace dbahsql
{
CreateStmtParser::CreateStmtParser() {}
-void CreateStmtParser::parsePrimaryKeys(const OUString& sPrimaryPart)
+void CreateStmtParser::parsePrimaryKeys(std::u16string_view sPrimaryPart)
{
- sal_Int32 nParenPos = sPrimaryPart.indexOf("(");
- if (nParenPos > 0)
+ size_t nParenPos = sPrimaryPart.find('(');
+ if (nParenPos > 0 && nParenPos != std::u16string_view::npos)
{
- OUString sParamStr
- = sPrimaryPart.copy(nParenPos + 1, sPrimaryPart.lastIndexOf(")") - nParenPos - 1);
+ std::u16string_view sParamStr
+ = sPrimaryPart.substr(nParenPos + 1, sPrimaryPart.rfind(')') - nParenPos - 1);
auto sParams = string::split(sParamStr, sal_Unicode(u','));
for (const auto& sParam : sParams)
{
@@ -207,7 +220,7 @@ void CreateStmtParser::parsePrimaryKeys(const OUString& sPrimaryPart)
}
}
-void CreateStmtParser::parseColumnPart(const OUString& sColumnPart)
+void CreateStmtParser::parseColumnPart(std::u16string_view sColumnPart)
{
auto sColumns = lcl_splitColumnPart(sColumnPart);
for (const OUString& sColumn : sColumns)
@@ -232,15 +245,15 @@ void CreateStmtParser::parseColumnPart(const OUString& sColumnPart)
= bIsQuoteUsedForColumnName ? sColumn.indexOf("\"", 1) + 1 : sColumn.indexOf(" ");
OUString rColumnName = sColumn.copy(0, nEndColumnName);
- const OUString& sFromTypeName = sColumn.copy(nEndColumnName).trim();
+ const OUString sFromTypeName(o3tl::trim(sColumn.subView(nEndColumnName)));
// Now let's manage the column type
// search next space to get the whole type name
// eg: INTEGER, VARCHAR(10), DECIMAL(6,3)
auto nNextSpace = sFromTypeName.indexOf(" ");
- OUString sFullTypeName;
+ std::u16string_view sFullTypeName;
if (nNextSpace > 0)
- sFullTypeName = sFromTypeName.copy(0, nNextSpace);
+ sFullTypeName = sFromTypeName.subView(0, nNextSpace);
// perhaps column type corresponds to the last info here
else
sFullTypeName = sFromTypeName;
@@ -253,29 +266,30 @@ void CreateStmtParser::parseColumnPart(const OUString& sColumnPart)
if (isPrimaryKey)
m_PrimaryKeys.push_back(rColumnName);
- const OUString sColumnWithoutName = sColumn.copy(sColumn.indexOf(typeParts.typeName));
+ const std::u16string_view sColumnWithoutName
+ = sColumn.subView(sColumn.indexOf(typeParts.typeName));
ColumnDefinition aColDef(rColumnName, lcl_getDataTypeFromHsql(typeParts.typeName),
- typeParts.params, isPrimaryKey,
+ std::move(typeParts.params), isPrimaryKey,
lcl_getAutoIncrementDefault(sColumnWithoutName),
lcl_isNullable(sColumnWithoutName), bCaseInsensitive,
- lcl_getDefaultValue(sColumnWithoutName));
+ OUString(lcl_getDefaultValue(sColumnWithoutName)));
m_aColumns.push_back(aColDef);
}
}
-void CreateStmtParser::parse(const OUString& sSql)
+void CreateStmtParser::parse(std::u16string_view sSql)
{
// TODO Foreign keys
- if (!sSql.startsWith("CREATE"))
+ if (!o3tl::starts_with(sSql, u"CREATE"))
{
SAL_WARN("dbaccess", "Not a create statement");
return;
}
m_sTableName = utils::getTableNameFromStmt(sSql);
- OUString sColumnPart = lcl_getColumnPart(sSql);
+ std::u16string_view sColumnPart = lcl_getColumnPart(sSql);
parseColumnPart(sColumnPart);
}
diff --git a/dbaccess/source/filter/hsqldb/createparser.hxx b/dbaccess/source/filter/hsqldb/createparser.hxx
index 909b4063ac58..a92f745860d5 100644
--- a/dbaccess/source/filter/hsqldb/createparser.hxx
+++ b/dbaccess/source/filter/hsqldb/createparser.hxx
@@ -23,8 +23,8 @@ private:
OUString m_sTableName;
protected:
- void parseColumnPart(const OUString& sColumnPart);
- void parsePrimaryKeys(const OUString& sPrimaryPart);
+ void parseColumnPart(std::u16string_view sColumnPart);
+ void parsePrimaryKeys(std::u16string_view sPrimaryPart);
public:
CreateStmtParser();
@@ -56,7 +56,7 @@ public:
*
* @param SQL "CREATE" statement
*/
- void parse(const OUString& sSql);
+ void parse(std::u16string_view sSql);
/**
* Recreate the sql statement.
diff --git a/dbaccess/source/filter/hsqldb/fbalterparser.cxx b/dbaccess/source/filter/hsqldb/fbalterparser.cxx
index 818673cbdaf3..a8948069e4e6 100644
--- a/dbaccess/source/filter/hsqldb/fbalterparser.cxx
+++ b/dbaccess/source/filter/hsqldb/fbalterparser.cxx
@@ -32,18 +32,16 @@ OUString FbAlterStmtParser::compose() const
}
else if (getActionType() == AlterAction::ADD_FOREIGN)
return getStatement(); // do nothing with that
- OUStringBuffer sSql("ALTER TABLE ");
- sSql.append(getTableName());
+ OUStringBuffer sSql("ALTER TABLE " + getTableName());
if (getActionType() == AlterAction::IDENTITY_RESTART)
{
sSql.append(" ALTER COLUMN ");
}
- sSql.append(getColumnName());
- sSql.append(" RESTART WITH ");
+ sSql.append(getColumnName() + " RESTART WITH ");
// Firebird: restart with 0 means the first number is 1, not 0.
- sSql.append(OUString::number(getIdentityParam() - 1));
+ sSql.append(getIdentityParam() - 1);
return sSql.makeStringAndClear();
}
diff --git a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
index 4f8fb8667d1e..f19778f7439d 100644
--- a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
+++ b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
@@ -29,52 +29,46 @@ using namespace css::sdbc;
namespace
{
-void lcl_appendWithSpace(OUStringBuffer& sBuff, const OUString& sStr)
-{
- sBuff.append(" ");
- sBuff.append(sStr);
-}
-
OUString lcl_DataTypetoFbTypeName(sal_Int32 eType)
{
switch (eType)
{
case DataType::CHAR:
case DataType::BINARY:
- return "CHAR";
+ return u"CHAR"_ustr;
case DataType::VARCHAR:
case DataType::VARBINARY:
- return "VARCHAR";
+ return u"VARCHAR"_ustr;
case DataType::TINYINT: // no such type in Firebird
case DataType::SMALLINT:
- return "SMALLINT";
+ return u"SMALLINT"_ustr;
case DataType::INTEGER:
- return "INTEGER";
+ return u"INTEGER"_ustr;
case DataType::BIGINT:
- return "BIGINT";
+ return u"BIGINT"_ustr;
case DataType::NUMERIC:
- return "NUMERIC";
+ return u"NUMERIC"_ustr;
case DataType::DECIMAL:
- return "DECIMAL";
+ return u"DECIMAL"_ustr;
case DataType::BOOLEAN:
- return "BOOLEAN";
+ return u"BOOLEAN"_ustr;
case DataType::LONGVARCHAR:
case DataType::LONGVARBINARY:
case DataType::CLOB:
case DataType::BLOB:
case DataType::OTHER:
- return "BLOB";
+ return u"BLOB"_ustr;
case DataType::DATE:
- return "DATE";
+ return u"DATE"_ustr;
case DataType::TIME:
- return "TIME";
+ return u"TIME"_ustr;
case DataType::TIMESTAMP:
- return "TIMESTAMP";
+ return u"TIMESTAMP"_ustr;
case DataType::DOUBLE:
case DataType::REAL:
- return "DOUBLE PRECISION";
+ return u"DOUBLE PRECISION"_ustr;
case DataType::FLOAT:
- return "FLOAT";
+ return u"FLOAT"_ustr;
default:
assert(false);
return OUString();
@@ -89,12 +83,12 @@ OUString lcl_getTypeModifier(sal_Int32 eType)
{
case DataType::CLOB:
case DataType::LONGVARCHAR:
- return "SUB_TYPE 1";
+ return u"SUB_TYPE 1"_ustr;
case DataType::LONGVARBINARY:
- return "SUB_TYPE -9546";
+ return u"SUB_TYPE -9546"_ustr;
case DataType::BINARY:
case DataType::VARBINARY:
- return "CHARACTER SET OCTETS";
+ return u"CHARACTER SET OCTETS"_ustr;
default:
return OUString();
}
@@ -110,8 +104,7 @@ void FbCreateStmtParser::appendPrimaryKeyPart(OUStringBuffer& rSql) const
if (sPrimaryKeys.empty())
return; // no primary key specified
- rSql.append(",");
- rSql.append("PRIMARY KEY(");
+ rSql.append(",PRIMARY KEY(");
auto it = sPrimaryKeys.cbegin();
while (it != sPrimaryKeys.end())
{
@@ -135,16 +128,14 @@ OUString FbCreateStmtParser::compose() const
{
ensureProperTableLengths();
OUStringBuffer sSql(128);
- sSql.append("CREATE TABLE ");
- sSql.append(getTableName());
+ sSql.append("CREATE TABLE " + getTableName() + " ("); // column declaration
- lcl_appendWithSpace(sSql, "("); // column declaration
auto& rColumns = getColumnDef();
auto columnIter = rColumns.cbegin();
while (columnIter != rColumns.end())
{
- lcl_appendWithSpace(sSql, columnIter->getName());
- lcl_appendWithSpace(sSql, lcl_DataTypetoFbTypeName(columnIter->getDataType()));
+ sSql.append(" " + columnIter->getName() + " "
+ + lcl_DataTypetoFbTypeName(columnIter->getDataType()));
std::vector<sal_Int32> params{ columnIter->getParams() };
@@ -163,7 +154,7 @@ OUString FbCreateStmtParser::compose() const
auto it = params.cbegin();
while (it != params.end())
{
- sSql.append(OUString::number(*it));
+ sSql.append(*it);
++it;
if (it != params.end())
sSql.append(",");
@@ -174,32 +165,30 @@ OUString FbCreateStmtParser::compose() const
// special modifiers here, based on type (e.g. charset, subtype)
OUString sModifier = lcl_getTypeModifier(columnIter->getDataType());
if (!sModifier.isEmpty())
- lcl_appendWithSpace(sSql, sModifier);
+ sSql.append(" " + sModifier);
if (columnIter->isAutoIncremental())
{
- lcl_appendWithSpace(sSql, "GENERATED BY DEFAULT AS IDENTITY (START WITH ");
-
// start with 0:
// HSQLDB: first value will be 0.
// Firebird: first value will be 1.
- sSql.append(columnIter->getStartValue() - 1);
- sSql.append(")");
+ sSql.append(" GENERATED BY DEFAULT AS IDENTITY (START WITH "
+ + OUString::number(columnIter->getStartValue() - 1) + ")");
}
else if (!columnIter->isNullable())
- lcl_appendWithSpace(sSql, "NOT NULL");
+ sSql.append(" NOT NULL");
if (columnIter->isCaseInsensitive())
- lcl_appendWithSpace(sSql, "COLLATE UNICODE_CI");
+ sSql.append(" COLLATE UNICODE_CI");
const OUString& sDefaultVal = columnIter->getDefault();
if (!sDefaultVal.isEmpty())
{
- lcl_appendWithSpace(sSql, "DEFAULT");
+ sSql.append(" DEFAULT ");
if (sDefaultVal.equalsIgnoreAsciiCase("NOW"))
- lcl_appendWithSpace(sSql, "\'NOW\'"); // Fb likes it single quoted
+ sSql.append("'NOW'"); // Fb likes it single quoted
else
- lcl_appendWithSpace(sSql, sDefaultVal);
+ sSql.append(sDefaultVal);
}
++columnIter;
diff --git a/dbaccess/source/filter/hsqldb/hsqlimport.cxx b/dbaccess/source/filter/hsqldb/hsqlimport.cxx
index a017d8dfa12e..918397da620f 100644
--- a/dbaccess/source/filter/hsqldb/hsqlimport.cxx
+++ b/dbaccess/source/filter/hsqldb/hsqlimport.cxx
@@ -176,13 +176,11 @@ void lcl_setParams(const std::vector<Any>& row, Reference<XParameters> const& xP
}
}
-OUString lcl_createInsertStatement(const OUString& sTableName,
+OUString lcl_createInsertStatement(std::u16string_view sTableName,
const std::vector<dbahsql::ColumnDefinition>& rColTypes)
{
assert(rColTypes.size() > 0);
- OUStringBuffer sql("INSERT INTO ");
- sql.append(sTableName);
- sql.append(" (");
+ OUStringBuffer sql(OUString::Concat("INSERT INTO ") + sTableName + " (");
// column names
for (size_t i = 0; i < rColTypes.size(); ++i)
@@ -191,9 +189,7 @@ OUString lcl_createInsertStatement(const OUString& sTableName,
if (i < rColTypes.size() - 1)
sql.append(", ");
}
- sql.append(")");
-
- sql.append(" VALUES (");
+ sql.append(") VALUES (");
for (size_t i = 0; i < rColTypes.size(); ++i)
{
sql.append("?");
@@ -216,7 +212,8 @@ HsqlImporter::HsqlImporter(Reference<XConnection>& rConnection, const Reference<
m_xStorage.set(rStorage);
}
-void HsqlImporter::insertRow(const std::vector<css::uno::Any>& xRows, const OUString& sTableName,
+void HsqlImporter::insertRow(const std::vector<css::uno::Any>& xRows,
+ std::u16string_view sTableName,
const std::vector<ColumnDefinition>& rColTypes)
{
OUString sStatement = lcl_createInsertStatement(sTableName, rColTypes);
@@ -266,7 +263,7 @@ void HsqlImporter::parseTableRows(const std::vector<sal_Int32>& rIndexes,
const std::vector<ColumnDefinition>& rColTypes,
const OUString& sTableName)
{
- constexpr char BINARY_FILENAME[] = "data";
+ static constexpr OUString BINARY_FILENAME = u"data"_ustr;
if (!m_xStorage->hasByName(BINARY_FILENAME))
{
diff --git a/dbaccess/source/filter/hsqldb/hsqlimport.hxx b/dbaccess/source/filter/hsqldb/hsqlimport.hxx
index f414d327565d..13bbcd510442 100644
--- a/dbaccess/source/filter/hsqldb/hsqlimport.hxx
+++ b/dbaccess/source/filter/hsqldb/hsqlimport.hxx
@@ -23,14 +23,14 @@ class Window;
namespace dbahsql
{
-class SAL_DLLPUBLIC_EXPORT HsqlImporter
+class UNLESS_MERGELIBS_MORE(SAL_DLLPUBLIC_EXPORT) HsqlImporter
{
private:
css::uno::Reference<css::sdbc::XConnection>& m_rConnection;
css::uno::Reference<css::embed::XStorage> m_xStorage;
protected:
- void insertRow(const std::vector<css::uno::Any>& xRows, const OUString& sTable,
+ void insertRow(const std::vector<css::uno::Any>& xRows, std::u16string_view sTable,
const std::vector<ColumnDefinition>& rColTypes);
void processTree(HsqlBinaryNode& rNode, HsqlRowInputStream& rStream,
const std::vector<ColumnDefinition>& rColTypes, const OUString& sTableName,
diff --git a/dbaccess/source/filter/hsqldb/parseschema.cxx b/dbaccess/source/filter/hsqldb/parseschema.cxx
index 6dfc59778bf0..a2edb611a07c 100644
--- a/dbaccess/source/filter/hsqldb/parseschema.cxx
+++ b/dbaccess/source/filter/hsqldb/parseschema.cxx
@@ -17,6 +17,10 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
+#include <string_view>
+
#include "parseschema.hxx"
#include "fbcreateparser.hxx"
#include "fbalterparser.hxx"
@@ -29,6 +33,7 @@
#include <comphelper/string.hxx>
#include <sal/log.hxx>
#include <connectivity/dbexception.hxx>
+#include <utility>
namespace
{
@@ -42,8 +47,8 @@ private:
OUString m_sql;
public:
- IndexStmtParser(const OUString& sSql)
- : m_sql(sSql)
+ IndexStmtParser(OUString sSql)
+ : m_sql(std::move(sSql))
{
}
@@ -56,9 +61,14 @@ public:
{
assert(isIndexStatement());
- OUString sIndexPart = m_sql.copy(m_sql.indexOf("INDEX") + 5);
- sal_Int32 nQuotePos = sIndexPart.indexOf("'") + 1;
- OUString sIndexNums = sIndexPart.copy(nQuotePos, sIndexPart.lastIndexOf("'") - nQuotePos);
+ std::u16string_view sIndexPart = m_sql.subView(m_sql.indexOf("INDEX") + 5);
+ size_t nQuotePos = sIndexPart.find('\'');
+ if (nQuotePos == std::u16string_view::npos)
+ nQuotePos = 0;
+ else
+ ++nQuotePos;
+ std::u16string_view sIndexNums
+ = sIndexPart.substr(nQuotePos, sIndexPart.rfind('\'') - nQuotePos);
std::vector<OUString> sIndexes = string::split(sIndexNums, u' ');
IndexVector indexes;
@@ -80,18 +90,15 @@ public:
if (sName.indexOf('"') >= 0)
{
// Table name with string delimiter
- OUStringBuffer sMultiName("\"");
- sMultiName.append(string::split(m_sql, u'"')[1]);
- sMultiName.append("\"");
- sName = sMultiName.makeStringAndClear();
+ sName = "\"" + string::split(m_sql, u'"')[1] + "\"";
}
return sName;
}
};
-OUString lcl_createAlterForeign(const OUString& sForeignPart, const OUString& sTableName)
+OUString lcl_createAlterForeign(std::u16string_view sForeignPart, std::u16string_view sTableName)
{
- return "ALTER TABLE " + sTableName + " ADD " + sForeignPart;
+ return OUString::Concat("ALTER TABLE ") + sTableName + " ADD " + sForeignPart;
}
} // anonymous namespace
@@ -111,7 +118,7 @@ void SchemaParser::parseSchema()
{
assert(m_rStorage);
- constexpr char SCHEMA_FILENAME[] = "script";
+ static constexpr OUString SCHEMA_FILENAME = u"script"_ustr;
if (!m_rStorage->hasByName(SCHEMA_FILENAME))
{
SAL_WARN("dbaccess", "script file does not exist in storage during hsqldb import");
@@ -120,9 +127,9 @@ void SchemaParser::parseSchema()
Reference<XStream> xStream(m_rStorage->openStreamElement(SCHEMA_FILENAME, ElementModes::READ));
- Reference<XComponentContext> rContext = comphelper::getProcessComponentContext();
+ const Reference<XComponentContext>& rContext = comphelper::getProcessComponentContext();
Reference<XTextInputStream2> xTextInput = TextInputStream::create(rContext);
- xTextInput->setEncoding("UTF-8");
+ xTextInput->setEncoding(u"UTF-8"_ustr);
xTextInput->setInputStream(xStream->getInputStream());
while (!xTextInput->isEOF())
@@ -175,7 +182,8 @@ std::vector<ColumnDefinition> SchemaParser::getTableColumnTypes(const OUString&
{
if (m_ColumnTypes.count(sTableName) < 1)
{
- constexpr char NOT_EXIST[] = "Internal error while getting column information of table";
+ static constexpr OUString NOT_EXIST
+ = u"Internal error while getting column information of table"_ustr;
SAL_WARN("dbaccess", NOT_EXIST << ". Table name is: " << sTableName);
dbtools::throwGenericSQLException(NOT_EXIST, ::comphelper::getProcessComponentContext());
}
diff --git a/dbaccess/source/filter/hsqldb/rowinputbinary.cxx b/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
index 89c748fcbb82..c6d57a76b865 100644
--- a/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
+++ b/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
@@ -17,6 +17,10 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
+#include <string_view>
+
#include "rowinputbinary.hxx"
#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/io/WrongFormatException.hpp>
@@ -25,11 +29,12 @@
#include <com/sun/star/util/DateTime.hpp>
#include <unotools/ucbstreamhelper.hxx>
+#include <tools/datetime.hxx>
+#include <tools/duration.hxx>
#include <tools/stream.hxx>
+#include <tools/time.hxx>
#include <rtl/ustrbuf.hxx>
-#include <boost/date_time/posix_time/posix_time.hpp>
-
namespace
{
/**
@@ -82,12 +87,12 @@ OUString lcl_double_dabble(const std::vector<sal_uInt8>& bytes)
digit += '0';
/* Resize and return the resulting string. */
- return OStringToOUString(OString(scratch.data(), scratch.size()), RTL_TEXTENCODING_UTF8);
+ return OStringToOUString(std::string_view(scratch.data(), scratch.size()),
+ RTL_TEXTENCODING_UTF8);
}
-OUString lcl_makeStringFromBigint(const std::vector<sal_uInt8>& bytes)
+OUString lcl_makeStringFromBigint(std::vector<sal_uInt8>&& aBytes)
{
- std::vector<sal_uInt8> aBytes{ bytes };
OUStringBuffer sRet;
// two's complement
@@ -114,15 +119,27 @@ OUString lcl_makeStringFromBigint(const std::vector<sal_uInt8>& bytes)
OUString lcl_putDot(const OUString& sNum, sal_Int32 nScale)
{
// e.g. sNum = "0", nScale = 2 -> "0.00"
+ if (nScale <= 0)
+ return sNum;
+
OUStringBuffer sBuf{ sNum };
sal_Int32 nNullsToAppend = nScale - sNum.getLength() + 1;
for (sal_Int32 i = 0; i < nNullsToAppend; ++i)
sBuf.insert(0, "0");
- if (nScale > 0)
- sBuf.insert(sBuf.getLength() - 1 - nScale, ".");
+ sBuf.insert(sBuf.getLength() - nScale, ".");
return sBuf.makeStringAndClear();
}
+
+DateTime HsqlDateTime(sal_Int64 nanoseconds)
+{
+ const DateTime epoch(Date(1, 1, 1970));
+ const bool negative = nanoseconds < 0;
+ tools::Duration duration(0, 0, 0, 0, negative ? -nanoseconds : nanoseconds);
+ if (negative)
+ duration = -duration;
+ return epoch + duration;
+}
}
namespace dbahsql
@@ -130,8 +147,6 @@ namespace dbahsql
using namespace css::uno;
using namespace css::sdbc;
using namespace css::io;
-using namespace boost::posix_time;
-using namespace boost::gregorian;
HsqlRowInputStream::HsqlRowInputStream() {}
@@ -161,9 +176,8 @@ OUString HsqlRowInputStream::readUTF(sal_Int32 nUTFLen)
sal_Int32 nStrLen = 0;
while (nCount < nUTFLen)
{
- unsigned char cIn = 0;
- m_pStream->ReadUChar(cIn);
- sal_uInt8 c = reinterpret_cast<sal_uInt8&>(cIn);
+ sal_uInt8 c = 0;
+ m_pStream->ReadUChar(c);
sal_uInt8 char2, char3;
switch (c >> 4)
{
@@ -189,8 +203,7 @@ OUString HsqlRowInputStream::readUTF(sal_Int32 nUTFLen)
throw WrongFormatException();
}
- m_pStream->ReadUChar(cIn);
- char2 = reinterpret_cast<sal_uInt8&>(cIn);
+ m_pStream->ReadUChar(char2);
if ((char2 & 0xC0) != 0x80)
{
throw WrongFormatException();
@@ -207,10 +220,8 @@ OUString HsqlRowInputStream::readUTF(sal_Int32 nUTFLen)
throw WrongFormatException();
}
- m_pStream->ReadUChar(cIn);
- char2 = reinterpret_cast<sal_uInt8&>(cIn);
- m_pStream->ReadUChar(cIn);
- char3 = reinterpret_cast<sal_uInt8&>(cIn);
+ m_pStream->ReadUChar(char2);
+ m_pStream->ReadUChar(char3);
if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
{
@@ -230,9 +241,8 @@ OUString HsqlRowInputStream::readUTF(sal_Int32 nUTFLen)
bool HsqlRowInputStream::checkNull()
{
- unsigned char cIn = 0;
- m_pStream->ReadUChar(cIn);
- sal_uInt8 nNull = reinterpret_cast<sal_uInt8&>(cIn);
+ sal_uInt8 nNull = 0;
+ m_pStream->ReadUChar(nNull);
return nNull == 0;
}
@@ -245,7 +255,7 @@ std::vector<Any> HsqlRowInputStream::readOneRow(const std::vector<ColumnDefiniti
{
if (checkNull())
{
- aData.push_back(Any());
+ aData.emplace_back();
continue;
}
@@ -258,28 +268,28 @@ std::vector<Any> HsqlRowInputStream::readOneRow(const std::vector<ColumnDefiniti
case DataType::CHAR:
case DataType::VARCHAR:
case DataType::LONGVARCHAR:
- aData.push_back(makeAny(readString()));
+ aData.emplace_back(readString());
break;
case DataType::TINYINT:
case DataType::SMALLINT:
{
sal_Int16 value = 0;
m_pStream->ReadInt16(value);
- aData.push_back(makeAny(value));
+ aData.emplace_back(value);
}
break;
case DataType::INTEGER:
{
sal_Int32 value = 0;
m_pStream->ReadInt32(value);
- aData.push_back(makeAny(value));
+ aData.emplace_back(value);
}
break;
case DataType::BIGINT:
{
sal_Int64 value = 0;
m_pStream->ReadInt64(value);
- aData.push_back(makeAny(value));
+ aData.emplace_back(value);
}
break;
case DataType::REAL:
@@ -289,7 +299,7 @@ std::vector<Any> HsqlRowInputStream::readOneRow(const std::vector<ColumnDefiniti
double value = 0;
m_pStream->ReadDouble(value);
// FIXME double is not necessarily 4 bytes
- aData.push_back(makeAny(value));
+ aData.emplace_back(value);
}
break;
case DataType::NUMERIC:
@@ -305,77 +315,56 @@ std::vector<Any> HsqlRowInputStream::readOneRow(const std::vector<ColumnDefiniti
sal_Int32 nScale = 0;
m_pStream->ReadInt32(nScale);
- Sequence<Any> result(2);
- OUString sNum = lcl_makeStringFromBigint(aBytes);
- result[0] <<= lcl_putDot(sNum, nScale);
- result[1] <<= nScale;
- aData.push_back(makeAny(result));
+ OUString sNum = lcl_makeStringFromBigint(std::move(aBytes));
+ Sequence<Any> result{ Any(lcl_putDot(sNum, nScale)), Any(nScale) };
+ aData.emplace_back(result);
}
break;
case DataType::DATE:
{
sal_Int64 value = 0;
m_pStream->ReadInt64(value); // in millisec, from 1970
- ptime epoch = time_from_string("1970-01-01 00:00:00.000");
- ptime time = epoch + milliseconds(value);
- date asDate = time.date();
-
- css::util::Date loDate(asDate.day(), asDate.month(),
- asDate.year()); // day, month, year
- aData.push_back(makeAny(loDate));
+ css::util::Date loDate(
+ HsqlDateTime(value * tools::Time::nanoPerMilli).GetUNODate());
+ aData.emplace_back(loDate);
}
break;
case DataType::TIME:
{
sal_Int64 value = 0;
m_pStream->ReadInt64(value);
- auto valueInSecs = value / 1000;
- /* Observed valueInSecs fall in the range from
+ /* Observed value fall in the range from
negative one day to positive two days. Coerce
- valueInSecs between zero and positive one day.*/
- const int secPerDay = 24 * 60 * 60;
- valueInSecs = (valueInSecs + secPerDay) % secPerDay;
-
- auto nHours = valueInSecs / (60 * 60);
- valueInSecs = valueInSecs % 3600;
- const sal_uInt16 nMins = valueInSecs / 60;
- const sal_uInt16 nSecs = valueInSecs % 60;
- css::util::Time time((value % 1000) * 1000000, nSecs, nMins, nHours, true);
- aData.push_back(makeAny(time));
+ value between zero and positive one day.*/
+ value = (value + tools::Time::milliSecPerDay) % tools::Time::milliSecPerDay;
+ tools::Duration duration(0, 0, 0, 0, value * tools::Time::nanoPerMilli);
+
+ css::util::Time time(duration.GetTime().GetUNOTime());
+ aData.emplace_back(time);
}
break;
case DataType::TIMESTAMP:
{
sal_Int64 nEpochMillis = 0;
m_pStream->ReadInt64(nEpochMillis);
- ptime epoch = time_from_string("1970-01-01 00:00:00.000");
- ptime time = epoch + milliseconds(nEpochMillis);
- date asDate = time.date();
-
sal_Int32 nNanos = 0;
m_pStream->ReadInt32(nNanos);
+ DateTime result(HsqlDateTime(nEpochMillis * tools::Time::nanoPerMilli + nNanos));
// convert into LO internal representation of dateTime
- css::util::DateTime dateTime;
- dateTime.NanoSeconds = nNanos;
- dateTime.Seconds = time.time_of_day().seconds();
- dateTime.Minutes = time.time_of_day().minutes();
- dateTime.Hours = time.time_of_day().hours();
- dateTime.Day = asDate.day();
- dateTime.Month = asDate.month();
- dateTime.Year = asDate.year();
- aData.push_back(makeAny(dateTime));
+ css::util::DateTime dateTime(result.GetUNODateTime());
+ aData.emplace_back(dateTime);
}
break;
case DataType::BOOLEAN:
{
sal_uInt8 nBool = 0;
m_pStream->ReadUChar(nBool);
- aData.push_back(makeAny(static_cast<bool>(nBool)));
+ aData.emplace_back(static_cast<bool>(nBool));
}
break;
case DataType::OTHER:
- aData.push_back(Any{}); // TODO
+ aData.emplace_back(); // TODO
break;
case DataType::BINARY:
case DataType::VARBINARY:
@@ -386,7 +375,7 @@ std::vector<Any> HsqlRowInputStream::readOneRow(const std::vector<ColumnDefiniti
Sequence<sal_Int8> aBytes(nSize);
m_pStream->ReadBytes(aBytes.getArray(), nSize);
- aData.push_back(makeAny(aBytes));
+ aData.emplace_back(aBytes);
}
break;
diff --git a/dbaccess/source/filter/hsqldb/utils.cxx b/dbaccess/source/filter/hsqldb/utils.cxx
index 3dc8f2e55b16..ac479d9e05a2 100644
--- a/dbaccess/source/filter/hsqldb/utils.cxx
+++ b/dbaccess/source/filter/hsqldb/utils.cxx
@@ -21,37 +21,15 @@
#include <comphelper/string.hxx>
#include <comphelper/processfactory.hxx>
#include <connectivity/dbexception.hxx>
+#include <sal/log.hxx>
+#include <o3tl/numeric.hxx>
#include "utils.hxx"
using namespace dbahsql;
-namespace
-{
-int getHexValue(sal_Unicode c)
-{
- if (c >= '0' && c <= '9')
- {
- return c - '0';
- }
- else if (c >= 'A' && c <= 'F')
- {
- return c - 'A' + 10;
- }
- else if (c >= 'a' && c <= 'f')
- {
- return c - 'a' + 10;
- }
- else
- {
- return -1;
- }
-}
-
-} // unnamed namespace
-
//Convert ascii escaped unicode to utf-8
-OUString utils::convertToUTF8(const OString& original)
+OUString utils::convertToUTF8(std::string_view original)
{
OUString res = OStringToOUString(original, RTL_TEXTENCODING_UTF8);
for (sal_Int32 i = 0;;)
@@ -68,7 +46,7 @@ OUString utils::convertToUTF8(const OString& original)
sal_Unicode c = 0;
for (sal_Int32 j = 0; j != 4; ++j)
{
- auto const n = getHexValue(res[i + j]);
+ auto const n = o3tl::convertToHex<int>(res[i + j]);
if (n == -1)
{
escape = false;
@@ -79,7 +57,7 @@ OUString utils::convertToUTF8(const OString& original)
if (escape)
{
i -= 2;
- res = res.replaceAt(i, 6, OUString(c));
+ res = res.replaceAt(i, 6, rtl::OUStringChar(c));
++i;
}
}
@@ -87,9 +65,9 @@ OUString utils::convertToUTF8(const OString& original)
return res;
}
-OUString utils::getTableNameFromStmt(const OUString& sSql)
+OUString utils::getTableNameFromStmt(std::u16string_view sSql)
{
- auto stmtComponents = comphelper::string::split(sSql, sal_Unicode(u' '));
+ std::vector<OUString> stmtComponents = comphelper::string::split(sSql, sal_Unicode(u' '));
assert(stmtComponents.size() > 2);
auto wordIter = stmtComponents.begin();
@@ -103,17 +81,23 @@ OUString utils::getTableNameFromStmt(const OUString& sSql)
// it may contain spaces if it's put into apostrophes.
if (wordIter->indexOf("\"") >= 0)
{
- sal_Int32 nAposBegin = sSql.indexOf("\"");
- sal_Int32 nAposEnd = nAposBegin;
+ size_t nAposBegin = sSql.find('"');
+ assert(nAposBegin != std::u16string_view::npos); // make coverity happy
+ size_t nAposEnd = nAposBegin;
bool bProperEndAposFound = false;
while (!bProperEndAposFound)
{
- nAposEnd = sSql.indexOf("\"", nAposEnd + 1);
+ nAposEnd = sSql.find('"', nAposEnd + 1);
+ if (nAposEnd == std::u16string_view::npos)
+ {
+ SAL_WARN("dbaccess", "no matching \"");
+ return OUString();
+ }
if (sSql[nAposEnd - 1] != u'\\')
bProperEndAposFound = true;
}
- OUString result = sSql.copy(nAposBegin, nAposEnd - nAposBegin + 1);
- return result;
+ std::u16string_view result = sSql.substr(nAposBegin, nAposEnd - nAposBegin + 1);
+ return OUString(result);
}
// next word is the table's name
@@ -125,13 +109,14 @@ OUString utils::getTableNameFromStmt(const OUString& sSql)
return *wordIter;
}
-void utils::ensureFirebirdTableLength(const OUString& sName)
+void utils::ensureFirebirdTableLength(std::u16string_view sName)
{
- if (sName.getLength() > 30) // Firebird limitation
+ if (sName.size() > 30) // Firebird limitation
{
- constexpr char NAME_TOO_LONG[] = "Firebird 3 doesn't support object (table, field) names "
- "of more than 30 characters; please shorten your object "
- "names in the original file and try again.";
+ static constexpr OUStringLiteral NAME_TOO_LONG
+ = u"Firebird 3 doesn't support object (table, field) names "
+ "of more than 30 characters; please shorten your object "
+ "names in the original file and try again.";
dbtools::throwGenericSQLException(NAME_TOO_LONG,
::comphelper::getProcessComponentContext());
}
diff --git a/dbaccess/source/filter/hsqldb/utils.hxx b/dbaccess/source/filter/hsqldb/utils.hxx
index f0a0e35249a0..ed5fb8a1e380 100644
--- a/dbaccess/source/filter/hsqldb/utils.hxx
+++ b/dbaccess/source/filter/hsqldb/utils.hxx
@@ -9,15 +9,19 @@
#pragma once
+#include <sal/config.h>
+
+#include <string_view>
+
#include <rtl/ustring.hxx>
namespace dbahsql::utils
{
-OUString convertToUTF8(const OString& original);
+OUString convertToUTF8(std::string_view original);
-OUString getTableNameFromStmt(const OUString& sSql);
+OUString getTableNameFromStmt(std::u16string_view sSql);
-void ensureFirebirdTableLength(const OUString& sName);
+void ensureFirebirdTableLength(std::u16string_view sName);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/filter/xml/dbloader2.cxx b/dbaccess/source/filter/xml/dbloader2.cxx
index 8ccf9e5d7a02..2d722b8e8c9c 100644
--- a/dbaccess/source/filter/xml/dbloader2.cxx
+++ b/dbaccess/source/filter/xml/dbloader2.cxx
@@ -31,7 +31,6 @@
#include <com/sun/star/frame/XLoadEventListener.hpp>
#include <com/sun/star/frame/XModel2.hpp>
#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/sdb/DatabaseContext.hpp>
#include <com/sun/star/sdb/XDocumentDataSource.hpp>
@@ -47,15 +46,15 @@
#include <comphelper/documentconstants.hxx>
#include <comphelper/namedvaluecollection.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/storagehelper.hxx>
#include <comphelper/types.hxx>
#include <comphelper/propertysequence.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <sfx2/docfile.hxx>
+#include <unotools/fcm.hxx>
#include <unotools/moduleoptions.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
using namespace ::ucbhelper;
@@ -66,7 +65,6 @@ using namespace ::com::sun::star::io;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::document;
using namespace ::com::sun::star::sdb;
@@ -108,9 +106,9 @@ OUString SAL_CALL DBTypeDetection::detect( css::uno::Sequence< css::beans::Prope
{
::comphelper::NamedValueCollection aMedia( Descriptor );
bool bStreamFromDescr = false;
- OUString sURL = aMedia.getOrDefault( "URL", OUString() );
+ OUString sURL = aMedia.getOrDefault( u"URL"_ustr, OUString() );
- Reference< XInputStream > xInStream( aMedia.getOrDefault( "InputStream", Reference< XInputStream >() ) );
+ Reference< XInputStream > xInStream( aMedia.getOrDefault( u"InputStream"_ustr, Reference< XInputStream >() ) );
Reference< XPropertySet > xStorageProperties;
if ( xInStream.is() )
{
@@ -120,7 +118,7 @@ OUString SAL_CALL DBTypeDetection::detect( css::uno::Sequence< css::beans::Prope
}
else
{
- OUString sSalvagedURL( aMedia.getOrDefault( "SalvagedFile", OUString() ) );
+ OUString sSalvagedURL( aMedia.getOrDefault( u"SalvagedFile"_ustr, OUString() ) );
OUString sFileLocation( sSalvagedURL.isEmpty() ? sURL : sSalvagedURL );
if ( !sFileLocation.isEmpty() )
@@ -140,8 +138,8 @@ OUString SAL_CALL DBTypeDetection::detect( css::uno::Sequence< css::beans::Prope
{
// After fixing of the i88522 issue ( use the new file locking for database files ) the stream from the type detection can be used further
// for now the file should be reopened to have read/write access
- aMedia.remove( OUString( "InputStream" ) );
- aMedia.remove( OUString( "Stream" ) );
+ aMedia.remove( u"InputStream"_ustr );
+ aMedia.remove( u"Stream"_ustr );
aMedia >>= Descriptor;
try
{
@@ -155,7 +153,7 @@ OUString SAL_CALL DBTypeDetection::detect( css::uno::Sequence< css::beans::Prope
}
}
- return "StarBase";
+ return u"StarBase"_ustr;
}
::comphelper::disposeComponent(xStorageProperties);
}
@@ -166,7 +164,7 @@ OUString SAL_CALL DBTypeDetection::detect( css::uno::Sequence< css::beans::Prope
// XServiceInfo
OUString SAL_CALL DBTypeDetection::getImplementationName()
{
- return "org.openoffice.comp.dbflt.DBTypeDetection";
+ return u"org.openoffice.comp.dbflt.DBTypeDetection"_ustr;
}
// XServiceInfo
@@ -178,7 +176,7 @@ sal_Bool SAL_CALL DBTypeDetection::supportsService(const OUString& ServiceName)
// XServiceInfo
Sequence< OUString > SAL_CALL DBTypeDetection::getSupportedServiceNames()
{
- return { "com.sun.star.document.ExtendedTypeDetection" };
+ return { u"com.sun.star.document.ExtendedTypeDetection"_ustr };
}
} // namespace dbaxml
@@ -199,7 +197,7 @@ class DBContentLoader : public ::cppu::WeakImplHelper< XFrameLoader, XServiceInf
{
private:
const Reference< XComponentContext > m_aContext;
- Reference< XFrameLoader > m_xMySelf;
+ rtl::Reference< DBContentLoader > m_xMySelf;
OUString m_sCurrentURL;
ImplSVEvent * m_nStartWizard;
@@ -234,7 +232,7 @@ DBContentLoader::DBContentLoader(const Reference< XComponentContext >& _rxFactor
// XServiceInfo
OUString SAL_CALL DBContentLoader::getImplementationName()
{
- return "org.openoffice.comp.dbflt.DBContentLoader2";
+ return u"org.openoffice.comp.dbflt.DBContentLoader2"_ustr;
}
// XServiceInfo
@@ -246,7 +244,7 @@ sal_Bool SAL_CALL DBContentLoader::supportsService(const OUString& ServiceName)
// XServiceInfo
Sequence< OUString > SAL_CALL DBContentLoader::getSupportedServiceNames()
{
- return { "com.sun.star.frame.FrameLoader" };
+ return { u"com.sun.star.frame.FrameLoader"_ustr };
}
@@ -265,7 +263,7 @@ namespace
}
catch( const Exception& )
{
- OSL_FAIL( "lcl_urlAllowsInteraction: caught an exception while analyzing the URL!" );
+ TOOLS_WARN_EXCEPTION( "dbaccess", "lcl_urlAllowsInteraction: caught an exception while analyzing the URL!" );
}
return bDoesAllow;
}
@@ -299,7 +297,7 @@ bool DBContentLoader::impl_executeNewDatabaseWizard( Reference< XModel > const &
}));
// create the dialog
- Reference< XExecutableDialog > xAdminDialog( m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.sdb.DatabaseWizardDialog", aWizardArgs, m_aContext), UNO_QUERY_THROW);
+ Reference< XExecutableDialog > xAdminDialog( m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.sdb.DatabaseWizardDialog"_ustr, aWizardArgs, m_aContext), UNO_QUERY_THROW);
// execute it
if ( RET_OK != xAdminDialog->execute() )
@@ -307,8 +305,8 @@ bool DBContentLoader::impl_executeNewDatabaseWizard( Reference< XModel > const &
Reference<XPropertySet> xProp(xAdminDialog,UNO_QUERY);
bool bSuccess = false;
- xProp->getPropertyValue("OpenDatabase") >>= bSuccess;
- xProp->getPropertyValue("StartTableWizard") >>= _bShouldStartTableWizard;
+ xProp->getPropertyValue(u"OpenDatabase"_ustr) >>= bSuccess;
+ xProp->getPropertyValue(u"StartTableWizard"_ustr) >>= _bShouldStartTableWizard;
return bSuccess;
}
@@ -318,7 +316,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
{
// first check if preview is true, if so return without creating a controller. Preview is not supported
::comphelper::NamedValueCollection aMediaDesc( rArgs );
- bool bPreview = aMediaDesc.getOrDefault( "Preview", false );
+ bool bPreview = aMediaDesc.getOrDefault( u"Preview"_ustr, false );
if ( bPreview )
{
if (rListener.is())
@@ -326,8 +324,8 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
return;
}
- Reference< XModel > xModel = aMediaDesc.getOrDefault( "Model", Reference< XModel >() );
- OUString sSalvagedURL = aMediaDesc.getOrDefault( "SalvagedFile", _rURL );
+ Reference< XModel > xModel = aMediaDesc.getOrDefault( u"Model"_ustr, Reference< XModel >() );
+ OUString sSalvagedURL = aMediaDesc.getOrDefault( u"SalvagedFile"_ustr, _rURL );
bool bCreateNew = false; // does the URL denote the private:factory URL?
bool bStartTableWizard = false; // start the table wizard after everything was loaded successfully?
@@ -340,20 +338,20 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
// a default handler, we simply ensure there is one.
// If a handler is present in the media descriptor, even if it is NULL, we will
// not touch it.
- if ( !aMediaDesc.has( "InteractionHandler" ) )
+ if ( !aMediaDesc.has( u"InteractionHandler"_ustr ) )
{
Reference< XInteractionHandler2 > xHandler( InteractionHandler::createWithParent(m_aContext, nullptr) );
- aMediaDesc.put( "InteractionHandler", xHandler );
+ aMediaDesc.put( u"InteractionHandler"_ustr, xHandler );
}
// it's allowed to pass an existing document
Reference< XOfficeDatabaseDocument > xExistentDBDoc;
- xModel.set( aMediaDesc.getOrDefault( "Model", xExistentDBDoc ), UNO_QUERY );
- aMediaDesc.remove( "Model" );
+ xModel.set( aMediaDesc.getOrDefault( u"Model"_ustr, xExistentDBDoc ), UNO_QUERY );
+ aMediaDesc.remove( u"Model"_ustr );
// also, it's allowed to specify the type of view which should be created
- OUString sViewName = aMediaDesc.getOrDefault( "ViewName", OUString( "Default" ) );
- aMediaDesc.remove( "ViewName" );
+ OUString sViewName = aMediaDesc.getOrDefault( u"ViewName"_ustr, u"Default"_ustr );
+ aMediaDesc.remove( u"ViewName"_ustr );
// this needs to stay alive for duration of this method
Reference< XDatabaseContext > xDatabaseContext;
@@ -376,7 +374,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
else
{
::comphelper::NamedValueCollection aCreationArgs;
- aCreationArgs.put( OUString(INFO_POOLURL), sSalvagedURL );
+ aCreationArgs.put( INFO_POOLURL, sSalvagedURL );
xDocumentDataSource.set( xDatabaseContext->createInstanceWithArguments( aCreationArgs.getWrappedNamedValues() ), UNO_QUERY_THROW );
}
@@ -423,7 +421,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
bool bNeedLoad = xModel->getURL().isEmpty();
try
{
- aMediaDesc.put( "FileName", _rURL );
+ aMediaDesc.put( u"FileName"_ustr, _rURL );
Sequence< PropertyValue > aResource( aMediaDesc.getPropertyValues() );
if ( bNeedLoad )
@@ -449,11 +447,8 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
Reference< XModel2 > xModel2( xModel, UNO_QUERY_THROW );
Reference< XController2 > xController( xModel2->createViewController( sViewName, Sequence< PropertyValue >(), rFrame ), UNO_SET_THROW );
- xController->attachModel( xModel );
- xModel->connectController( xController.get() );
- rFrame->setComponent( xController->getComponentWindow(), xController.get() );
- xController->attachFrame( rFrame );
- xModel->setCurrentController( xController.get() );
+ // introduce model/view/controller to each other
+ utl::ConnectFrameControllerModel(rFrame, xController, xModel);
bSuccess = true;
}
@@ -476,7 +471,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
{
NamedDatabaseObject aSelection;
aSelection.Type = nInitialSelection;
- xDocView->select( makeAny( aSelection ) );
+ xDocView->select( Any( aSelection ) );
}
}
@@ -514,13 +509,13 @@ IMPL_LINK_NOARG( DBContentLoader, OnStartTableWizard, void*, void )
{"DatabaseLocation", Any(m_sCurrentURL)}
}));
SolarMutexGuard aGuard;
- Reference< XJobExecutor > xTableWizard( m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.wizards.table.CallTableWizard", aWizArgs, m_aContext), UNO_QUERY);
+ Reference< XJobExecutor > xTableWizard( m_aContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.wizards.table.CallTableWizard"_ustr, aWizArgs, m_aContext), UNO_QUERY);
if ( xTableWizard.is() )
- xTableWizard->trigger("start");
+ xTableWizard->trigger(u"start"_ustr);
}
catch(const Exception&)
{
- OSL_FAIL("caught an exception while starting the table wizard!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "caught an exception while starting the table wizard!");
}
m_xMySelf = nullptr;
}
diff --git a/dbaccess/source/filter/xml/xmlAutoStyle.cxx b/dbaccess/source/filter/xml/xmlAutoStyle.cxx
index 99101567111a..82bcab3620ea 100644
--- a/dbaccess/source/filter/xml/xmlAutoStyle.cxx
+++ b/dbaccess/source/filter/xml/xmlAutoStyle.cxx
@@ -24,10 +24,9 @@
namespace dbaxml
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::xml::sax;
void OXMLAutoStylePoolP::exportStyleAttributes(
- SvXMLAttributeList& rAttrList,
+ comphelper::AttributeList& rAttrList,
XmlStyleFamily nFamily,
const std::vector< XMLPropertyState >& rProperties,
const SvXMLExportPropertyMapper& rPropExp
diff --git a/dbaccess/source/filter/xml/xmlAutoStyle.hxx b/dbaccess/source/filter/xml/xmlAutoStyle.hxx
index 54748a22c307..d358b50f7230 100644
--- a/dbaccess/source/filter/xml/xmlAutoStyle.hxx
+++ b/dbaccess/source/filter/xml/xmlAutoStyle.hxx
@@ -28,7 +28,7 @@ namespace dbaxml
ODBExport& rODBExport;
virtual void exportStyleAttributes(
- SvXMLAttributeList& rAttrList,
+ comphelper::AttributeList& rAttrList,
XmlStyleFamily nFamily,
const std::vector< XMLPropertyState >& rProperties,
const SvXMLExportPropertyMapper& rPropExp,
diff --git a/dbaccess/source/filter/xml/xmlColumn.cxx b/dbaccess/source/filter/xml/xmlColumn.cxx
index 334c4fbfcbe4..1afbf9f0f419 100644
--- a/dbaccess/source/filter/xml/xmlColumn.cxx
+++ b/dbaccess/source/filter/xml/xmlColumn.cxx
@@ -25,7 +25,6 @@
#include <com/sun/star/sdbcx/XAppend.hpp>
#include "xmlStyleImport.hxx"
#include <osl/diagnose.h>
-#include <sal/log.hxx>
namespace dbaxml
{
@@ -48,38 +47,36 @@ OXMLColumn::OXMLColumn( ODBFilter& rImport
OUString sType;
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
switch( aIter.getToken() & TOKEN_MASK )
{
case XML_NAME:
- m_sName = sValue;
+ m_sName = aIter.toString();
break;
case XML_STYLE_NAME:
- m_sStyleName = sValue;
+ m_sStyleName = aIter.toString();
break;
case XML_HELP_MESSAGE:
- m_sHelpMessage = sValue;
+ m_sHelpMessage = aIter.toString();
break;
case XML_VISIBILITY:
- m_bHidden = sValue != "visible";
+ m_bHidden = aIter.toView() != "visible";
break;
case XML_TYPE_NAME:
- sType = sValue;
+ sType = aIter.toString();
OSL_ENSURE(!sType.isEmpty(),"No type name set");
break;
case XML_DEFAULT_VALUE:
- if ( !(sValue.isEmpty() || sType.isEmpty()) )
- m_aDefaultValue <<= sValue;
+ if ( !(aIter.isEmpty() || sType.isEmpty()) )
+ m_aDefaultValue <<= aIter.toString();
break;
case XML_VISIBLE:
- m_bHidden = sValue == "false";
+ m_bHidden = aIter.toView() == "false";
break;
case XML_DEFAULT_CELL_STYLE_NAME:
- m_sCellStyleName = sValue;
+ m_sCellStyleName = aIter.toString();
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
}
@@ -97,10 +94,10 @@ void OXMLColumn::endFastElement(sal_Int32 )
Reference<XPropertySet> xProp(xFac->createDataDescriptor());
if ( xProp.is() )
{
- xProp->setPropertyValue(PROPERTY_NAME,makeAny(m_sName));
- xProp->setPropertyValue(PROPERTY_HIDDEN,makeAny(m_bHidden));
+ xProp->setPropertyValue(PROPERTY_NAME,Any(m_sName));
+ xProp->setPropertyValue(PROPERTY_HIDDEN,Any(m_bHidden));
if ( !m_sHelpMessage.isEmpty() )
- xProp->setPropertyValue(PROPERTY_HELPTEXT,makeAny(m_sHelpMessage));
+ xProp->setPropertyValue(PROPERTY_HELPTEXT,Any(m_sHelpMessage));
if ( m_aDefaultValue.hasValue() )
xProp->setPropertyValue(PROPERTY_CONTROLDEFAULT,m_aDefaultValue);
diff --git a/dbaccess/source/filter/xml/xmlColumn.hxx b/dbaccess/source/filter/xml/xmlColumn.hxx
index 42bf80d209f2..8deca87c7c42 100644
--- a/dbaccess/source/filter/xml/xmlColumn.hxx
+++ b/dbaccess/source/filter/xml/xmlColumn.hxx
@@ -46,8 +46,6 @@ namespace dbaxml
,const css::uno::Reference< css::beans::XPropertySet >& _xTable
);
virtual ~OXMLColumn() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlComponent.cxx b/dbaccess/source/filter/xml/xmlComponent.cxx
index 5245c1c3423c..8f219e4d9eae 100644
--- a/dbaccess/source/filter/xml/xmlComponent.cxx
+++ b/dbaccess/source/filter/xml/xmlComponent.cxx
@@ -23,13 +23,13 @@
#include <xmloff/xmlnamespace.hxx>
#include <strings.hxx>
#include <com/sun/star/container/XNameContainer.hpp>
-#include <tools/diagnose_ex.h>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/propertysequence.hxx>
namespace dbaxml
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::xml::sax;
@@ -43,19 +43,16 @@ OXMLComponent::OXMLComponent( ODBFilter& rImport
OUString sName;
OUString sHREF;
bool bAsTemplate(false);
- static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
switch( aIter.getToken() )
{
case XML_ELEMENT(XLINK, XML_HREF):
- sHREF = sValue;
+ sHREF = aIter.toString();
break;
case XML_ELEMENT(DB, XML_NAME):
case XML_ELEMENT(DB_OASIS, XML_NAME):
- sName = sValue;
+ sName = aIter.toString();
// sanitize the name. Previously, we allowed to create forms/reports/queries which contain
// a / in their name, which nowadays is forbidden. To not lose such objects if they're contained
// in older files, we replace the slash with something less offending.
@@ -63,10 +60,10 @@ OXMLComponent::OXMLComponent( ODBFilter& rImport
break;
case XML_ELEMENT(DB, XML_AS_TEMPLATE):
case XML_ELEMENT(DB_OASIS, XML_AS_TEMPLATE):
- bAsTemplate = sValue == s_sTRUE;
+ bAsTemplate = IsXMLToken(aIter, XML_TRUE);
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
if ( !(!sHREF.isEmpty() && !sName.isEmpty() && _xParentContainer.is()) )
@@ -83,7 +80,7 @@ OXMLComponent::OXMLComponent( ODBFilter& rImport
Reference< XMultiServiceFactory > xORB( _xParentContainer, UNO_QUERY_THROW );
Reference< XInterface > xComponent( xORB->createInstanceWithArguments( _sComponentServiceName, aArguments ) );
Reference< XNameContainer > xNameContainer( _xParentContainer, UNO_QUERY_THROW );
- xNameContainer->insertByName( sName, makeAny( xComponent ) );
+ xNameContainer->insertByName( sName, Any( xComponent ) );
}
catch(Exception&)
{
diff --git a/dbaccess/source/filter/xml/xmlComponent.hxx b/dbaccess/source/filter/xml/xmlComponent.hxx
index dee94cfdf186..136d5b6854a5 100644
--- a/dbaccess/source/filter/xml/xmlComponent.hxx
+++ b/dbaccess/source/filter/xml/xmlComponent.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
,const OUString& _sComponentServiceName
);
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLComponent() override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlConnectionData.hxx b/dbaccess/source/filter/xml/xmlConnectionData.hxx
index 0d2abae839a6..466c047888f3 100644
--- a/dbaccess/source/filter/xml/xmlConnectionData.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionData.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
OXMLConnectionData( ODBFilter& rImport );
virtual ~OXMLConnectionData() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.cxx b/dbaccess/source/filter/xml/xmlConnectionResource.cxx
index 9f15cf74b81e..6e4a006be25b 100644
--- a/dbaccess/source/filter/xml/xmlConnectionResource.cxx
+++ b/dbaccess/source/filter/xml/xmlConnectionResource.cxx
@@ -22,7 +22,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnamespace.hxx>
#include <strings.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaxml
{
@@ -42,7 +42,6 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport,
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
aProperty.Name.clear();
aProperty.Value = Any();
@@ -51,7 +50,7 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport,
case XML_ELEMENT(XLINK, XML_HREF):
try
{
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
+ xDataSource->setPropertyValue(PROPERTY_URL,Any(aIter.toString()));
}
catch(const Exception&)
{
@@ -68,12 +67,12 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport,
aProperty.Name = "Actuate";
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
if ( !aProperty.Name.isEmpty() )
{
if ( !aProperty.Value.hasValue() )
- aProperty.Value <<= sValue;
+ aProperty.Value <<= aIter.toString();
rImport.addInfo(aProperty);
}
}
diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.hxx b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
index 71ca5b197ede..357bbe1e117a 100644
--- a/dbaccess/source/filter/xml/xmlConnectionResource.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
OXMLConnectionResource( ODBFilter& rImport,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList );
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLConnectionResource() override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDataSource.cxx b/dbaccess/source/filter/xml/xmlDataSource.cxx
index 53095dfe0e2f..9939a197b1aa 100644
--- a/dbaccess/source/filter/xml/xmlDataSource.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSource.cxx
@@ -27,7 +27,7 @@
#include <xmloff/ProgressBarHelper.hxx>
#include "xmlEnums.hxx"
#include <strings.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include "xmlConnectionData.hxx"
namespace dbaxml
@@ -49,13 +49,10 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
bool bFoundAppendTableAliasName = false;
bool bFoundSuppressVersionColumns = false;
- static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
if (xDataSource.is())
{
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
aProperty.Name.clear();
aProperty.Value = Any();
@@ -64,7 +61,7 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
case XML_CONNECTION_RESOURCE:
try
{
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
+ xDataSource->setPropertyValue(PROPERTY_URL,Any(aIter.toString()));
}
catch(const Exception&)
{
@@ -74,7 +71,7 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
case XML_SUPPRESS_VERSION_COLUMNS:
try
{
- xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(sValue == s_sTRUE));
+ xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,Any(IsXMLToken(aIter, XML_TRUE)));
bFoundSuppressVersionColumns = true;
}
catch(const Exception&)
@@ -90,15 +87,15 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
break;
case XML_IS_FIRST_ROW_HEADER_LINE:
aProperty.Name = INFO_TEXTFILEHEADER;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
break;
case XML_SHOW_DELETED:
aProperty.Name = INFO_SHOWDELETEDROWS;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
break;
case XML_IS_TABLE_NAME_LENGTH_LIMITED:
aProperty.Name = INFO_ALLOWLONGTABLENAMES;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
bFoundTableNameLengthLimited = true;
break;
case XML_SYSTEM_DRIVER_SETTINGS:
@@ -106,54 +103,54 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
break;
case XML_ENABLE_SQL92_CHECK:
aProperty.Name = PROPERTY_ENABLESQL92CHECK;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
break;
case XML_APPEND_TABLE_ALIAS_NAME:
aProperty.Name = INFO_APPEND_TABLE_ALIAS;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
bFoundAppendTableAliasName = true;
break;
case XML_PARAMETER_NAME_SUBSTITUTION:
aProperty.Name = INFO_PARAMETERNAMESUBST;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
bFoundParamNameSubstitution = true;
break;
case XML_IGNORE_DRIVER_PRIVILEGES:
aProperty.Name = INFO_IGNOREDRIVER_PRIV;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
break;
case XML_BOOLEAN_COMPARISON_MODE:
aProperty.Name = PROPERTY_BOOLEANCOMPARISONMODE;
- if ( sValue == "equal-integer" )
+ if ( aIter.toView() == "equal-integer" )
aProperty.Value <<= sal_Int32(0);
- else if ( sValue == "is-boolean" )
+ else if ( aIter.toView() == "is-boolean" )
aProperty.Value <<= sal_Int32(1);
- else if ( sValue == "equal-boolean" )
+ else if ( aIter.toView() == "equal-boolean" )
aProperty.Value <<= sal_Int32(2);
- else if ( sValue == "equal-use-only-zero" )
+ else if ( aIter.toView() == "equal-use-only-zero" )
aProperty.Value <<= sal_Int32(3);
break;
case XML_USE_CATALOG:
aProperty.Name = INFO_USECATALOG;
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
break;
case XML_BASE_DN:
aProperty.Name = INFO_CONN_LDAP_BASEDN;
break;
case XML_MAX_ROW_COUNT:
aProperty.Name = INFO_CONN_LDAP_ROWCOUNT;
- aProperty.Value <<= sValue.toInt32();
+ aProperty.Value <<= aIter.toInt32();
break;
case XML_JAVA_CLASSPATH:
aProperty.Name = "JavaDriverClassPath";
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
if ( !aProperty.Name.isEmpty() )
{
if ( !aProperty.Value.hasValue() )
- aProperty.Value <<= sValue;
+ aProperty.Value <<= aIter.toString();
rImport.addInfo(aProperty);
}
}
@@ -183,7 +180,7 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
{
try
{
- xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(true));
+ xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,Any(true));
}
catch(const Exception&)
{
diff --git a/dbaccess/source/filter/xml/xmlDataSource.hxx b/dbaccess/source/filter/xml/xmlDataSource.hxx
index ee9c6d59daed..5b78ff4fe40d 100644
--- a/dbaccess/source/filter/xml/xmlDataSource.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSource.hxx
@@ -39,8 +39,6 @@ namespace dbaxml
const UsedFor _eUsedFor );
virtual ~OXMLDataSource() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
index 82ab36eb2c75..c1400970181a 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
@@ -22,7 +22,6 @@
#include <xmloff/xmltoken.hxx>
#include <strings.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
-#include <sal/log.hxx>
namespace dbaxml
{
@@ -39,8 +38,6 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
bool bFoundField = false,bFoundThousand = false, bFoundCharset = false;
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
aProperty.Name.clear();
switch( aIter.getToken() & TOKEN_MASK )
@@ -72,11 +69,11 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
bFoundCharset = true;
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
if ( !aProperty.Name.isEmpty() )
{
- aProperty.Value <<= sValue;
+ aProperty.Value <<= aIter.toString();
rImport.addInfo(aProperty);
}
}
@@ -94,20 +91,20 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
if ( !bFoundField )
{
aProperty.Name = INFO_FIELDDELIMITER;
- aProperty.Value <<= OUString(";");
+ aProperty.Value <<= u";"_ustr;
rImport.addInfo(aProperty);
}
if ( !bFoundThousand )
{
aProperty.Name = INFO_THOUSANDSDELIMITER;
- aProperty.Value <<= OUString(",");
+ aProperty.Value <<= u","_ustr;
rImport.addInfo(aProperty);
}
}
if ( (nElement & TOKEN_MASK) == XML_FONT_CHARSET && !bFoundCharset )
{
aProperty.Name = INFO_CHARSET;
- aProperty.Value <<= OUString("utf8");
+ aProperty.Value <<= u"utf8"_ustr;
rImport.addInfo(aProperty);
}
}
diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
index e96e9290f86e..e29d37a7d3a8 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
@@ -30,8 +30,6 @@ namespace dbaxml
OXMLDataSourceInfo( ODBFilter& rImport,
sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList);
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLDataSourceInfo() override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
index 3b7e6d512dc9..b3b8310dde51 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
@@ -47,17 +47,15 @@ OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
switch( aIter.getToken() & TOKEN_MASK )
{
case XML_DATA_SOURCE_SETTING_IS_LIST:
- m_bIsList = sValue == "true";
+ m_bIsList = aIter.toView() == "true";
break;
case XML_DATA_SOURCE_SETTING_TYPE:
{
// needs to be translated into a css::uno::Type
- static std::map< OUString, css::uno::Type > s_aTypeNameMap = [&]()
+ static std::map< OUString, css::uno::Type > s_aTypeNameMap = []()
{
std::map< OUString, css::uno::Type > tmp;
tmp[GetXMLToken( XML_BOOLEAN)] = cppu::UnoType<bool>::get();
@@ -71,17 +69,17 @@ OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport
return tmp;
}();
- const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(sValue);
+ const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(aIter.toString());
OSL_ENSURE(s_aTypeNameMap.end() != aTypePos, "OXMLDataSourceSetting::OXMLDataSourceSetting: invalid type!");
if (s_aTypeNameMap.end() != aTypePos)
m_aPropType = aTypePos->second;
}
break;
case XML_DATA_SOURCE_SETTING_NAME:
- m_aSetting.Name = sValue;
+ m_aSetting.Name = aIter.toString();
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
@@ -140,12 +138,12 @@ void OXMLDataSourceSetting::addValue(const OUString& _sValue)
aValue = convertString(m_aPropType, _sValue);
if ( !m_bIsList )
- m_aSetting.Value = aValue;
+ m_aSetting.Value = std::move(aValue);
else
{
sal_Int32 nPos = m_aInfoSequence.getLength();
m_aInfoSequence.realloc(nPos+1);
- m_aInfoSequence[nPos] = aValue;
+ m_aInfoSequence.getArray()[nPos] = std::move(aValue);
}
}
@@ -171,20 +169,28 @@ Any OXMLDataSourceSetting::convertString(const css::uno::Type& _rExpectedType, c
}
break;
case TypeClass_SHORT: // sal_Int16
+ { // it's a real int16 property
+ sal_Int32 nValue(0);
+ bool const bSuccess =
+ ::sax::Converter::convertNumber(nValue, _rReadCharacters,
+ SAL_MIN_INT16, SAL_MAX_INT16);
+ SAL_WARN_IF(!bSuccess, "dbaccess",
+ "OXMLDataSourceSetting::convertString: could not convert \""
+ << _rReadCharacters << "\" into a sal_Int16!");
+ aReturn <<= static_cast<sal_Int16>(nValue);
+ break;
+ }
case TypeClass_LONG: // sal_Int32
- { // it's a real int32/16 property
- sal_Int32 nValue(0);
- bool const bSuccess =
- ::sax::Converter::convertNumber(nValue, _rReadCharacters);
- SAL_WARN_IF(!bSuccess, "dbaccess",
- "OXMLDataSourceSetting::convertString: could not convert \""
- << _rReadCharacters << "\" into an integer!");
- if (TypeClass_SHORT == _rExpectedType.getTypeClass())
- aReturn <<= static_cast<sal_Int16>(nValue);
- else
- aReturn <<= nValue;
- break;
- }
+ { // it's a real int32 property
+ sal_Int32 nValue(0);
+ bool const bSuccess =
+ ::sax::Converter::convertNumber(nValue, _rReadCharacters);
+ SAL_WARN_IF(!bSuccess, "dbaccess",
+ "OXMLDataSourceSetting::convertString: could not convert \""
+ << _rReadCharacters << "\" into a sal_Int32!");
+ aReturn <<= nValue;
+ break;
+ }
case TypeClass_HYPER:
{
OSL_FAIL("OXMLDataSourceSetting::convertString: 64-bit integers not implemented yet!");
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
index 49008d93e897..3ed92f80e79b 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
@@ -45,9 +45,6 @@ namespace dbaxml
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
virtual void SAL_CALL characters( const OUString& rChars ) override;
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
index 0cba86f5a1dd..50fea5c000aa 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
@@ -31,8 +31,6 @@ namespace dbaxml
OXMLDataSourceSettings( ODBFilter& rImport );
virtual ~OXMLDataSourceSettings() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlDatabase.cxx b/dbaccess/source/filter/xml/xmlDatabase.cxx
index 9de9bf349810..3c56a58f8d67 100644
--- a/dbaccess/source/filter/xml/xmlDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlDatabase.cxx
@@ -57,7 +57,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabase::createFa
switch( nElement & TOKEN_MASK )
{
- case XML_DATASOURCE:
+ case XML_DATA_SOURCE:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
pContext = new OXMLDataSource( GetOwnImport(), xAttrList, OXMLDataSource::eDataSource );
break;
@@ -66,7 +66,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabase::createFa
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(GetOwnImport().getDataSource(),"Forms",aValue);
+ dbtools::getDataSourceSetting(GetOwnImport().getDataSource(), u"Forms"_ustr, aValue);
aValue >>= sService;
if ( sService.isEmpty() )
{
@@ -81,7 +81,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabase::createFa
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(GetOwnImport().getDataSource(),"Reports",aValue);
+ dbtools::getDataSourceSetting(GetOwnImport().getDataSource(), u"Reports"_ustr, aValue);
aValue >>= sService;
if ( sService.isEmpty() )
{
@@ -96,7 +96,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabase::createFa
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(GetOwnImport().getDataSource(),"CommandDefinitions",aValue);
+ dbtools::getDataSourceSetting(GetOwnImport().getDataSource(), u"CommandDefinitions"_ustr, aValue);
aValue >>= sService;
if ( sService.isEmpty() )
{
diff --git a/dbaccess/source/filter/xml/xmlDatabase.hxx b/dbaccess/source/filter/xml/xmlDatabase.hxx
index 989dab658662..0dab56c51ca7 100644
--- a/dbaccess/source/filter/xml/xmlDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabase.hxx
@@ -34,8 +34,6 @@ namespace dbaxml
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
index 1d20f52fb217..146ecb401747 100644
--- a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
OXMLDatabaseDescription( ODBFilter& rImport);
virtual ~OXMLDatabaseDescription() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlDocuments.cxx b/dbaccess/source/filter/xml/xmlDocuments.cxx
index 71d5b4589e3a..80834d353735 100644
--- a/dbaccess/source/filter/xml/xmlDocuments.cxx
+++ b/dbaccess/source/filter/xml/xmlDocuments.cxx
@@ -19,6 +19,7 @@
#include "xmlDocuments.hxx"
#include "xmlfilter.hxx"
+#include <utility>
#include <xmloff/xmltoken.hxx>
#include <xmloff/ProgressBarHelper.hxx>
#include "xmlQuery.hxx"
@@ -35,23 +36,23 @@ namespace dbaxml
OXMLDocuments::OXMLDocuments( ODBFilter& rImport
,const Reference< XNameAccess >& _xContainer
- ,const OUString& _sCollectionServiceName
- ,const OUString& _sComponentServiceName) :
+ ,OUString _sCollectionServiceName
+ ,OUString _sComponentServiceName) :
SvXMLImportContext( rImport )
,m_xContainer(_xContainer)
- ,m_sCollectionServiceName(_sCollectionServiceName)
- ,m_sComponentServiceName(_sComponentServiceName)
+ ,m_sCollectionServiceName(std::move(_sCollectionServiceName))
+ ,m_sComponentServiceName(std::move(_sComponentServiceName))
{
}
OXMLDocuments::OXMLDocuments( ODBFilter& rImport
,const Reference< XNameAccess >& _xContainer
- ,const OUString& _sCollectionServiceName
+ ,OUString _sCollectionServiceName
) :
SvXMLImportContext( rImport )
,m_xContainer(_xContainer)
- ,m_sCollectionServiceName(_sCollectionServiceName)
+ ,m_sCollectionServiceName(std::move(_sCollectionServiceName))
{
}
@@ -70,7 +71,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDocuments::createF
case XML_TABLE:
case XML_TABLE_REPRESENTATION:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLTable( GetOwnImport(), xAttrList, m_xContainer, "com.sun.star.sdb.TableDefinition");
+ pContext = new OXMLTable( GetOwnImport(), xAttrList, m_xContainer, u"com.sun.star.sdb.TableDefinition"_ustr);
break;
case XML_QUERY:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
diff --git a/dbaccess/source/filter/xml/xmlDocuments.hxx b/dbaccess/source/filter/xml/xmlDocuments.hxx
index f6afc1d3a562..49c6346aa83e 100644
--- a/dbaccess/source/filter/xml/xmlDocuments.hxx
+++ b/dbaccess/source/filter/xml/xmlDocuments.hxx
@@ -37,19 +37,17 @@ namespace dbaxml
// for forms and reports
OXMLDocuments( ODBFilter& rImport
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
- ,const OUString& _sCollectionServiceName
- ,const OUString& _sComponentServiceName);
+ ,OUString _sCollectionServiceName
+ ,OUString _sComponentServiceName);
// for queries
OXMLDocuments( ODBFilter& rImport
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
- ,const OUString& _sCollectionServiceName = OUString()
+ ,OUString _sCollectionServiceName = OUString()
);
virtual ~OXMLDocuments() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlExport.cxx b/dbaccess/source/filter/xml/xmlExport.cxx
index 333d09dd15c2..a62f34a24820 100644
--- a/dbaccess/source/filter/xml/xmlExport.cxx
+++ b/dbaccess/source/filter/xml/xmlExport.cxx
@@ -20,10 +20,10 @@
#include "xmlExport.hxx"
#include "xmlAutoStyle.hxx"
#include <sax/tools/converter.hxx>
+#include <utility>
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnamespace.hxx>
#include <xmloff/namespacemap.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <comphelper/types.hxx>
#include <strings.hxx>
@@ -45,13 +45,12 @@
#include <com/sun/star/awt/FontDescriptor.hpp>
#include <svl/filenotation.hxx>
#include <unotools/pathoptions.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <connectivity/DriversConfig.hxx>
#include <connectivity/dbtools.hxx>
#include <optional>
#include <memory>
-#include <iterator>
using namespace comphelper;
using namespace ::com::sun::star::sdb;
@@ -64,7 +63,7 @@ com_sun_star_comp_sdb_DBExportFilter_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
return cppu::acquire(new ::dbaxml::ODBExport(context,
- "com.sun.star.comp.sdb.DBExportFilter"));
+ u"com.sun.star.comp.sdb.DBExportFilter"_ustr));
}
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
@@ -72,7 +71,7 @@ com_sun_star_comp_sdb_XMLSettingsExporter_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
return cppu::acquire(new ::dbaxml::ODBExport(context,
- "com.sun.star.comp.sdb.XMLSettingsExporter",
+ u"com.sun.star.comp.sdb.XMLSettingsExporter"_ustr,
SvXMLExportFlags::SETTINGS | SvXMLExportFlags::PRETTY ));
}
@@ -81,7 +80,7 @@ com_sun_star_comp_sdb_XMLFullExporter_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
return cppu::acquire(new ::dbaxml::ODBExport(context,
- "com.sun.star.comp.sdb.XMLFullExporter",
+ u"com.sun.star.comp.sdb.XMLFullExporter"_ustr,
SvXMLExportFlags::ALL));
}
@@ -96,24 +95,24 @@ namespace dbaxml
switch (_rType.getTypeClass())
{
case TypeClass_STRING:
- return "string";
+ return u"string"_ustr;
case TypeClass_DOUBLE:
- return "double";
+ return u"double"_ustr;
case TypeClass_BOOLEAN:
- return "boolean";
+ return u"boolean"_ustr;
case TypeClass_BYTE:
case TypeClass_SHORT:
- return "short";
+ return u"short"_ustr;
case TypeClass_LONG:
- return "int";
+ return u"int"_ustr;
case TypeClass_HYPER:
- return "long";
+ return u"long"_ustr;
case TypeClass_ENUM:
- return "int";
+ return u"int"_ustr;
default:
OSL_FAIL( "lcl_implGetPropertyXMLType: unsupported value type!" );
- return "double";
+ return u"double"_ustr;
}
}
@@ -128,7 +127,7 @@ namespace dbaxml
/** this method is called for every item that has the
MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
virtual void handleSpecialItem(
- SvXMLAttributeList& /*rAttrList*/,
+ comphelper::AttributeList& /*rAttrList*/,
const XMLPropertyState& /*rProperty*/,
const SvXMLUnitConverter& /*rUnitConverter*/,
const SvXMLNamespaceMap& /*rNamespaceMap*/,
@@ -184,27 +183,27 @@ ODBExport::ODBExport(const Reference< XComponentContext >& _rxContext, OUString
GetAutoStylePool()->AddFamily(
XmlStyleFamily::TABLE_TABLE,
- OUString(XML_STYLE_FAMILY_TABLE_TABLE_STYLES_NAME ),
+ XML_STYLE_FAMILY_TABLE_TABLE_STYLES_NAME,
m_xExportHelper.get(),
- OUString(XML_STYLE_FAMILY_TABLE_TABLE_STYLES_PREFIX ));
+ XML_STYLE_FAMILY_TABLE_TABLE_STYLES_PREFIX);
GetAutoStylePool()->AddFamily(
XmlStyleFamily::TABLE_COLUMN,
- OUString(XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_NAME ),
+ XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_NAME,
m_xColumnExportHelper.get(),
- OUString(XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX ));
+ XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX);
GetAutoStylePool()->AddFamily(
XmlStyleFamily::TABLE_CELL,
- OUString(XML_STYLE_FAMILY_TABLE_CELL_STYLES_NAME ),
+ XML_STYLE_FAMILY_TABLE_CELL_STYLES_NAME,
m_xCellExportHelper.get(),
- OUString(XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX ));
+ XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX);
GetAutoStylePool()->AddFamily(
XmlStyleFamily::TABLE_ROW,
- OUString(XML_STYLE_FAMILY_TABLE_ROW_STYLES_NAME ),
+ XML_STYLE_FAMILY_TABLE_ROW_STYLES_NAME,
m_xRowExportHelper.get(),
- OUString(XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX ));
+ XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX);
}
void ODBExport::exportDataSource()
@@ -246,13 +245,10 @@ void ODBExport::exportDataSource()
{
}
- Sequence< Property > aProperties = xSettingsInfo->getProperties();
- const Property* pProperties = aProperties.getConstArray();
- const Property* pPropertiesEnd = pProperties + aProperties.getLength();
- for ( ; pProperties != pPropertiesEnd; ++pProperties )
+ for (auto& property : xSettingsInfo->getProperties())
{
OUString sValue;
- Any aValue = xDataSourceSettings->getPropertyValue( pProperties->Name );
+ Any aValue = xDataSourceSettings->getPropertyValue(property.Name);
switch ( aValue.getValueTypeClass() )
{
case TypeClass_STRING:
@@ -283,15 +279,15 @@ void ODBExport::exportDataSource()
const XMLTokenEnum eAttributeToken;
const ::std::optional< OUString > aXMLDefault;
- PropertyMap( const OUString& _rPropertyName, const XMLTokenEnum _eToken )
- :sPropertyName( _rPropertyName )
+ PropertyMap( OUString _sPropertyName, const XMLTokenEnum _eToken )
+ :sPropertyName(std::move( _sPropertyName ))
,eAttributeToken( _eToken )
,aXMLDefault()
{
}
- PropertyMap( const OUString& _rPropertyName, const XMLTokenEnum _eToken, const OUString& _rDefault )
- :sPropertyName( _rPropertyName )
+ PropertyMap( OUString _sPropertyName, const XMLTokenEnum _eToken, const OUString& _rDefault )
+ :sPropertyName(std::move( _sPropertyName ))
,eAttributeToken( _eToken )
,aXMLDefault( _rDefault )
{
@@ -316,7 +312,7 @@ void ODBExport::exportDataSource()
bool bIsXMLDefault = false;
for (const auto & aToken : aTokens)
{
- if ( pProperties->Name == aToken.sPropertyName )
+ if (property.Name == aToken.sPropertyName)
{
eToken = aToken.eAttributeToken;
@@ -338,15 +334,15 @@ void ODBExport::exportDataSource()
{
// for properties which are not REMOVABLE, we care for their state, and
// only export them if they're not DEFAULTed
- if ( ( pProperties->Attributes & PropertyAttribute::REMOVABLE ) == 0 )
+ if ((property.Attributes & PropertyAttribute::REMOVABLE) == 0)
{
- PropertyState ePropertyState = xSettingsState->getPropertyState( pProperties->Name );
+ PropertyState ePropertyState = xSettingsState->getPropertyState(property.Name);
if ( PropertyState_DEFAULT_VALUE == ePropertyState )
continue;
}
// special handlings
- if ( pProperties->Name == PROPERTY_BOOLEANCOMPARISONMODE )
+ if (property.Name == PROPERTY_BOOLEANCOMPARISONMODE)
{
if ( sValue == "0" )
sValue = "equal-integer";
@@ -360,56 +356,55 @@ void ODBExport::exportDataSource()
continue;
eToken = XML_BOOLEAN_COMPARISON_MODE;
}
- else if ( pProperties->Name == INFO_AUTORETRIEVEENABLED )
+ else if (property.Name == INFO_AUTORETRIEVEENABLED)
{
aValue >>= bAutoIncrementEnabled;
continue;
}
- else if ( pProperties->Name == INFO_AUTORETRIEVEVALUE )
+ else if (property.Name == INFO_AUTORETRIEVEVALUE)
{
aAutoIncrement.first = sValue;
continue;
}
- else if ( pProperties->Name == PROPERTY_AUTOINCREMENTCREATION )
+ else if (property.Name == PROPERTY_AUTOINCREMENTCREATION)
{
aAutoIncrement.second = sValue;
continue;
}
- else if ( pProperties->Name == INFO_TEXTDELIMITER )
+ else if (property.Name == INFO_TEXTDELIMITER)
{
aDelimiter.sText = sValue;
aDelimiter.bUsed = true;
continue;
}
- else if ( pProperties->Name == INFO_FIELDDELIMITER )
+ else if (property.Name == INFO_FIELDDELIMITER)
{
aDelimiter.sField = sValue;
aDelimiter.bUsed = true;
continue;
}
- else if ( pProperties->Name == INFO_DECIMALDELIMITER )
+ else if (property.Name == INFO_DECIMALDELIMITER)
{
aDelimiter.sDecimal = sValue;
aDelimiter.bUsed = true;
continue;
}
- else if ( pProperties->Name == INFO_THOUSANDSDELIMITER )
+ else if (property.Name == INFO_THOUSANDSDELIMITER)
{
aDelimiter.sThousand = sValue;
aDelimiter.bUsed = true;
continue;
}
- else if ( pProperties->Name == INFO_CHARSET )
+ else if (property.Name == INFO_CHARSET)
{
m_sCharSet = sValue;
continue;
}
else
{
- if ( !aDriverSupportedProperties.has(pProperties->Name) || aDriverSupportedProperties.get(pProperties->Name) != aValue )
+ if ( !aDriverSupportedProperties.has(property.Name) || aDriverSupportedProperties.get(property.Name) != aValue )
{
- m_aDataSourceSettings.emplace_back(
- pProperties->Name, pProperties->Type, aValue );
+ m_aDataSourceSettings.emplace_back(property.Name, property.Type, aValue);
}
continue;
}
@@ -418,11 +413,11 @@ void ODBExport::exportDataSource()
aSettingsMap.emplace(eToken,sValue);
}
if ( bAutoIncrementEnabled && !(aAutoIncrement.first.isEmpty() && aAutoIncrement.second.isEmpty()) )
- m_aAutoIncrement.reset( new TStringPair(aAutoIncrement));
+ m_oAutoIncrement = aAutoIncrement;
if ( aDelimiter.bUsed )
- m_aDelimiter.reset( new TDelimiter( aDelimiter ) );
+ m_aDelimiter.reset(new TDelimiter(std::move(aDelimiter)));
- SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, XML_DATASOURCE, true, true);
+ SvXMLElementExport aElem(*this, XML_NAMESPACE_DB, XML_DATA_SOURCE, true, true);
exportConnectionData();
exportDriverSettings(aSettingsMap);
@@ -562,7 +557,7 @@ void ODBExport::exportConnectionData()
Reference< XPropertySetInfo > xSettingsInfo( xDataSourceSettings->getPropertySetInfo(), UNO_SET_THROW );
- const OUString sPropertyName = "LocalSocket";
+ static constexpr OUString sPropertyName = u"LocalSocket"_ustr;
if ( xSettingsInfo->hasPropertyByName( sPropertyName ) )
{
OUString sPropertyValue;
@@ -597,7 +592,7 @@ template< typename T > void ODBExport::exportDataSourceSettingsSequence(
css::uno::Sequence<T> anySeq;
bool bSuccess = in->Value >>= anySeq;
assert(bSuccess); (void)bSuccess;
- for (T const & i : anySeq )
+ for (T const& i : anySeq)
{
SvXMLElementExport aDataValue(*this,XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_VALUE, true, false);
// (no whitespace inside the tag)
@@ -700,10 +695,10 @@ void ODBExport::exportDelimiter()
void ODBExport::exportAutoIncrement()
{
- if (m_aAutoIncrement)
+ if (m_oAutoIncrement)
{
- AddAttribute(XML_NAMESPACE_DB, XML_ADDITIONAL_COLUMN_STATEMENT,m_aAutoIncrement->second);
- AddAttribute(XML_NAMESPACE_DB, XML_ROW_RETRIEVING_STATEMENT,m_aAutoIncrement->first);
+ AddAttribute(XML_NAMESPACE_DB, XML_ADDITIONAL_COLUMN_STATEMENT,m_oAutoIncrement->second);
+ AddAttribute(XML_NAMESPACE_DB, XML_ROW_RETRIEVING_STATEMENT,m_oAutoIncrement->first);
SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, XML_AUTO_INCREMENT, true, true);
}
}
@@ -716,12 +711,10 @@ void ODBExport::exportSequence(const Sequence< OUString>& _aValue
{
SvXMLElementExport aElem(*this,XML_NAMESPACE_DB, _eTokenFilter, true, true);
- const OUString* pIter = _aValue.getConstArray();
- const OUString* pEnd = pIter + _aValue.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& string : _aValue)
{
SvXMLElementExport aDataSource(*this,XML_NAMESPACE_DB, _eTokenType, true, false);
- Characters(*pIter);
+ Characters(string);
}
}
}
@@ -757,14 +750,11 @@ void ODBExport::exportCollection(const Reference< XNameAccess >& _xCollection
std::unique_ptr<SvXMLElementExport> pComponents;
if ( _bExportContext )
pComponents.reset( new SvXMLElementExport(*this,XML_NAMESPACE_DB, _eComponents, true, true));
- Sequence< OUString> aSeq = _xCollection->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& name : _xCollection->getElementNames())
{
- Reference<XPropertySet> xProp(_xCollection->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xProp(_xCollection->getByName(name), UNO_QUERY);
if ( _bExportContext && XML_TABLE_REPRESENTATIONS != _eComponents )
- AddAttribute(XML_NAMESPACE_DB, XML_NAME,*pIter);
+ AddAttribute(XML_NAMESPACE_DB, XML_NAME, name);
Reference< XNameAccess > xSub(xProp,UNO_QUERY);
if ( xSub.is() )
{
@@ -780,7 +770,7 @@ void ODBExport::exportComponent(XPropertySet* _xProp)
OUString sValue;
_xProp->getPropertyValue(PROPERTY_PERSISTENT_NAME) >>= sValue;
bool bIsForm = true;
- _xProp->getPropertyValue("IsForm") >>= bIsForm;
+ _xProp->getPropertyValue(u"IsForm"_ustr) >>= bIsForm;
if ( bIsForm )
sValue = "forms/" + sValue;
else
@@ -841,7 +831,7 @@ void ODBExport::exportTable(XPropertySet* _xProp)
exportFilter(_xProp,PROPERTY_ORDER,XML_ORDER_STATEMENT);
}
-void ODBExport::exportStyleName(XPropertySet* _xProp,SvXMLAttributeList& _rAtt)
+void ODBExport::exportStyleName(XPropertySet* _xProp,comphelper::AttributeList& _rAtt)
{
Reference<XPropertySet> xFind(_xProp);
exportStyleName(XML_STYLE_NAME,xFind,_rAtt,m_aAutoStyleNames);
@@ -849,7 +839,7 @@ void ODBExport::exportStyleName(XPropertySet* _xProp,SvXMLAttributeList& _rAtt)
exportStyleName(XML_DEFAULT_ROW_STYLE_NAME,xFind,_rAtt,m_aRowAutoStyleNames);
}
-void ODBExport::exportStyleName(const ::xmloff::token::XMLTokenEnum _eToken,const uno::Reference<beans::XPropertySet>& _xProp,SvXMLAttributeList& _rAtt,TPropertyStyleMap& _rMap)
+void ODBExport::exportStyleName(const ::xmloff::token::XMLTokenEnum _eToken,const uno::Reference<beans::XPropertySet>& _xProp,comphelper::AttributeList& _rAtt,TPropertyStyleMap& _rMap)
{
TPropertyStyleMap::const_iterator aFind = _rMap.find(_xProp);
if ( aFind != _rMap.end() )
@@ -863,15 +853,15 @@ void ODBExport::exportStyleName(const ::xmloff::token::XMLTokenEnum _eToken,cons
void ODBExport::exportTableName(XPropertySet* _xProp,bool _bUpdate)
{
OUString sValue;
- _xProp->getPropertyValue(_bUpdate ? OUString(PROPERTY_UPDATE_TABLENAME) : OUString(PROPERTY_NAME)) >>= sValue;
+ _xProp->getPropertyValue(_bUpdate ? PROPERTY_UPDATE_TABLENAME : PROPERTY_NAME) >>= sValue;
if ( sValue.isEmpty() )
return;
AddAttribute(XML_NAMESPACE_DB, XML_NAME,sValue);
- _xProp->getPropertyValue(_bUpdate ? OUString(PROPERTY_UPDATE_SCHEMANAME) : OUString(PROPERTY_SCHEMANAME)) >>= sValue;
+ _xProp->getPropertyValue(_bUpdate ? PROPERTY_UPDATE_SCHEMANAME : PROPERTY_SCHEMANAME) >>= sValue;
if ( !sValue.isEmpty() )
AddAttribute(XML_NAMESPACE_DB, XML_SCHEMA_NAME,sValue);
- _xProp->getPropertyValue(_bUpdate ? OUString(PROPERTY_UPDATE_CATALOGNAME) : OUString(PROPERTY_CATALOGNAME)) >>= sValue;
+ _xProp->getPropertyValue(_bUpdate ? PROPERTY_UPDATE_CATALOGNAME : PROPERTY_CATALOGNAME) >>= sValue;
if ( !sValue.isEmpty() )
AddAttribute(XML_NAMESPACE_DB, XML_CATALOG_NAME,sValue);
@@ -912,10 +902,9 @@ void ODBExport::exportColumns(const Reference<XColumnsSupplier>& _xColSup)
if ( aFind != m_aTableDummyColumns.end() )
{
SvXMLElementExport aColumns(*this,XML_NAMESPACE_DB, XML_COLUMNS, true, true);
- SvXMLAttributeList* pAtt = new SvXMLAttributeList;
- Reference<XAttributeList> xAtt = pAtt;
+ rtl::Reference<comphelper::AttributeList> pAtt = new comphelper::AttributeList;
exportStyleName(aFind->second.get(),*pAtt);
- AddAttributeList(xAtt);
+ AddAttributeList(pAtt);
SvXMLElementExport aColumn(*this,XML_NAMESPACE_DB, XML_COLUMN, true, true);
}
@@ -923,16 +912,12 @@ void ODBExport::exportColumns(const Reference<XColumnsSupplier>& _xColSup)
}
SvXMLElementExport aColumns(*this,XML_NAMESPACE_DB, XML_COLUMNS, true, true);
- Sequence< OUString> aSeq = xNameAccess->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for( ; pIter != pEnd ; ++pIter)
+ for (auto& name : xNameAccess->getElementNames())
{
- Reference<XPropertySet> xProp(xNameAccess->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xProp(xNameAccess->getByName(name), UNO_QUERY);
if ( xProp.is() )
{
- SvXMLAttributeList* pAtt = new SvXMLAttributeList;
- Reference<XAttributeList> xAtt = pAtt;
+ rtl::Reference<comphelper::AttributeList> pAtt = new comphelper::AttributeList;
exportStyleName(xProp.get(),*pAtt);
bool bHidden = getBOOL(xProp->getPropertyValue(PROPERTY_HIDDEN));
@@ -943,7 +928,7 @@ void ODBExport::exportColumns(const Reference<XColumnsSupplier>& _xColSup)
if ( bHidden || !sValue.isEmpty() || aColumnDefault.hasValue() || pAtt->getLength() )
{
- AddAttribute(XML_NAMESPACE_DB, XML_NAME,*pIter);
+ AddAttribute(XML_NAMESPACE_DB, XML_NAME, name);
if ( bHidden )
AddAttribute(XML_NAMESPACE_DB, XML_VISIBLE,XML_FALSE);
@@ -960,7 +945,7 @@ void ODBExport::exportColumns(const Reference<XColumnsSupplier>& _xColSup)
}
if ( pAtt->getLength() )
- AddAttributeList(xAtt);
+ AddAttributeList(pAtt);
}
if ( GetAttrList().getLength() )
@@ -980,7 +965,7 @@ void ODBExport::exportForms()
{
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(getDataSource(),"Forms",aValue);
+ dbtools::getDataSourceSetting(getDataSource(), u"Forms"_ustr, aValue);
aValue >>= sService;
if ( !sService.isEmpty() )
return;
@@ -1001,7 +986,7 @@ void ODBExport::exportReports()
{
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(getDataSource(),"Reports",aValue);
+ dbtools::getDataSourceSetting(getDataSource(), u"Reports"_ustr, aValue);
aValue >>= sService;
if ( !sService.isEmpty() )
return;
@@ -1022,7 +1007,7 @@ void ODBExport::exportQueries(bool _bExportContext)
{
Any aValue;
OUString sService;
- dbtools::getDataSourceSetting(getDataSource(),"CommandDefinitions",aValue);
+ dbtools::getDataSourceSetting(getDataSource(), u"CommandDefinitions"_ustr, aValue);
aValue >>= sService;
if ( !sService.isEmpty() )
return;
@@ -1075,12 +1060,11 @@ void ODBExport::exportAutoStyle(XPropertySet* _xProp)
,TExportPropMapperPair(m_xRowExportHelper,TEnumMapperPair(&m_aRowAutoStyleNames,XmlStyleFamily::TABLE_ROW))
};
- std::vector< XMLPropertyState > aPropertyStates;
for (const auto & i : pExportHelper)
{
- aPropertyStates = i.first->Filter(_xProp);
+ std::vector< XMLPropertyState > aPropertyStates = i.first->Filter(*this, _xProp);
if ( !aPropertyStates.empty() )
- i.second.first->emplace( _xProp,GetAutoStylePool()->Add( i.second.second, aPropertyStates ) );
+ i.second.first->emplace( _xProp,GetAutoStylePool()->Add( i.second.second, std::move(aPropertyStates) ) );
}
Reference< XNameAccess > xCollection;
@@ -1092,7 +1076,7 @@ void ODBExport::exportAutoStyle(XPropertySet* _xProp)
GetFontAutoStylePool()->Add(aFont.Name,aFont.StyleName,static_cast<FontFamily>(aFont.Family),
static_cast<FontPitch>(aFont.Pitch),aFont.CharSet );
- m_aCurrentPropertyStates = m_xCellExportHelper->Filter(_xProp);
+ m_aCurrentPropertyStates = m_xCellExportHelper->Filter(*this, _xProp);
if ( !m_aCurrentPropertyStates.empty() && !xCollection->hasElements() )
{
Reference< XDataDescriptorFactory> xFac(xCollection,UNO_QUERY);
@@ -1123,7 +1107,7 @@ void ODBExport::exportAutoStyle(XPropertySet* _xProp)
};
for (const auto & i : pExportHelper)
{
- std::vector< XMLPropertyState > aPropStates = i.first->Filter( _xProp );
+ std::vector< XMLPropertyState > aPropStates = i.first->Filter(*this, _xProp);
if ( !aPropStates.empty() )
{
const rtl::Reference < XMLPropertySetMapper >& pStyle = i.first->getPropertySetMapper();
@@ -1152,7 +1136,7 @@ void ODBExport::exportAutoStyle(XPropertySet* _xProp)
if ( XmlStyleFamily::TABLE_CELL == i.second.second )
aPropStates.insert( aPropStates.end(), m_aCurrentPropertyStates.begin(), m_aCurrentPropertyStates.end() );
if ( !aPropStates.empty() )
- i.second.first->emplace( _xProp,GetAutoStylePool()->Add( i.second.second, aPropStates ) );
+ i.second.first->emplace( _xProp,GetAutoStylePool()->Add( i.second.second, std::move(aPropStates) ) );
}
}
}
@@ -1197,28 +1181,27 @@ void ODBExport::GetViewSettings(Sequence<PropertyValue>& aProps)
try
{
- sal_Int32 nLength = aProps.getLength();
- aProps.realloc(nLength + 1);
- aProps[nLength].Name = "Queries";
Sequence< OUString> aSeq = xCollection->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
-
Sequence<PropertyValue> aQueries(aSeq.getLength());
- for(sal_Int32 i = 0;pIter != pEnd;++pIter,++i)
+ auto aQueriesRange = asNonConstRange(aQueries);
+ for (sal_Int32 i = 0; i < aSeq.getLength(); ++i)
{
- Reference<XPropertySet> xProp(xCollection->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xProp(xCollection->getByName(aSeq[i]), UNO_QUERY);
if ( xProp.is() )
{
- aQueries[i].Name = *pIter;
- aQueries[i].Value = xProp->getPropertyValue(PROPERTY_LAYOUTINFORMATION);
+ aQueriesRange[i].Name = aSeq[i];
+ aQueriesRange[i].Value = xProp->getPropertyValue(PROPERTY_LAYOUTINFORMATION);
}
}
- aProps[nLength].Value <<= aQueries;
+ sal_Int32 nLength = aProps.getLength();
+ aProps.realloc(nLength + 1);
+ auto& prop = asNonConstRange(aProps)[nLength];
+ prop.Name = "Queries";
+ prop.Value <<= aQueries;
}
catch(const Exception&)
{
- OSL_FAIL("ODBExport::GetViewSettings: Exception caught!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "ODBExport::GetViewSettings");
}
}
@@ -1238,8 +1221,9 @@ void ODBExport::GetConfigurationSettings(Sequence<PropertyValue>& aProps)
if ( aPropValues.hasElements() )
{
aProps.realloc(nLength + 1);
- aProps[nLength].Name = "layout-settings";
- aProps[nLength].Value = aValue;
+ auto pProps = aProps.getArray();
+ pProps[nLength].Name = "layout-settings";
+ pProps[nLength].Value = std::move(aValue);
}
}
catch(const Exception&)
diff --git a/dbaccess/source/filter/xml/xmlExport.hxx b/dbaccess/source/filter/xml/xmlExport.hxx
index 0e11bf51ea79..fa808eaf6378 100644
--- a/dbaccess/source/filter/xml/xmlExport.hxx
+++ b/dbaccess/source/filter/xml/xmlExport.hxx
@@ -24,8 +24,10 @@
#include <com/sun/star/document/XImporter.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp>
+
+#include <optional>
+#include <utility>
#include <xmloff/maptype.hxx>
#include <xmloff/txtprmap.hxx>
#include <xmloff/xmlexp.hxx>
@@ -44,11 +46,7 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::document;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::xml::sax;
class ODBExport : public SvXMLExport
@@ -75,15 +73,15 @@ class ODBExport : public SvXMLExport
css::uno::Type Type;
css::uno::Any Value;
- TypedPropertyValue( const OUString& _name, const css::uno::Type& _type, const css::uno::Any& _value )
- :Name( _name )
+ TypedPropertyValue( OUString _name, const css::uno::Type& _type, css::uno::Any _value )
+ :Name(std::move( _name ))
,Type( _type )
- ,Value( _value )
+ ,Value(std::move( _value ))
{
}
};
- std::unique_ptr< TStringPair > m_aAutoIncrement;
+ std::optional< TStringPair > m_oAutoIncrement;
std::unique_ptr< TDelimiter > m_aDelimiter;
std::vector< TypedPropertyValue > m_aDataSourceSettings;
std::vector< XMLPropertyState > m_aCurrentPropertyStates;
@@ -123,8 +121,8 @@ class ODBExport : public SvXMLExport
void exportReports();
void exportQueries(bool _bExportContext);
void exportTables(bool _bExportContext);
- void exportStyleName(XPropertySet* _xProp,SvXMLAttributeList& _rAtt);
- void exportStyleName(const ::xmloff::token::XMLTokenEnum _eToken,const Reference<XPropertySet>& _xProp,SvXMLAttributeList& _rAtt,TPropertyStyleMap& _rMap);
+ void exportStyleName(XPropertySet* _xProp,comphelper::AttributeList& _rAtt);
+ void exportStyleName(const ::xmloff::token::XMLTokenEnum _eToken,const Reference<XPropertySet>& _xProp,comphelper::AttributeList& _rAtt,TPropertyStyleMap& _rMap);
void exportCollection(const Reference< XNameAccess >& _xCollection
,enum ::xmloff::token::XMLTokenEnum _eComponents
,enum ::xmloff::token::XMLTokenEnum _eSubComponents
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
index 2f952504a242..c54acdd6527f 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
@@ -22,7 +22,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnamespace.hxx>
#include <strings.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <svl/filenotation.hxx>
#include <unotools/pathoptions.hxx>
#include <dsntypes.hxx>
@@ -78,7 +78,7 @@ OXMLFileBasedDatabase::OXMLFileBasedDatabase( ODBFilter& rImport,
sFileTypeExtension = sValue;
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
if ( !aProperty.Name.isEmpty() )
{
@@ -95,7 +95,7 @@ OXMLFileBasedDatabase::OXMLFileBasedDatabase( ODBFilter& rImport,
OUString sURL = aTypeCollection.getDatasourcePrefixFromMediaType(sMediaType,sFileTypeExtension) + sLocation;
try
{
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sURL));
+ xDataSource->setPropertyValue(PROPERTY_URL,Any(sURL));
}
catch(const Exception&)
{
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
index b50149b62bb1..3720e1da354a 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
OXMLFileBasedDatabase( ODBFilter& rImport,
const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLFileBasedDatabase() override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlHelper.cxx b/dbaccess/source/filter/xml/xmlHelper.cxx
index 38e90e4e9d3a..5386a4036843 100644
--- a/dbaccess/source/filter/xml/xmlHelper.cxx
+++ b/dbaccess/source/filter/xml/xmlHelper.cxx
@@ -32,7 +32,6 @@
namespace dbaxml
{
using namespace ::xmloff::token;
- using namespace ::com::sun::star::awt;
OPropertyHandlerFactory::OPropertyHandlerFactory()
{
@@ -68,12 +67,11 @@ const XMLPropertyHandler* OPropertyHandlerFactory::GetPropertyHandler(sal_Int32
return pHandler;
}
-#define MAP_END() { nullptr, 0, 0, XML_TOKEN_INVALID, 0 , 0, SvtSaveOptions::ODFSVER_010, false}
rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetTableStylesPropertySetMapper( bool bForExport )
{
static const XMLPropertyMapEntry s_aTableStylesProperties[] =
{
- MAP_END()
+ { nullptr }
};
rtl::Reference < XMLPropertyHandlerFactory> xFac = new ::xmloff::OControlPropertyHandlerFactory();
return new XMLPropertySetMapper(s_aTableStylesProperties, xFac, bForExport);
@@ -81,13 +79,14 @@ rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetTableStylesPropertySetMap
rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetColumnStylesPropertySetMapper( bool bForExport )
{
-#define MAP_CONST_COLUMN( name, prefix, token, type, context ) { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TABLE_COLUMN, context, SvtSaveOptions::ODFSVER_010, false }
static const XMLPropertyMapEntry s_aColumnStylesProperties[] =
{
- MAP_CONST_COLUMN( PROPERTY_WIDTH, XML_NAMESPACE_STYLE, XML_COLUMN_WIDTH, XML_TYPE_MEASURE, 0),
- MAP_CONST_COLUMN( PROPERTY_HIDDEN, XML_NAMESPACE_TABLE, XML_DISPLAY, XML_DB_TYPE_EQUAL|MID_FLAG_SPECIAL_ITEM, CTF_DB_ISVISIBLE ),
- MAP_CONST_COLUMN( PROPERTY_NUMBERFORMAT, XML_NAMESPACE_STYLE, XML_DATA_STYLE_NAME, XML_TYPE_NUMBER|MID_FLAG_SPECIAL_ITEM, CTF_DB_NUMBERFORMAT),
- MAP_END()
+ { PROPERTY_WIDTH, XML_NAMESPACE_STYLE, XML_COLUMN_WIDTH, XML_TYPE_MEASURE|XML_TYPE_PROP_TABLE_COLUMN, 0, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_HIDDEN, XML_NAMESPACE_TABLE, XML_DISPLAY, XML_DB_TYPE_EQUAL|MID_FLAG_SPECIAL_ITEM|XML_TYPE_PROP_TABLE_COLUMN,
+ CTF_DB_ISVISIBLE, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_NUMBERFORMAT, XML_NAMESPACE_STYLE, XML_DATA_STYLE_NAME, XML_TYPE_NUMBER|MID_FLAG_SPECIAL_ITEM|XML_TYPE_PROP_TABLE_COLUMN,
+ CTF_DB_NUMBERFORMAT, SvtSaveOptions::ODFSVER_010, false },
+ { nullptr }
};
rtl::Reference < XMLPropertyHandlerFactory> xFac = new OPropertyHandlerFactory();
return new XMLPropertySetMapper(s_aColumnStylesProperties, xFac, bForExport);
@@ -95,40 +94,47 @@ rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetColumnStylesPropertySetMa
rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetCellStylesPropertySetMapper( bool bForExport )
{
-#define MAP_CONST_CELL( name, prefix, token, type, context ) { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFSVER_010, false }
-#define MAP_CONST_TEXT( name, prefix, token, type, context ) { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFSVER_010, false }
static const XMLPropertyMapEntry s_aCellStylesProperties[] =
{
- MAP_CONST_CELL( PROPERTY_ALIGN, XML_NAMESPACE_FO, XML_TEXT_ALIGN, XML_TYPE_TEXT_ALIGN, CTF_DB_COLUMN_TEXT_ALIGN),
- MAP_CONST_TEXT( PROPERTY_FONTNAME, XML_NAMESPACE_STYLE, XML_FONT_NAME, XML_TYPE_STRING, 0 ),
- MAP_CONST_TEXT( PROPERTY_TEXTCOLOR, XML_NAMESPACE_FO, XML_COLOR, XML_TYPE_COLOR, 0 ),
- MAP_CONST_TEXT( PROPERTY_TEXTLINECOLOR, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, 0 ),
-
- MAP_CONST_TEXT( PROPERTY_TEXTRELIEF, XML_NAMESPACE_STYLE, XML_FONT_RELIEF, XML_TYPE_TEXT_FONT_RELIEF|MID_FLAG_MULTI_PROPERTY, 0 ),
- MAP_CONST_TEXT( PROPERTY_TEXTEMPHASIS, XML_NAMESPACE_STYLE, XML_TEXT_EMPHASIZE, XML_TYPE_CONTROL_TEXT_EMPHASIZE, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTCHARWIDTH, XML_NAMESPACE_STYLE, XML_FONT_CHAR_WIDTH, XML_TYPE_NUMBER16, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTCHARSET, XML_NAMESPACE_STYLE, XML_FONT_CHARSET, XML_TYPE_TEXT_FONTENCODING, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTFAMILY, XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, XML_TYPE_TEXT_FONTFAMILY, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTHEIGHT, XML_NAMESPACE_FO, XML_FONT_SIZE, XML_TYPE_MEASURE16, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTKERNING, XML_NAMESPACE_STYLE, XML_LETTER_KERNING, XML_TYPE_BOOL, 0 ),
-
- MAP_CONST_TEXT( PROPERTY_FONTORIENTATION, XML_NAMESPACE_STYLE, XML_ROTATION_ANGLE, XML_TYPE_ROTATION_ANGLE, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTPITCH, XML_NAMESPACE_STYLE, XML_FONT_PITCH, XML_TYPE_TEXT_FONTPITCH, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTSLANT, XML_NAMESPACE_FO, XML_FONT_STYLE, XML_TYPE_TEXT_POSTURE, 0 ),
- MAP_CONST_TEXT( "CharStrikeout", XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_STYLE, XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY, 0),
- MAP_CONST_TEXT( "CharStrikeout", XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TYPE, XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY, 0),
- MAP_CONST_TEXT( "CharStrikeout", XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_WIDTH, XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY, 0),
- MAP_CONST_TEXT( "CharStrikeout", XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TEXT, XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY, 0),
- MAP_CONST_TEXT( PROPERTY_FONTSTYLENAME, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, XML_TYPE_STRING, 0 ),
- MAP_CONST_TEXT( "CharUnderline", XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_STYLE, XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, 0 ),
- MAP_CONST_TEXT( "CharUnderline", XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_TYPE, XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
- MAP_CONST_TEXT( "CharUnderline", XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_WIDTH, XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
- MAP_CONST_TEXT( "CharUnderlineColor", XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, 0 ),
- MAP_CONST_TEXT( "CharUnderlineHasColor", XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTWEIGHT, XML_NAMESPACE_FO, XML_FONT_WEIGHT, XML_TYPE_TEXT_WEIGHT, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTWIDTH, XML_NAMESPACE_STYLE, XML_FONT_WIDTH, XML_TYPE_FONT_WIDTH, 0 ),
- MAP_CONST_TEXT( PROPERTY_FONTWORDLINEMODE, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_MODE, XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
- MAP_END()
+ { PROPERTY_ALIGN, XML_NAMESPACE_FO, XML_TEXT_ALIGN, XML_TYPE_TEXT_ALIGN|XML_TYPE_PROP_PARAGRAPH, CTF_DB_COLUMN_TEXT_ALIGN, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTNAME, XML_NAMESPACE_STYLE, XML_FONT_NAME, XML_TYPE_STRING|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_TEXTCOLOR, XML_NAMESPACE_FO, XML_COLOR, XML_TYPE_COLOR|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_TEXTLINECOLOR, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR,
+ XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_TEXTRELIEF, XML_NAMESPACE_STYLE, XML_FONT_RELIEF,
+ XML_TYPE_TEXT_FONT_RELIEF|MID_FLAG_MULTI_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_TEXTEMPHASIS, XML_NAMESPACE_STYLE, XML_TEXT_EMPHASIZE, XML_TYPE_CONTROL_TEXT_EMPHASIZE|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTCHARWIDTH, XML_NAMESPACE_STYLE, XML_FONT_CHAR_WIDTH, XML_TYPE_NUMBER16|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTCHARSET, XML_NAMESPACE_STYLE, XML_FONT_CHARSET, XML_TYPE_TEXT_FONTENCODING|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTFAMILY, XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, XML_TYPE_TEXT_FONTFAMILY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTHEIGHT, XML_NAMESPACE_FO, XML_FONT_SIZE, XML_TYPE_MEASURE16|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTKERNING, XML_NAMESPACE_STYLE, XML_LETTER_KERNING, XML_TYPE_BOOL|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTORIENTATION, XML_NAMESPACE_STYLE, XML_ROTATION_ANGLE, XML_TYPE_ROTATION_ANGLE|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTPITCH, XML_NAMESPACE_STYLE, XML_FONT_PITCH, XML_TYPE_TEXT_FONTPITCH|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTSLANT, XML_NAMESPACE_FO, XML_FONT_STYLE, XML_TYPE_TEXT_POSTURE|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_STRIKEOUT, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_STYLE,
+ XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_STRIKEOUT, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TYPE,
+ XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_STRIKEOUT, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_WIDTH,
+ XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_STRIKEOUT, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TEXT,
+ XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTSTYLENAME, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, XML_TYPE_STRING|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_UNDERLINE, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_STYLE,
+ XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_UNDERLINE, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_TYPE,
+ XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_UNDERLINE, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_WIDTH,
+ XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_UNDERLINE_COLOR, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR,
+ XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_CHAR_UNDERLINE_HAS_COLOR, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTWEIGHT, XML_NAMESPACE_FO, XML_FONT_WEIGHT, XML_TYPE_TEXT_WEIGHT|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTWIDTH, XML_NAMESPACE_STYLE, XML_FONT_WIDTH, XML_TYPE_FONT_WIDTH|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { PROPERTY_FONTWORDLINEMODE, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_MODE,
+ XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY|XML_TYPE_PROP_TEXT, 0 , SvtSaveOptions::ODFSVER_010, false },
+ { nullptr }
};
rtl::Reference < XMLPropertyHandlerFactory> xFac = new /*OPropertyHandlerFactory*/::xmloff::OControlPropertyHandlerFactory();
return new XMLPropertySetMapper(s_aCellStylesProperties, xFac, bForExport);
@@ -136,11 +142,10 @@ rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetCellStylesPropertySetMapp
rtl::Reference < XMLPropertySetMapper > OXMLHelper::GetRowStylesPropertySetMapper()
{
-#define MAP_CONST_ROW( name, prefix, token, type, context ) { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TABLE_ROW, context, SvtSaveOptions::ODFSVER_010, false }
static const XMLPropertyMapEntry s_aStylesProperties[] =
{
- MAP_CONST_ROW( PROPERTY_ROW_HEIGHT, XML_NAMESPACE_STYLE, XML_ROW_HEIGHT, XML_TYPE_MEASURE, 0),
- MAP_END()
+ { PROPERTY_ROW_HEIGHT, XML_NAMESPACE_STYLE, XML_ROW_HEIGHT, XML_TYPE_MEASURE|XML_TYPE_PROP_TABLE_ROW, 0, SvtSaveOptions::ODFSVER_010, false },
+ { nullptr }
};
rtl::Reference < XMLPropertyHandlerFactory> xFac = new OPropertyHandlerFactory();
return new XMLPropertySetMapper(s_aStylesProperties, xFac, true/*bForExport*/);
diff --git a/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
index 182463181e56..74a5b5e3f150 100644
--- a/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
+++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
@@ -21,13 +21,14 @@
#include "xmlComponent.hxx"
#include "xmlColumn.hxx"
#include "xmlfilter.hxx"
+#include <utility>
#include <xmloff/xmltoken.hxx>
#include <xmloff/ProgressBarHelper.hxx>
#include "xmlEnums.hxx"
#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/propertysequence.hxx>
-#include <osl/diagnose.h>
-#include <sal/log.hxx>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaxml
{
@@ -40,23 +41,21 @@ OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport
,const Reference< XFastAttributeList > & _xAttrList
,const Reference< XNameAccess >& _xParentContainer
,const OUString& _sCollectionServiceName
- ,const OUString& _sComponentServiceName) :
+ ,OUString _sComponentServiceName) :
SvXMLImportContext( rImport )
,m_sCollectionServiceName(_sCollectionServiceName)
- ,m_sComponentServiceName(_sComponentServiceName)
+ ,m_sComponentServiceName(std::move(_sComponentServiceName))
{
OUString sName;
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
switch( aIter.getToken() & TOKEN_MASK )
{
case XML_NAME:
- sName = sValue;
+ sName = aIter.toString();
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
if ( sName.isEmpty() || !_xParentContainer.is() )
@@ -75,12 +74,12 @@ OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport
m_xContainer.set(xORB->createInstanceWithArguments(_sCollectionServiceName,aArguments),UNO_QUERY);
Reference<XNameContainer> xNameContainer(_xParentContainer,UNO_QUERY);
if ( xNameContainer.is() && !xNameContainer->hasByName(sName) )
- xNameContainer->insertByName(sName,makeAny(m_xContainer));
+ xNameContainer->insertByName(sName,Any(m_xContainer));
}
}
catch(Exception&)
{
- OSL_FAIL("OXMLHierarchyCollection::OXMLHierarchyCollection -> exception caught");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OXMLHierarchyCollection::OXMLHierarchyCollection");
}
}
diff --git a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
index 953de765141e..91f0aae869db 100644
--- a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
+++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
@@ -39,7 +39,7 @@ namespace dbaxml
,const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
,const OUString& _sCollectionServiceName
- ,const OUString& _sComponentServiceName
+ ,OUString _sComponentServiceName
);
OXMLHierarchyCollection( ODBFilter& rImport
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
@@ -47,8 +47,6 @@ namespace dbaxml
);
virtual ~OXMLHierarchyCollection() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlLogin.cxx b/dbaccess/source/filter/xml/xmlLogin.cxx
index c74d98be7ddd..a4519b26e7a9 100644
--- a/dbaccess/source/filter/xml/xmlLogin.cxx
+++ b/dbaccess/source/filter/xml/xmlLogin.cxx
@@ -21,7 +21,7 @@
#include "xmlfilter.hxx"
#include <xmloff/xmltoken.hxx>
#include <strings.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/sdbc/XDataSource.hpp>
namespace dbaxml
@@ -36,15 +36,12 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport,
{
Reference<XPropertySet> xDataSource(rImport.getDataSource());
- static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
bool bUserFound = false;
if (!xDataSource.is())
return;
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
try
{
switch( aIter.getToken() & TOKEN_MASK )
@@ -55,7 +52,7 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport,
bUserFound = true;
try
{
- xDataSource->setPropertyValue(PROPERTY_USER,makeAny(sValue));
+ xDataSource->setPropertyValue(PROPERTY_USER,Any(aIter.toString()));
}
catch(const Exception&)
{
@@ -66,7 +63,7 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport,
case XML_IS_PASSWORD_REQUIRED:
try
{
- xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,makeAny(sValue == s_sTRUE));
+ xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,Any(IsXMLToken(aIter, XML_TRUE)));
}
catch(const Exception&)
{
@@ -79,14 +76,14 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport,
bUserFound = true;
PropertyValue aProperty;
aProperty.Name = "UseSystemUser";
- aProperty.Value <<= (sValue == s_sTRUE);
+ aProperty.Value <<= IsXMLToken(aIter, XML_TRUE);
rImport.addInfo(aProperty);
}
break;
case XML_LOGIN_TIMEOUT:
try
{
- Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(sValue.toInt32());
+ Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(aIter.toInt32());
}
catch(const Exception&)
{
@@ -94,7 +91,7 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport,
}
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
catch(const Exception&)
diff --git a/dbaccess/source/filter/xml/xmlLogin.hxx b/dbaccess/source/filter/xml/xmlLogin.hxx
index aefb60298214..adb25c739b78 100644
--- a/dbaccess/source/filter/xml/xmlLogin.hxx
+++ b/dbaccess/source/filter/xml/xmlLogin.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
OXMLLogin( ODBFilter& rImport,
const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLLogin() override;
};
diff --git a/dbaccess/source/filter/xml/xmlQuery.cxx b/dbaccess/source/filter/xml/xmlQuery.cxx
index 7ab4940da9d2..b1cdd90bf1b7 100644
--- a/dbaccess/source/filter/xml/xmlQuery.cxx
+++ b/dbaccess/source/filter/xml/xmlQuery.cxx
@@ -23,8 +23,7 @@
#include <xmloff/ProgressBarHelper.hxx>
#include "xmlEnums.hxx"
#include <strings.hxx>
-#include <osl/diagnose.h>
-#include <sal/log.hxx>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaxml
{
@@ -38,23 +37,21 @@ OXMLQuery::OXMLQuery( ODBFilter& rImport
,const Reference< XFastAttributeList > & _xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
) :
- OXMLTable( rImport, _xAttrList,_xParentContainer, "com.sun.star.sdb.CommandDefinition" )
+ OXMLTable( rImport, _xAttrList,_xParentContainer, u"com.sun.star.sdb.CommandDefinition"_ustr )
,m_bEscapeProcessing(true)
{
for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList ))
{
- OUString sValue = aIter.toString();
-
switch( aIter.getToken() & TOKEN_MASK )
{
case XML_COMMAND:
- m_sCommand = sValue;
+ m_sCommand = aIter.toString();
break;
case XML_ESCAPE_PROCESSING:
- m_bEscapeProcessing = sValue == "true";
+ m_bEscapeProcessing = aIter.toView() == "true";
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
}
@@ -93,25 +90,25 @@ void OXMLQuery::setProperties(Reference< XPropertySet > & _xProp )
{
OXMLTable::setProperties(_xProp);
- _xProp->setPropertyValue(PROPERTY_COMMAND,makeAny(m_sCommand));
- _xProp->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,makeAny(m_bEscapeProcessing));
+ _xProp->setPropertyValue(PROPERTY_COMMAND,Any(m_sCommand));
+ _xProp->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,Any(m_bEscapeProcessing));
if ( !m_sTable.isEmpty() )
- _xProp->setPropertyValue(PROPERTY_UPDATE_TABLENAME,makeAny(m_sTable));
+ _xProp->setPropertyValue(PROPERTY_UPDATE_TABLENAME,Any(m_sTable));
if ( !m_sCatalog.isEmpty() )
- _xProp->setPropertyValue(PROPERTY_UPDATE_CATALOGNAME,makeAny(m_sCatalog));
+ _xProp->setPropertyValue(PROPERTY_UPDATE_CATALOGNAME,Any(m_sCatalog));
if ( !m_sSchema.isEmpty() )
- _xProp->setPropertyValue(PROPERTY_UPDATE_SCHEMANAME,makeAny(m_sSchema));
+ _xProp->setPropertyValue(PROPERTY_UPDATE_SCHEMANAME,Any(m_sSchema));
const ODBFilter::TPropertyNameMap& rSettings = GetOwnImport().getQuerySettings();
ODBFilter::TPropertyNameMap::const_iterator aFind = rSettings.find(m_sName);
if ( aFind != rSettings.end() )
- _xProp->setPropertyValue(PROPERTY_LAYOUTINFORMATION,makeAny(aFind->second));
+ _xProp->setPropertyValue(PROPERTY_LAYOUTINFORMATION,Any(aFind->second));
}
}
catch(Exception&)
{
- OSL_FAIL("OXMLTable::EndElement -> exception caught");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OXMLTable::EndElement");
}
}
diff --git a/dbaccess/source/filter/xml/xmlQuery.hxx b/dbaccess/source/filter/xml/xmlQuery.hxx
index 067e8cbf5c5c..d3e01193c473 100644
--- a/dbaccess/source/filter/xml/xmlQuery.hxx
+++ b/dbaccess/source/filter/xml/xmlQuery.hxx
@@ -38,8 +38,6 @@ namespace dbaxml
);
virtual ~OXMLQuery() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.cxx b/dbaccess/source/filter/xml/xmlServerDatabase.cxx
index 87ff119b5a79..a1db053092a1 100644
--- a/dbaccess/source/filter/xml/xmlServerDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlServerDatabase.cxx
@@ -22,7 +22,7 @@
#include <xmloff/xmltoken.hxx>
#include <strings.hxx>
#include <rtl/ustrbuf.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaxml
{
@@ -64,7 +64,7 @@ OXMLServerDatabase::OXMLServerDatabase( ODBFilter& rImport,
sDatabaseName = sValue;
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
}
@@ -74,51 +74,51 @@ OXMLServerDatabase::OXMLServerDatabase( ODBFilter& rImport,
OUStringBuffer sURL;
if ( sType == "sdbc:mysql:jdbc" || sType == "sdbc:mysqlc" || sType == "sdbc:mysql:mysqlc" )
{
- sURL.append( sType ).append( ":" ).append(sHostName);
+ sURL.append( sType + ":" + sHostName);
if ( !sPortNumber.isEmpty() )
{
- sURL.append(":").append(sPortNumber);
+ sURL.append(":" + sPortNumber);
}
if ( !sDatabaseName.isEmpty() )
{
- sURL.append("/").append(sDatabaseName);
+ sURL.append("/" + sDatabaseName);
}
}
else if ( sType == "jdbc:oracle:thin" )
{
- sURL.append("jdbc:oracle:thin:@").append(sHostName);
+ sURL.append("jdbc:oracle:thin:@" + sHostName);
if ( !sPortNumber.isEmpty() )
{
- sURL.append(":").append(sPortNumber);
+ sURL.append(":" + sPortNumber);
}
if ( !sDatabaseName.isEmpty() )
{
- sURL.append(":").append(sDatabaseName);
+ sURL.append(":" + sDatabaseName);
}
}
else if ( sType == "sdbc:address:ldap" )
{
- sURL.append("sdbc:address:ldap:").append(sHostName);
+ sURL.append("sdbc:address:ldap:" + sHostName);
if ( !sPortNumber.isEmpty() )
{
- sURL.append(":").append(sPortNumber);
+ sURL.append(":" + sPortNumber);
}
}
else
{
- sURL.append(sType).append(":").append(sHostName);
+ sURL.append(sType + ":" + sHostName);
if ( !sPortNumber.isEmpty() )
{
- sURL.append(":").append(sPortNumber);
+ sURL.append(":" + sPortNumber);
}
if ( !sDatabaseName.isEmpty() )
{
- sURL.append(":").append(sDatabaseName);
+ sURL.append(":" + sDatabaseName);
}
}
try
{
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sURL.makeStringAndClear()));
+ xDataSource->setPropertyValue(PROPERTY_URL,Any(sURL.makeStringAndClear()));
}
catch(const Exception&)
{
diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.hxx b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
index 1491ed6f3e35..ec3401fff795 100644
--- a/dbaccess/source/filter/xml/xmlServerDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
OXMLServerDatabase( ODBFilter& rImport,
const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual ~OXMLServerDatabase() override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlStyleImport.cxx b/dbaccess/source/filter/xml/xmlStyleImport.cxx
index 46534bb233c7..4f3824008638 100644
--- a/dbaccess/source/filter/xml/xmlStyleImport.cxx
+++ b/dbaccess/source/filter/xml/xmlStyleImport.cxx
@@ -41,7 +41,7 @@ using namespace xmloff::token;
OTableStyleContext::OTableStyleContext( ODBFilter& rImport,
- SvXMLStylesContext& rStyles, XmlStyleFamily nFamily )
+ OTableStylesContext& rStyles, XmlStyleFamily nFamily )
:XMLPropStyleContext( rImport, rStyles, nFamily, false )
,pStyles(&rStyles)
,m_nNumberFormat(-1)
@@ -101,23 +101,26 @@ void OTableStyleContext::SetDefaults()
void OTableStyleContext::AddProperty(const sal_Int16 nContextID, const uno::Any& rValue)
{
- sal_Int32 nIndex(static_cast<OTableStylesContext *>(pStyles)->GetIndex(nContextID));
+ sal_Int32 nIndex(pStyles->GetIndex(nContextID));
OSL_ENSURE(nIndex != -1, "Property not found in Map");
XMLPropertyState aPropState(nIndex, rValue);
GetProperties().push_back(aPropState); // has to be inserted in a sort order later
}
-void OTableStyleContext::SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
+void OTableStyleContext::SetAttribute( sal_Int32 nElement,
const OUString& rValue )
{
- // TODO: use a map here
- if( IsXMLToken(rLocalName, XML_DATA_STYLE_NAME ) )
- m_sDataStyleName = rValue;
- else if ( IsXMLToken(rLocalName, XML_MASTER_PAGE_NAME ) )
- sPageStyle = rValue;
- else
- XMLPropStyleContext::SetAttribute( nPrefixKey, rLocalName, rValue );
+ switch(nElement & TOKEN_MASK)
+ {
+ case XML_DATA_STYLE_NAME:
+ m_sDataStyleName = rValue;
+ break;
+ case XML_MASTER_PAGE_NAME:
+ sPageStyle = rValue;
+ break;
+ default:
+ XMLPropStyleContext::SetAttribute( nElement, rValue );
+ }
}
ODBFilter& OTableStyleContext::GetOwnImport()
@@ -141,51 +144,50 @@ OTableStylesContext::~OTableStylesContext()
}
-void OTableStylesContext::endFastElement(sal_Int32 nElement)
+void OTableStylesContext::endFastElement(sal_Int32 )
{
- SvXMLStylesContext::endFastElement(nElement);
if (bAutoStyles)
GetImport().GetTextImport()->SetAutoStyles( this );
else
GetImport().GetStyles()->CopyStylesToDoc(true);
}
-rtl::Reference < SvXMLImportPropertyMapper >
+SvXMLImportPropertyMapper*
OTableStylesContext::GetImportPropertyMapper(
XmlStyleFamily nFamily ) const
{
- rtl::Reference < SvXMLImportPropertyMapper > xMapper = SvXMLStylesContext::GetImportPropertyMapper(nFamily);
+ SvXMLImportPropertyMapper* pMapper = SvXMLStylesContext::GetImportPropertyMapper(nFamily);
- if (!xMapper.is())
+ if (!pMapper)
{
switch( nFamily )
{
case XmlStyleFamily::TABLE_TABLE:
{
- if ( !m_xTableImpPropMapper.is() )
- m_xTableImpPropMapper = new SvXMLImportPropertyMapper( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetTableStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
- xMapper = m_xTableImpPropMapper;
+ if ( !m_xTableImpPropMapper )
+ m_xTableImpPropMapper = std::make_unique<SvXMLImportPropertyMapper>( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetTableStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
+ pMapper = m_xTableImpPropMapper.get();
}
break;
case XmlStyleFamily::TABLE_COLUMN:
{
- if ( !m_xColumnImpPropMapper.is() )
- m_xColumnImpPropMapper = new SvXMLImportPropertyMapper( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetColumnStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
- xMapper = m_xColumnImpPropMapper;
+ if ( !m_xColumnImpPropMapper )
+ m_xColumnImpPropMapper = std::make_unique<SvXMLImportPropertyMapper>( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetColumnStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
+ pMapper = m_xColumnImpPropMapper.get();
}
break;
case XmlStyleFamily::TABLE_CELL:
{
- if ( !m_xCellImpPropMapper.is() )
- m_xCellImpPropMapper = new SvXMLImportPropertyMapper( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetCellStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
- xMapper = m_xCellImpPropMapper;
+ if ( !m_xCellImpPropMapper )
+ m_xCellImpPropMapper = std::make_unique<SvXMLImportPropertyMapper>( const_cast<OTableStylesContext*>(this)->GetOwnImport().GetCellStylesPropertySetMapper(), const_cast<SvXMLImport&>(GetImport()) );
+ pMapper = m_xCellImpPropMapper.get();
}
break;
default: break;
}
}
- return xMapper;
+ return pMapper;
}
SvXMLStyleContext *OTableStylesContext::CreateStyleStyleChildContext(
@@ -203,7 +205,6 @@ SvXMLStyleContext *OTableStylesContext::CreateStyleStyleChildContext(
case XmlStyleFamily::TABLE_COLUMN:
case XmlStyleFamily::TABLE_CELL:
return new OTableStyleContext( GetOwnImport(), *this, nFamily );
- break;
default: break;
}
diff --git a/dbaccess/source/filter/xml/xmlStyleImport.hxx b/dbaccess/source/filter/xml/xmlStyleImport.hxx
index 27e3fa5549a1..552038fe8f8e 100644
--- a/dbaccess/source/filter/xml/xmlStyleImport.hxx
+++ b/dbaccess/source/filter/xml/xmlStyleImport.hxx
@@ -27,27 +27,27 @@
namespace dbaxml
{
class ODBFilter;
+ class OTableStylesContext;
class OTableStyleContext : public XMLPropStyleContext
{
OUString m_sDataStyleName;
OUString sPageStyle;
- SvXMLStylesContext* pStyles;
+ OTableStylesContext* pStyles;
sal_Int32 m_nNumberFormat;
ODBFilter& GetOwnImport();
protected:
- virtual void SetAttribute( sal_uInt16 nPrefixKey,
- const OUString& rLocalName,
+ virtual void SetAttribute( sal_Int32 nElement,
const OUString& rValue ) override;
public:
OTableStyleContext( ODBFilter& rImport,
- SvXMLStylesContext& rStyles, XmlStyleFamily nFamily );
+ OTableStylesContext& rStyles, XmlStyleFamily nFamily );
virtual ~OTableStyleContext() override;
@@ -65,9 +65,9 @@ namespace dbaxml
sal_Int32 m_nMasterPageNameIndex;
bool bAutoStyles : 1;
- mutable rtl::Reference < SvXMLImportPropertyMapper > m_xTableImpPropMapper;
- mutable rtl::Reference < SvXMLImportPropertyMapper > m_xColumnImpPropMapper;
- mutable rtl::Reference < SvXMLImportPropertyMapper > m_xCellImpPropMapper;
+ mutable std::unique_ptr < SvXMLImportPropertyMapper > m_xTableImpPropMapper;
+ mutable std::unique_ptr < SvXMLImportPropertyMapper > m_xColumnImpPropMapper;
+ mutable std::unique_ptr < SvXMLImportPropertyMapper > m_xCellImpPropMapper;
ODBFilter& GetOwnImport();
@@ -88,7 +88,7 @@ namespace dbaxml
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
- virtual rtl::Reference < SvXMLImportPropertyMapper > GetImportPropertyMapper(
+ virtual SvXMLImportPropertyMapper* GetImportPropertyMapper(
XmlStyleFamily nFamily ) const override;
virtual OUString GetServiceName( XmlStyleFamily nFamily ) const override;
diff --git a/dbaccess/source/filter/xml/xmlTable.cxx b/dbaccess/source/filter/xml/xmlTable.cxx
index 9477f13faf54..dd7df81c8072 100644
--- a/dbaccess/source/filter/xml/xmlTable.cxx
+++ b/dbaccess/source/filter/xml/xmlTable.cxx
@@ -19,6 +19,7 @@
#include "xmlTable.hxx"
#include "xmlfilter.hxx"
+#include <utility>
#include <xmloff/xmltoken.hxx>
#include <xmloff/ProgressBarHelper.hxx>
#include "xmlEnums.hxx"
@@ -29,8 +30,7 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <comphelper/propertysequence.hxx>
-#include <osl/diagnose.h>
-#include <sal/log.hxx>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaxml
{
@@ -41,11 +41,11 @@ namespace dbaxml
OXMLTable::OXMLTable( ODBFilter& _rImport
,const uno::Reference< XFastAttributeList > & _xAttrList
- ,const uno::Reference< css::container::XNameAccess >& _xParentContainer
+ ,uno::Reference< css::container::XNameAccess > _xParentContainer
,const OUString& _sServiceName
)
:SvXMLImportContext( _rImport )
- ,m_xParentContainer(_xParentContainer)
+ ,m_xParentContainer(std::move(_xParentContainer))
,m_bApplyFilter(false)
,m_bApplyOrder(false)
{
@@ -74,7 +74,7 @@ OXMLTable::OXMLTable( ODBFilter& _rImport
m_bApplyOrder = sValue == "true";
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
uno::Sequence<uno::Any> aArguments(comphelper::InitAnyPropertySequence(
@@ -142,17 +142,17 @@ void OXMLTable::setProperties(uno::Reference< XPropertySet > & _xProp )
{
if ( _xProp.is() )
{
- _xProp->setPropertyValue(PROPERTY_APPLYFILTER,makeAny(m_bApplyFilter));
- _xProp->setPropertyValue(PROPERTY_FILTER,makeAny(m_sFilterStatement));
+ _xProp->setPropertyValue(PROPERTY_APPLYFILTER,Any(m_bApplyFilter));
+ _xProp->setPropertyValue(PROPERTY_FILTER,Any(m_sFilterStatement));
if ( _xProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_APPLYORDER) )
- _xProp->setPropertyValue(PROPERTY_APPLYORDER,makeAny(m_bApplyOrder));
- _xProp->setPropertyValue(PROPERTY_ORDER,makeAny(m_sOrderStatement));
+ _xProp->setPropertyValue(PROPERTY_APPLYORDER,Any(m_bApplyOrder));
+ _xProp->setPropertyValue(PROPERTY_ORDER,Any(m_sOrderStatement));
}
}
catch(Exception&)
{
- OSL_FAIL("OXMLTable::EndElement -> exception caught");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OXMLTable::EndElement -> exception caught");
}
}
@@ -181,12 +181,12 @@ void OXMLTable::endFastElement(sal_Int32 )
}
}
- xNameContainer->insertByName(m_sName,makeAny(m_xTable));
+ xNameContainer->insertByName(m_sName,Any(m_xTable));
}
}
catch(Exception&)
{
- OSL_FAIL("OXMLQuery::EndElement -> exception caught");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OXMLQuery::EndElement");
}
}
@@ -217,7 +217,7 @@ void OXMLTable::fillAttributes(const uno::Reference< XFastAttributeList > & _xAt
_rsTableName = sValue;
break;
default:
- SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
+ XMLOFF_WARN_UNKNOWN("dbaccess", aIter);
}
}
}
diff --git a/dbaccess/source/filter/xml/xmlTable.hxx b/dbaccess/source/filter/xml/xmlTable.hxx
index 9d46a7275d83..9be9feaa023a 100644
--- a/dbaccess/source/filter/xml/xmlTable.hxx
+++ b/dbaccess/source/filter/xml/xmlTable.hxx
@@ -53,15 +53,13 @@ namespace dbaxml
OXMLTable( ODBFilter& rImport
,const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList
- ,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
+ ,css::uno::Reference< css::container::XNameAccess > _xParentContainer
,const OUString& _sServiceName
);
virtual ~OXMLTable() override;
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlTableFilterList.cxx b/dbaccess/source/filter/xml/xmlTableFilterList.cxx
index 88ec4fa2bcde..a6541684acba 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterList.cxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterList.cxx
@@ -84,9 +84,9 @@ void OXMLTableFilterList::endFastElement(sal_Int32 )
if ( xDataSource.is() )
{
if ( !m_aPatterns.empty() )
- xDataSource->setPropertyValue(PROPERTY_TABLEFILTER,makeAny(comphelper::containerToSequence(m_aPatterns)));
+ xDataSource->setPropertyValue(PROPERTY_TABLEFILTER,Any(comphelper::containerToSequence(m_aPatterns)));
if ( !m_aTypes.empty() )
- xDataSource->setPropertyValue(PROPERTY_TABLETYPEFILTER,makeAny(comphelper::containerToSequence(m_aTypes)));
+ xDataSource->setPropertyValue(PROPERTY_TABLETYPEFILTER,Any(comphelper::containerToSequence(m_aTypes)));
}
}
diff --git a/dbaccess/source/filter/xml/xmlTableFilterList.hxx b/dbaccess/source/filter/xml/xmlTableFilterList.hxx
index 007d06eab8b3..1988bdd29cf7 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterList.hxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterList.hxx
@@ -39,9 +39,6 @@ namespace dbaxml
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
/** pushes a new TableFilterPattern to the list of patterns
diff --git a/dbaccess/source/filter/xml/xmlTableFilterPattern.cxx b/dbaccess/source/filter/xml/xmlTableFilterPattern.cxx
index 0c4b2892d2b7..1df9c037ac38 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterPattern.cxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterPattern.cxx
@@ -22,9 +22,6 @@
namespace dbaxml
{
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::xml::sax;
-
OXMLTableFilterPattern::OXMLTableFilterPattern( SvXMLImport& rImport
,bool _bNameFilter
,OXMLTableFilterList& _rParent)
diff --git a/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx b/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
index 5aa7d405c033..8f0b64f37a3a 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
@@ -36,8 +36,6 @@ namespace dbaxml
virtual ~OXMLTableFilterPattern() override;
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
virtual void SAL_CALL characters( const OUString& rChars ) override;
};
diff --git a/dbaccess/source/filter/xml/xmlfilter.cxx b/dbaccess/source/filter/xml/xmlfilter.cxx
index 942ef787c171..9dc52f514558 100644
--- a/dbaccess/source/filter/xml/xmlfilter.cxx
+++ b/dbaccess/source/filter/xml/xmlfilter.cxx
@@ -51,9 +51,8 @@
#include <com/sun/star/util/XModifiable.hpp>
#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
#include <svtools/sfxecode.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
-#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/types.hxx>
#include <comphelper/namedvaluecollection.hxx>
@@ -126,49 +125,45 @@ static ErrCode ReadThroughComponent(
static ErrCode ReadThroughComponent(
const uno::Reference< embed::XStorage >& xStorage,
const uno::Reference<XComponent>& xModelComponent,
- const char* pStreamName,
+ const OUString& sStreamName,
const uno::Reference<XComponentContext> & rxContext,
ODBFilter& _rFilter)
{
OSL_ENSURE( xStorage.is(), "Need storage!");
- OSL_ENSURE(nullptr != pStreamName, "Please, please, give me a name!");
- if ( xStorage.is() )
- {
- uno::Reference< io::XStream > xDocStream;
+ if ( !xStorage )
+ // TODO/LATER: better error handling
+ return ErrCode(1);
- try
- {
- // open stream (and set parser input)
- OUString sStreamName = OUString::createFromAscii(pStreamName);
- if ( !xStorage->hasByName( sStreamName ) || !xStorage->isStreamElement( sStreamName ) )
- {
- // stream name not found! return immediately with OK signal
- return ERRCODE_NONE;
- }
+ uno::Reference< io::XStream > xDocStream;
- // get input stream
- xDocStream = xStorage->openStreamElement( sStreamName, embed::ElementModes::READ );
- }
- catch (const packages::WrongPasswordException&)
- {
- return ERRCODE_SFX_WRONGPASSWORD;
- }
- catch (const uno::Exception&)
+ try
+ {
+ // open stream (and set parser input)
+ if ( !xStorage->hasByName( sStreamName ) || !xStorage->isStreamElement( sStreamName ) )
{
- return ErrCode(1); // TODO/LATER: error handling
+ // stream name not found! return immediately with OK signal
+ return ERRCODE_NONE;
}
- uno::Reference< XInputStream > xInputStream = xDocStream->getInputStream();
- // read from the stream
- return ReadThroughComponent( xInputStream
- ,xModelComponent
- ,rxContext
- ,_rFilter );
+ // get input stream
+ xDocStream = xStorage->openStreamElement( sStreamName, embed::ElementModes::READ );
+ }
+ catch (const packages::WrongPasswordException&)
+ {
+ return ERRCODE_SFX_WRONGPASSWORD;
+ }
+ catch (const uno::Exception&)
+ {
+ return ErrCode(1); // TODO/LATER: error handling
}
- // TODO/LATER: better error handling
- return ErrCode(1);
+ uno::Reference< XInputStream > xInputStream = xDocStream->getInputStream();
+ // read from the stream
+ return ReadThroughComponent( xInputStream
+ ,xModelComponent
+ ,rxContext
+ ,_rFilter );
}
@@ -179,17 +174,17 @@ ODBFilter::ODBFilter( const uno::Reference< XComponentContext >& _rxContext )
GetMM100UnitConverter().SetCoreMeasureUnit(util::MeasureUnit::MM_10TH);
GetMM100UnitConverter().SetXMLMeasureUnit(util::MeasureUnit::CM);
- GetNamespaceMap().Add( "_db",
+ GetNamespaceMap().Add( u"_db"_ustr,
GetXMLToken(XML_N_DB),
XML_NAMESPACE_DB );
- GetNamespaceMap().Add( "__db",
+ GetNamespaceMap().Add( u"__db"_ustr,
GetXMLToken(XML_N_DB_OASIS),
XML_NAMESPACE_DB );
}
-ODBFilter::~ODBFilter() throw()
+ODBFilter::~ODBFilter() noexcept
{
}
@@ -197,7 +192,7 @@ ODBFilter::~ODBFilter() throw()
OUString ODBFilter::getImplementationName_Static()
{
- return "com.sun.star.comp.sdb.DBFilter";
+ return u"com.sun.star.comp.sdb.DBFilter"_ustr;
}
@@ -208,7 +203,7 @@ public:
FocusWindowWaitGuard()
{
SolarMutexGuard aGuard;
- mpWindow.set(Application::GetFocusWindow());
+ mpWindow.reset(Application::GetFocusWindow());
if (mpWindow)
mpWindow->EnterWait();
}
@@ -247,10 +242,10 @@ bool ODBFilter::implImport( const Sequence< PropertyValue >& rDescriptor )
bool bRet = true;
if (!xStorage.is())
{
- if (aMediaDescriptor.has("URL"))
- sFileName = aMediaDescriptor.getOrDefault("URL", OUString());
- if (sFileName.isEmpty() && aMediaDescriptor.has("FileName"))
- sFileName = aMediaDescriptor.getOrDefault("FileName", sFileName);
+ if (aMediaDescriptor.has(u"URL"_ustr))
+ sFileName = aMediaDescriptor.getOrDefault(u"URL"_ustr, OUString());
+ if (sFileName.isEmpty() && aMediaDescriptor.has(u"FileName"_ustr))
+ sFileName = aMediaDescriptor.getOrDefault(u"FileName"_ustr, sFileName);
OSL_ENSURE(!sFileName.isEmpty(), "ODBFilter::implImport: no URL given!");
bRet = !sFileName.isEmpty();
@@ -326,7 +321,7 @@ bool ODBFilter::implImport( const Sequence< PropertyValue >& rDescriptor )
uno::Reference<XComponent> xModel(GetModel());
ErrCode nRet = ReadThroughComponent( xStorage
,xModel
- ,"settings.xml"
+ ,u"settings.xml"_ustr
,GetComponentContext()
,*this
);
@@ -334,7 +329,7 @@ bool ODBFilter::implImport( const Sequence< PropertyValue >& rDescriptor )
if ( nRet == ERRCODE_NONE )
nRet = ReadThroughComponent( xStorage
,xModel
- ,"content.xml"
+ ,u"content.xml"_ustr
,GetComponentContext()
,*this
);
@@ -374,9 +369,6 @@ public:
{
}
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
{
@@ -396,10 +388,6 @@ public:
{
}
- virtual void SAL_CALL startFastElement(
- sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
{
@@ -410,12 +398,10 @@ public:
case XML_ELEMENT(OOO, XML_STYLES):
rImport.GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
return rImport.CreateStylesContext(false);
- break;
case XML_ELEMENT(OFFICE, XML_AUTOMATIC_STYLES):
case XML_ELEMENT(OOO, XML_AUTOMATIC_STYLES):
rImport.GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
return rImport.CreateStylesContext(true);
- break;
}
return nullptr;
}
@@ -429,9 +415,6 @@ public:
{
}
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
{
@@ -456,9 +439,6 @@ public:
{
}
- virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
- const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
{
@@ -468,15 +448,12 @@ public:
case XML_ELEMENT(OFFICE, XML_BODY):
case XML_ELEMENT(OOO, XML_BODY):
return new DBXMLDocumentBodyContext(rImport);
- break;
case XML_ELEMENT(OFFICE, XML_SCRIPTS):
return new XMLScriptContext(GetImport(), rImport.GetModel());
- break;
case XML_ELEMENT(OFFICE, XML_AUTOMATIC_STYLES):
case XML_ELEMENT(OOO, XML_AUTOMATIC_STYLES):
rImport.GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
return rImport.CreateStylesContext(true);
- break;
default: break;
}
return nullptr;
@@ -513,17 +490,15 @@ SvXMLImportContext* ODBFilter::CreateFastContext(sal_Int32 nElement,
void ODBFilter::SetViewSettings(const Sequence<PropertyValue>& aViewProps)
{
- const PropertyValue *pIter = aViewProps.getConstArray();
- const PropertyValue *pEnd = pIter + aViewProps.getLength();
- for (; pIter != pEnd; ++pIter)
+ for (auto& prop : aViewProps)
{
- if ( pIter->Name == "Queries" )
+ if (prop.Name == "Queries")
{
- fillPropertyMap(pIter->Value,m_aQuerySettings);
+ fillPropertyMap(prop.Value, m_aQuerySettings);
}
- else if ( pIter->Name == "Tables" )
+ else if (prop.Name == "Tables")
{
- fillPropertyMap(pIter->Value,m_aTablesSettings);
+ fillPropertyMap(prop.Value, m_aTablesSettings);
}
}
}
@@ -531,17 +506,15 @@ void ODBFilter::SetViewSettings(const Sequence<PropertyValue>& aViewProps)
void ODBFilter::SetConfigurationSettings(const Sequence<PropertyValue>& aConfigProps)
{
- const PropertyValue *pIter = aConfigProps.getConstArray();
- const PropertyValue *pEnd = pIter + aConfigProps.getLength();
- for (; pIter != pEnd; ++pIter)
+ for (auto& prop : aConfigProps)
{
- if ( pIter->Name == "layout-settings" )
+ if (prop.Name == "layout-settings")
{
Sequence<PropertyValue> aWindows;
- pIter->Value >>= aWindows;
+ prop.Value >>= aWindows;
uno::Reference<XPropertySet> xProp(getDataSource());
if ( xProp.is() )
- xProp->setPropertyValue(PROPERTY_LAYOUTINFORMATION,makeAny(aWindows));
+ xProp->setPropertyValue(PROPERTY_LAYOUTINFORMATION,Any(aWindows));
}
}
}
@@ -551,13 +524,11 @@ void ODBFilter::fillPropertyMap(const Any& _rValue,TPropertyNameMap& _rMap)
{
Sequence<PropertyValue> aWindows;
_rValue >>= aWindows;
- const PropertyValue *pIter = aWindows.getConstArray();
- const PropertyValue *pEnd = pIter + aWindows.getLength();
- for (; pIter != pEnd; ++pIter)
+ for (auto& window : aWindows)
{
Sequence<PropertyValue> aValue;
- pIter->Value >>= aValue;
- _rMap.emplace( pIter->Name,aValue );
+ window.Value >>= aValue;
+ _rMap.emplace(window.Name, aValue);
}
}
@@ -624,7 +595,7 @@ void ODBFilter::setPropertyInfo()
{
try
{
- xDataSource->setPropertyValue(PROPERTY_INFO,makeAny(aInfo));
+ xDataSource->setPropertyValue(PROPERTY_INFO,Any(aInfo));
}
catch (const Exception&)
{
diff --git a/dbaccess/source/filter/xml/xmlfilter.hxx b/dbaccess/source/filter/xml/xmlfilter.hxx
index 7b86419be610..ec776cd75f87 100644
--- a/dbaccess/source/filter/xml/xmlfilter.hxx
+++ b/dbaccess/source/filter/xml/xmlfilter.hxx
@@ -23,7 +23,6 @@
#include <com/sun/star/document/XFilter.hpp>
#include <com/sun/star/document/XImporter.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp>
#include <xmloff/xmlimp.hxx>
#include <xmloff/xmlprmap.hxx>
@@ -80,7 +79,7 @@ protected:
virtual SvXMLImportContext *CreateFastContext(sal_Int32 Element,
const ::css::uno::Reference< ::css::xml::sax::XFastAttributeList >& xAttrList ) override;
- virtual ~ODBFilter() throw() override;
+ virtual ~ODBFilter() noexcept override;
public:
explicit ODBFilter( const Reference< XComponentContext >& _rxContext );
diff --git a/dbaccess/source/inc/OAuthenticationContinuation.hxx b/dbaccess/source/inc/OAuthenticationContinuation.hxx
index 0812c46f8baa..a87203e7a64c 100644
--- a/dbaccess/source/inc/OAuthenticationContinuation.hxx
+++ b/dbaccess/source/inc/OAuthenticationContinuation.hxx
@@ -17,8 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#ifndef INCLUDED_DBACCESS_SOURCE_INC_OAUTHENTICATIONCONTINUATION_HXX
-#define INCLUDED_DBACCESS_SOURCE_INC_OAUTHENTICATIONCONTINUATION_HXX
+#pragma once
#include <dbadllapi.hxx>
@@ -32,7 +31,7 @@
namespace dbaccess
{
-class OOO_DLLPUBLIC_DBA OAuthenticationContinuation :
+class UNLESS_MERGELIBS_MORE(OOO_DLLPUBLIC_DBA) OAuthenticationContinuation :
public comphelper::OInteraction< css::ucb::XInteractionSupplyAuthentication >
{
bool m_bRememberPassword : 1; // remember the password for this session ?
@@ -65,6 +64,4 @@ public:
} // namespace dbaccess
-#endif // INCLUDED_DBACCESS_SOURCE_INC_OAUTHENTICATIONCONTINUATION_HXX
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/inc/apitools.hxx b/dbaccess/source/inc/apitools.hxx
index d8e2be8cec8f..0f4f2c9bec1c 100644
--- a/dbaccess/source/inc/apitools.hxx
+++ b/dbaccess/source/inc/apitools.hxx
@@ -17,22 +17,16 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#ifndef INCLUDED_DBACCESS_SOURCE_INC_APITOOLS_HXX
-#define INCLUDED_DBACCESS_SOURCE_INC_APITOOLS_HXX
+#pragma once
#include <sal/config.h>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppuhelper/component.hxx>
+#include <cppuhelper/compbase.hxx>
#include <osl/mutex.hxx>
-#include <osl/diagnose.h>
-#include <comphelper/sequence.hxx>
-#include <strings.hxx>
// OSubComponent - a component which holds a hard ref to its parent
// and is been hold itself (by the parent) with a weak ref
-class OSubComponent : public ::cppu::OComponentHelper
+class OSubComponent : public ::cppu::WeakComponentImplHelper<>
{
protected:
// the parent must support the tunnel implementation
@@ -43,155 +37,12 @@ public:
OSubComponent(::osl::Mutex& _rMutex,
const css::uno::Reference< css::uno::XInterface >& _xParent);
-// css::lang::XTypeProvider
- virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override;
-
// css::uno::XInterface
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
- virtual void SAL_CALL release() throw() override;
+ virtual void SAL_CALL release() noexcept override;
operator css::uno::Reference< css::uno::XInterface > () const
{ return static_cast<css::uno::XWeak *>(const_cast<OSubComponent *>(this)); }
};
-// helper for implementing the XServiceInfo interface
-
-// (internal - not to be used outside - usually)
-#define IMPLEMENT_SERVICE_INFO_IMPLNAME(classname, implasciiname) \
- OUString SAL_CALL classname::getImplementationName( ) \
- { \
- return implasciiname; \
- } \
-
-
-#define IMPLEMENT_SERVICE_INFO_SUPPORTS(classname) \
- sal_Bool SAL_CALL classname::supportsService( const OUString& _rServiceName ) \
- { \
- const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames()); \
- for (const OUString& s : aSupported) \
- if (s == _rServiceName) \
- return true; \
- \
- return false; \
- } \
-
-
-
-#define IMPLEMENT_SERVICE_INFO1(classname, implasciiname, serviceasciiname) \
- IMPLEMENT_SERVICE_INFO_IMPLNAME(classname, implasciiname) \
- IMPLEMENT_SERVICE_INFO_SUPPORTS(classname) \
- css::uno::Sequence< OUString > SAL_CALL classname::getSupportedServiceNames( ) \
- { \
- return { serviceasciiname }; \
- } \
-
-
-#define IMPLEMENT_SERVICE_INFO2(classname, implasciiname, serviceasciiname1, serviceasciiname2) \
- IMPLEMENT_SERVICE_INFO_IMPLNAME(classname, implasciiname) \
- IMPLEMENT_SERVICE_INFO_SUPPORTS(classname) \
- css::uno::Sequence< OUString > SAL_CALL classname::getSupportedServiceNames( ) \
- { \
- return { serviceasciiname1, serviceasciiname2 }; \
- }
-
-
-
-#define IMPLEMENT_SERVICE_INFO3(classname, implasciiname, serviceasciiname1, serviceasciiname2, serviceasciiname3) \
- IMPLEMENT_SERVICE_INFO_IMPLNAME(classname, implasciiname) \
- IMPLEMENT_SERVICE_INFO_SUPPORTS(classname) \
- css::uno::Sequence< OUString > SAL_CALL classname::getSupportedServiceNames( ) \
- { \
- return { serviceasciiname1, serviceasciiname2, serviceasciiname3 }; \
- } \
-
-
-// XTypeProvider helpers
-
-#define IMPLEMENT_GETTYPES2( classname, baseclass1, baseclass2 ) \
- css::uno::Sequence< css::uno::Type > classname::getTypes() \
- { \
- return ::comphelper::concatSequences( \
- baseclass1::getTypes( ), \
- baseclass2::getTypes( ) \
- ); \
- }
-
-#define IMPLEMENT_GETTYPES3( classname, baseclass1, baseclass2, baseclass3 ) \
- css::uno::Sequence< css::uno::Type > classname::getTypes() \
- { \
- return ::comphelper::concatSequences( \
- baseclass1::getTypes( ), \
- baseclass2::getTypes( ), \
- baseclass3::getTypes( ) \
- ); \
- }
-
-// helper for declaring/implementing classes based on the OPropertyContainer and an OPropertyArrayUsageHelper
-#define DECLARE_PROPERTYCONTAINER_DEFAULTS( ) \
- virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override; \
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override; \
- virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const override
-
-#define IMPLEMENT_PROPERTYCONTAINER_DEFAULTS2( classname , baseclass1) \
- css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL classname::getPropertySetInfo() \
- { \
- Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) ); \
- return xInfo; \
- } \
- ::cppu::IPropertyArrayHelper& classname::getInfoHelper() \
- { \
- return *baseclass1::getArrayHelper(); \
- } \
- ::cppu::IPropertyArrayHelper* classname::createArrayHelper( ) const \
- { \
- css::uno::Sequence< css::beans::Property > aProps; \
- describeProperties(aProps); \
- return new ::cppu::OPropertyArrayHelper(aProps); \
- }
-#define IMPLEMENT_PROPERTYCONTAINER_DEFAULTS( classname ) \
- IMPLEMENT_PROPERTYCONTAINER_DEFAULTS2( classname, classname )
-
-// helper for implementing the createArrayHelper
-#define BEGIN_PROPERTY_SEQUENCE(count) \
- css::uno::Sequence< css::beans::Property> aDescriptor(count); \
- css::beans::Property* pDesc = aDescriptor.getArray(); \
- sal_Int32 nPos = 0; \
-
-#define BEGIN_PROPERTY_HELPER(count) \
- BEGIN_PROPERTY_SEQUENCE(count)
-
-#define DECL_PROP_IMPL(varname, cpputype) \
- pDesc[nPos++] = css::beans::Property(PROPERTY_##varname, PROPERTY_ID_##varname, cpputype,
-
-#define DECL_PROP0(varname, type) \
- DECL_PROP_IMPL(varname, cppu::UnoType<type>::get()) 0)
-
-#define DECL_PROP0_BOOL(varname) \
- DECL_PROP_IMPL(varname, cppu::UnoType<bool>::get()) 0)
-
-#define DECL_PROP1(varname, type, attrib1) \
- DECL_PROP_IMPL(varname, cppu::UnoType<type>::get()) css::beans::PropertyAttribute::attrib1)
-
-#define DECL_PROP1_BOOL(varname, attrib1) \
- DECL_PROP_IMPL(varname, cppu::UnoType<bool>::get()) css::beans::PropertyAttribute::attrib1)
-
-#define DECL_PROP2_IFACE(varname, iface, attrib1, attrib2) \
- DECL_PROP_IMPL(varname, cppu::UnoType<iface>::get()) css::beans::PropertyAttribute::attrib1 | css::beans::PropertyAttribute::attrib2)
-
-#define DECL_PROP2(varname, type, attrib1, attrib2) \
- DECL_PROP_IMPL(varname, cppu::UnoType<type>::get()) css::beans::PropertyAttribute::attrib1 | css::beans::PropertyAttribute::attrib2)
-
-#define DECL_PROP3(varname, type, attrib1, attrib2, attrib3) \
- DECL_PROP_IMPL(varname, cppu::UnoType<type>::get()) css::beans::PropertyAttribute::attrib1 | css::beans::PropertyAttribute::attrib2 | css::beans::PropertyAttribute::attrib3)
-
-#define END_PROPERTY_SEQUENCE() \
- OSL_ENSURE(nPos == aDescriptor.getLength(), "forgot to adjust the count ?"); \
-
-#define END_PROPERTY_HELPER() \
- END_PROPERTY_SEQUENCE() \
- return new ::cppu::OPropertyArrayHelper(aDescriptor);
-
-#endif // INCLUDED_DBACCESS_SOURCE_INC_APITOOLS_HXX
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/inc/dsntypes.hxx b/dbaccess/source/inc/dsntypes.hxx
index 334b297b0bf5..c6529ab6c34a 100644
--- a/dbaccess/source/inc/dsntypes.hxx
+++ b/dbaccess/source/inc/dsntypes.hxx
@@ -17,11 +17,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#ifndef INCLUDED_DBACCESS_SOURCE_INC_DSNTYPES_HXX
-#define INCLUDED_DBACCESS_SOURCE_INC_DSNTYPES_HXX
+#pragma once
#include <sal/config.h>
+#include <string_view>
#include <vector>
#include <dbadllapi.hxx>
@@ -55,7 +55,6 @@ enum DATASOURCE_TYPE
DST_EVOLUTION_LDAP = 19,
DST_KAB = 20,
DST_MACAB = 21,
- DST_MSACCESS_2007 = 22,
DST_EMBEDDED_HSQLDB = 23,
DST_MYSQL_NATIVE = 24,
DST_MYSQL_NATIVE_DIRECT = 25,
@@ -63,6 +62,8 @@ enum DATASOURCE_TYPE
DST_EMBEDDED_FIREBIRD = 27,
DST_POSTGRES = 28,
DST_WRITER = 29,
+ DST_EMBEDDED_UNKNOWN = 30, /// for all embedded addons driver
+
DST_USERDEFINE1, /// first user defined driver
DST_USERDEFINE2,
@@ -96,9 +97,10 @@ enum DATASOURCE_TYPE
#define PAGE_DBSETUPWIZARD_FINAL 16
#define PAGE_DBSETUPWIZARD_USERDEFINED 17
#define PAGE_DBSETUPWIZARD_MYSQL_NATIVE 18
+#define PAGE_DBSETUPWIZARD_POSTGRES 19
// ODsnTypeCollection
-class OOO_DLLPUBLIC_DBA ODsnTypeCollection final
+class UNLESS_MERGELIBS_MORE(OOO_DLLPUBLIC_DBA) ODsnTypeCollection final
{
std::vector<OUString> m_aDsnTypesDisplayNames; /// user readable names for the datasource types
@@ -117,47 +119,47 @@ public:
~ODsnTypeCollection();
/// get the datasource type display name from a DSN string
- OUString getTypeDisplayName(const OUString& _sURL) const;
+ OUString getTypeDisplayName(std::u16string_view _sURL) const;
/// on a given string, cut the type prefix and return the result
- OUString cutPrefix(const OUString& _sURL) const;
+ OUString cutPrefix(std::u16string_view _sURL) const;
/// on a given string, return the type prefix
- OUString getPrefix(const OUString& _sURL) const;
+ OUString getPrefix(std::u16string_view _sURL) const;
/// determines whether there is a driver for the given URL prefix/pattern
- bool hasDriver( const char* _pAsciiPattern ) const;
+ bool hasDriver( std::u16string_view _rAsciiPattern ) const;
/// on a given string, return the Java Driver Class
- OUString getJavaDriverClass(const OUString& _sURL) const;
+ OUString getJavaDriverClass(std::u16string_view _sURL) const;
/// returns the media type of a file based database
- OUString getMediaType(const OUString& _sURL) const;
+ OUString getMediaType(std::u16string_view _sURL) const;
/// returns the dsn prefix for a given media type
- OUString getDatasourcePrefixFromMediaType(const OUString& _sMediaType, const OUString& _sExtension );
+ OUString getDatasourcePrefixFromMediaType(std::u16string_view _sMediaType, std::u16string_view _sExtension );
void extractHostNamePort(const OUString& _rDsn,OUString& _sDatabaseName,OUString& _rHostname,sal_Int32& _nPortNumber) const;
/// check if the given data source allows creation of tables
- bool supportsTableCreation(const OUString& _sURL) const;
+ bool supportsTableCreation(std::u16string_view _sURL) const;
/// check if the given data source allows to show column description.
- bool supportsColumnDescription(const OUString& _sURL) const;
+ bool supportsColumnDescription(std::u16string_view _sURL) const;
// check if a Browse button may be shown to insert connection url
- bool supportsBrowsing(const OUString& _sURL) const;
+ bool supportsBrowsing(std::u16string_view _sURL) const;
// check if a Create New Database button may be shown to insert connection url
- bool supportsDBCreation(const OUString& _sURL) const;
+ bool supportsDBCreation(std::u16string_view _sURL) const;
/// check if the given data source type is based on the file system - i.e. the URL is a prefix plus a file URL
- bool isFileSystemBased(const OUString& _sURL) const;
+ bool isFileSystemBased(std::u16string_view _sURL) const;
- bool isConnectionUrlRequired(const OUString& _sURL) const;
+ bool isConnectionUrlRequired(std::u16string_view _sURL) const;
/// checks if the given data source type embeds its data into the database document
- static bool isEmbeddedDatabase( const OUString& _sURL );
+ static bool isEmbeddedDatabase( std::u16string_view _sURL );
static OUString getEmbeddedDatabase();
@@ -167,24 +169,24 @@ public:
/** returns default settings for newly created databases of the given type.
*/
css::uno::Sequence< css::beans::PropertyValue>
- getDefaultDBSettings( const OUString& _sURL ) const;
+ getDefaultDBSettings( std::u16string_view _sURL ) const;
/// get access to the first element of the types collection
inline TypeIterator begin() const;
/// get access to the (last + 1st) element of the types collection
inline TypeIterator end() const;
- void fillPageIds(const OUString& _sURL,std::vector<sal_Int16>& _rOutPathIds) const;
+ void fillPageIds(std::u16string_view _sURL,std::vector<sal_Int16>& _rOutPathIds) const;
- DATASOURCE_TYPE determineType(const OUString& _rDsn) const;
+ DATASOURCE_TYPE determineType(std::u16string_view _rDsn) const;
- sal_Int32 getIndexOf(const OUString& _sURL) const;
+ sal_Int32 getIndexOf(std::u16string_view _sURL) const;
sal_Int32 size() const;
- OUString getType(const OUString& _sURL) const;
+ OUString getType(std::u16string_view _sURL) const;
};
//- ODsnTypeCollection::TypeIterator
-class OOO_DLLPUBLIC_DBA ODsnTypeCollection::TypeIterator
+class UNLESS_MERGELIBS_MORE(OOO_DLLPUBLIC_DBA) ODsnTypeCollection::TypeIterator
{
friend class ODsnTypeCollection;
@@ -215,6 +217,4 @@ inline ODsnTypeCollection::TypeIterator ODsnTypeCollection::end() const { return
} // namespace dbaccess
-#endif // INCLUDED_DBACCESS_SOURCE_INC_DSNTYPES_HXX
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/inc/stringconstants.hxx b/dbaccess/source/inc/stringconstants.hxx
index 9b7e732fee8f..9ff840e92a1c 100644
--- a/dbaccess/source/inc/stringconstants.hxx
+++ b/dbaccess/source/inc/stringconstants.hxx
@@ -17,158 +17,149 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#ifndef INCLUDED_DBACCESS_SOURCE_INC_STRINGCONSTANTS_HRC
-#define INCLUDED_DBACCESS_SOURCE_INC_STRINGCONSTANTS_HRC
+#pragma once
// property ids
-#define PROPERTY_ID_TITLE 1
-#define PROPERTY_ID_URL 2
-#define PROPERTY_ID_INFO 4
-#define PROPERTY_ID_ISPASSWORDREQUIRED 5
-#define PROPERTY_ID_TABLEFILTER 6
-#define PROPERTY_ID_NAME 7
-#define PROPERTY_ID_SCHEMANAME 8
-#define PROPERTY_ID_CATALOGNAME 9
-#define PROPERTY_ID_PRIVILEGES 10
-#define PROPERTY_ID_ESCAPE_PROCESSING 11
-#define PROPERTY_ID_COMMAND 12
-#define PROPERTY_ID_TYPE 13
-#define PROPERTY_ID_TYPENAME 14
-#define PROPERTY_ID_PRECISION 15
-#define PROPERTY_ID_SCALE 16
-#define PROPERTY_ID_ISNULLABLE 17
-#define PROPERTY_ID_ISAUTOINCREMENT 18
-#define PROPERTY_ID_ISROWVERSION 19
-#define PROPERTY_ID_DESCRIPTION 20
-#define PROPERTY_ID_DEFAULTVALUE 21
-#define PROPERTY_ID_NUMBERFORMAT 22
-#define PROPERTY_ID_QUERYTIMEOUT 23
-#define PROPERTY_ID_MAXFIELDSIZE 24
-#define PROPERTY_ID_MAXROWS 25
-#define PROPERTY_ID_CURSORNAME 26
-#define PROPERTY_ID_RESULTSETCONCURRENCY 27
-#define PROPERTY_ID_RESULTSETTYPE 28
-#define PROPERTY_ID_FETCHDIRECTION 29
-#define PROPERTY_ID_FETCHSIZE 30
-#define PROPERTY_ID_USEBOOKMARKS 31
-#define PROPERTY_ID_ISSEARCHABLE 32
-#define PROPERTY_ID_ISCURRENCY 33
-#define PROPERTY_ID_ISSIGNED 34
-#define PROPERTY_ID_DISPLAYSIZE 35
-#define PROPERTY_ID_LABEL 36
-#define PROPERTY_ID_ISREADONLY 37
-#define PROPERTY_ID_ISWRITABLE 38
-#define PROPERTY_ID_ISDEFINITELYWRITABLE 39
-#define PROPERTY_ID_VALUE 40
-#define PROPERTY_ID_TABLENAME 41
-#define PROPERTY_ID_ISCASESENSITIVE 42
-#define PROPERTY_ID_SERVICENAME 43
-#define PROPERTY_ID_ISBOOKMARKABLE 44
-#define PROPERTY_ID_CANUPDATEINSERTEDROWS 45
-#define PROPERTY_ID_ISSET 46
-#define PROPERTY_ID_ISOUTPARAMETER 47
-#define PROPERTY_ID_NUMBERFORMATSSUPPLIER 48
-#define PROPERTY_ID_ISCALCULATED 49
-#define PROPERTY_ID_DATASOURCENAME 50
-#define PROPERTY_ID_TRANSACTIONISOLATION 51
-#define PROPERTY_ID_TYPEMAP 52
-#define PROPERTY_ID_USER 53
-#define PROPERTY_ID_PASSWORD 54
-#define PROPERTY_ID_COMMAND_TYPE 55
-#define PROPERTY_ID_ACTIVECOMMAND 56
-#define PROPERTY_ID_ACTIVE_CONNECTION 57
-#define PROPERTY_ID_FILTER 58
-#define PROPERTY_ID_APPLYFILTER 59
-#define PROPERTY_ID_ORDER 60
-#define PROPERTY_ID_ISMODIFIED 61
-#define PROPERTY_ID_ISNEW 62
-#define PROPERTY_ID_ROWCOUNT 63
-#define PROPERTY_ID_ISROWCOUNTFINAL 64
-#define PROPERTY_ID_HELPFILENAME 65
-#define PROPERTY_ID_REALNAME 66
-#define PROPERTY_ID_HIDDEN 67
-#define PROPERTY_ID_ALIGN 68
-#define PROPERTY_ID_WIDTH 69
-#define PROPERTY_ID_TABLETYPEFILTER 70
-#define PROPERTY_ID_DATABASE_LOCATION 71
-#define PROPERTY_ID_FONT 72
-#define PROPERTY_ID_ROW_HEIGHT 73
-#define PROPERTY_ID_TEXTCOLOR 74
-#define PROPERTY_ID_UPDATE_TABLENAME 75
-#define PROPERTY_ID_UPDATE_SCHEMANAME 76
-#define PROPERTY_ID_UPDATE_CATALOGNAME 77
-#define PROPERTY_ID_CONTROLMODEL 78
-#define PROPERTY_ID_RELATIVEPOSITION 79
-#define PROPERTY_ID_ISASCENDING 80
-#define PROPERTY_ID_RELATEDCOLUMN 81
-#define PROPERTY_ID_ISUNIQUE 82
-#define PROPERTY_ID_ISPRIMARYKEYINDEX 83
-#define PROPERTY_ID_IGNORERESULT 84
-#define PROPERTY_ID_DELETERULE 85
-#define PROPERTY_ID_UPDATERULE 86
-#define PROPERTY_ID_REFERENCEDTABLE 87
-#define PROPERTY_ID_REFERENCEDCOLUMN 88
-#define PROPERTY_ID_PARENTWINDOW 89
-#define PROPERTY_ID_SQLEXCEPTION 90
-#define PROPERTY_ID_ISHIDDEN 91
-#define PROPERTY_ID_SUPPRESSVERSIONCL 92
-#define PROPERTY_ID_LAYOUTINFORMATION 93
-#define PROPERTY_ID_TEXTLINECOLOR 94
-#define PROPERTY_ID_TEXTEMPHASIS 95
-#define PROPERTY_ID_TEXTRELIEF 96
-#define PROPERTY_ID_HELPTEXT 97
-#define PROPERTY_ID_CONTROLDEFAULT 98
-#define PROPERTY_ID_AUTOINCREMENTCREATION 99
-#define PROPERTY_ID_SPECIAL_OPTIONS 100
-#define PROPERTY_ID_FONTCHARWIDTH 101
-#define PROPERTY_ID_FONTCHARSET 102
-#define PROPERTY_ID_FONTFAMILY 103
-#define PROPERTY_ID_FONTHEIGHT 104
-#define PROPERTY_ID_FONTKERNING 105
-#define PROPERTY_ID_FONTNAME 106
-#define PROPERTY_ID_FONTORIENTATION 107
-#define PROPERTY_ID_FONTPITCH 108
-#define PROPERTY_ID_FONTSLANT 109
-#define PROPERTY_ID_FONTSTRIKEOUT 110
-#define PROPERTY_ID_FONTSTYLENAME 111
-#define PROPERTY_ID_FONTUNDERLINE 112
-#define PROPERTY_ID_FONTWEIGHT 113
-#define PROPERTY_ID_FONTWIDTH 114
-#define PROPERTY_ID_FONTWORDLINEMODE 115
-#define PROPERTY_ID_FONTTYPE 116
-#define PROPERTY_ID_PERSISTENT_NAME 117
-#define PROPERTY_ID_ORIGINAL 118
-#define PROPERTY_ID_TABSTOP 119
-#define PROPERTY_ID_DEFAULTCONTROL 120
-#define PROPERTY_ID_ENABLED 121
-#define PROPERTY_ID_BORDER 122
-#define PROPERTY_ID_COLUMN 123
-#define PROPERTY_ID_AS_TEMPLATE 124
-#define PROPERTY_ID_IS_FORM 125
-#define PROPERTY_ID_HAVING_CLAUSE 126
-#define PROPERTY_ID_GROUP_BY 127
-#define PROPERTY_ID_EDIT_WIDTH 128
-#define PROPERTY_ID_SETTINGS 129
-#define PROPERTY_ID_CONNECTION_RESOURCE 130
-#define PROPERTY_ID_RESULT_SET 131
-#define PROPERTY_ID_SELECTION 132
-#define PROPERTY_ID_BOOKMARK_SELECTION 133
-#define PROPERTY_ID_COLUMN_NAME 134
-#define PROPERTY_ID_CONNECTION_INFO 135
-#define PROPERTY_ID_HEADER_LINE 136
-#define PROPERTY_ID_FIELD_DELIMITER 137
-#define PROPERTY_ID_STRING_DELIMITER 138
-#define PROPERTY_ID_DECIMAL_DELIMITER 139
-#define PROPERTY_ID_THOUSAND_DELIMITER 140
-#define PROPERTY_ID_ENCODING 141
-#define PROPERTY_ID_HELP_URL 142
-#define PROPERTY_ID_PERSISTENT_PATH 143
-#define PROPERTY_ID_CURRENT_QUERY_DESIGN 144
-#define PROPERTY_ID_SINGLESELECTQUERYCOMPOSER 145
-#define PROPERTY_ID_PROPCHANGE_NOTIFY 146
-#define PROPERTY_ID_AUTOGROW 147
-
-#endif
+enum PropertyId
+{
+ PROPERTY_ID_URL = 2,
+ PROPERTY_ID_INFO = 4,
+ PROPERTY_ID_ISPASSWORDREQUIRED = 5,
+ PROPERTY_ID_TABLEFILTER = 6,
+ PROPERTY_ID_NAME = 7,
+ PROPERTY_ID_SCHEMANAME = 8,
+ PROPERTY_ID_CATALOGNAME = 9,
+ PROPERTY_ID_PRIVILEGES = 10,
+ PROPERTY_ID_ESCAPE_PROCESSING = 11,
+ PROPERTY_ID_COMMAND = 12,
+ PROPERTY_ID_TYPE = 13,
+ PROPERTY_ID_TYPENAME = 14,
+ PROPERTY_ID_PRECISION = 15,
+ PROPERTY_ID_SCALE = 16,
+ PROPERTY_ID_ISNULLABLE = 17,
+ PROPERTY_ID_ISAUTOINCREMENT = 18,
+ PROPERTY_ID_ISROWVERSION = 19,
+ PROPERTY_ID_DESCRIPTION = 20,
+ PROPERTY_ID_DEFAULTVALUE = 21,
+ PROPERTY_ID_NUMBERFORMAT = 22,
+ PROPERTY_ID_QUERYTIMEOUT = 23,
+ PROPERTY_ID_MAXFIELDSIZE = 24,
+ PROPERTY_ID_MAXROWS = 25,
+ PROPERTY_ID_CURSORNAME = 26,
+ PROPERTY_ID_RESULTSETCONCURRENCY = 27,
+ PROPERTY_ID_RESULTSETTYPE = 28,
+ PROPERTY_ID_FETCHDIRECTION = 29,
+ PROPERTY_ID_FETCHSIZE = 30,
+ PROPERTY_ID_USEBOOKMARKS = 31,
+ PROPERTY_ID_ISSEARCHABLE = 32,
+ PROPERTY_ID_ISCURRENCY = 33,
+ PROPERTY_ID_ISSIGNED = 34,
+ PROPERTY_ID_DISPLAYSIZE = 35,
+ PROPERTY_ID_LABEL = 36,
+ PROPERTY_ID_ISREADONLY = 37,
+ PROPERTY_ID_ISWRITABLE = 38,
+ PROPERTY_ID_ISDEFINITELYWRITABLE = 39,
+ PROPERTY_ID_VALUE = 40,
+ PROPERTY_ID_TABLENAME = 41,
+ PROPERTY_ID_ISCASESENSITIVE = 42,
+ PROPERTY_ID_SERVICENAME = 43,
+ PROPERTY_ID_ISBOOKMARKABLE = 44,
+ PROPERTY_ID_CANUPDATEINSERTEDROWS = 45,
+ PROPERTY_ID_NUMBERFORMATSSUPPLIER = 48,
+ PROPERTY_ID_DATASOURCENAME = 50,
+ PROPERTY_ID_TRANSACTIONISOLATION = 51,
+ PROPERTY_ID_TYPEMAP = 52,
+ PROPERTY_ID_USER = 53,
+ PROPERTY_ID_PASSWORD = 54,
+ PROPERTY_ID_COMMAND_TYPE = 55,
+ PROPERTY_ID_ACTIVECOMMAND = 56,
+ PROPERTY_ID_ACTIVE_CONNECTION = 57,
+ PROPERTY_ID_FILTER = 58,
+ PROPERTY_ID_APPLYFILTER = 59,
+ PROPERTY_ID_ORDER = 60,
+ PROPERTY_ID_ISMODIFIED = 61,
+ PROPERTY_ID_ISNEW = 62,
+ PROPERTY_ID_ROWCOUNT = 63,
+ PROPERTY_ID_ISROWCOUNTFINAL = 64,
+ PROPERTY_ID_REALNAME = 66,
+ PROPERTY_ID_HIDDEN = 67,
+ PROPERTY_ID_ALIGN = 68,
+ PROPERTY_ID_WIDTH = 69,
+ PROPERTY_ID_TABLETYPEFILTER = 70,
+ PROPERTY_ID_DATABASE_LOCATION = 71,
+ PROPERTY_ID_FONT = 72,
+ PROPERTY_ID_ROW_HEIGHT = 73,
+ PROPERTY_ID_TEXTCOLOR = 74,
+ PROPERTY_ID_UPDATE_TABLENAME = 75,
+ PROPERTY_ID_UPDATE_SCHEMANAME = 76,
+ PROPERTY_ID_UPDATE_CATALOGNAME = 77,
+ PROPERTY_ID_CONTROLMODEL = 78,
+ PROPERTY_ID_RELATIVEPOSITION = 79,
+ PROPERTY_ID_ISASCENDING = 80,
+ PROPERTY_ID_RELATEDCOLUMN = 81,
+ PROPERTY_ID_ISUNIQUE = 82,
+ PROPERTY_ID_ISPRIMARYKEYINDEX = 83,
+ PROPERTY_ID_IGNORERESULT = 84,
+ PROPERTY_ID_DELETERULE = 85,
+ PROPERTY_ID_UPDATERULE = 86,
+ PROPERTY_ID_REFERENCEDTABLE = 87,
+ PROPERTY_ID_SQLEXCEPTION = 90,
+ PROPERTY_ID_SUPPRESSVERSIONCL = 92,
+ PROPERTY_ID_LAYOUTINFORMATION = 93,
+ PROPERTY_ID_TEXTLINECOLOR = 94,
+ PROPERTY_ID_TEXTEMPHASIS = 95,
+ PROPERTY_ID_TEXTRELIEF = 96,
+ PROPERTY_ID_HELPTEXT = 97,
+ PROPERTY_ID_CONTROLDEFAULT = 98,
+ PROPERTY_ID_AUTOINCREMENTCREATION = 99,
+ PROPERTY_ID_FONTCHARWIDTH = 101,
+ PROPERTY_ID_FONTCHARSET = 102,
+ PROPERTY_ID_FONTFAMILY = 103,
+ PROPERTY_ID_FONTHEIGHT = 104,
+ PROPERTY_ID_FONTKERNING = 105,
+ PROPERTY_ID_FONTNAME = 106,
+ PROPERTY_ID_FONTORIENTATION = 107,
+ PROPERTY_ID_FONTPITCH = 108,
+ PROPERTY_ID_FONTSLANT = 109,
+ PROPERTY_ID_FONTSTRIKEOUT = 110,
+ PROPERTY_ID_FONTSTYLENAME = 111,
+ PROPERTY_ID_FONTUNDERLINE = 112,
+ PROPERTY_ID_FONTWEIGHT = 113,
+ PROPERTY_ID_FONTWIDTH = 114,
+ PROPERTY_ID_FONTWORDLINEMODE = 115,
+ PROPERTY_ID_FONTTYPE = 116,
+ PROPERTY_ID_PERSISTENT_NAME = 117,
+ PROPERTY_ID_ORIGINAL = 118,
+ PROPERTY_ID_TABSTOP = 119,
+ PROPERTY_ID_DEFAULTCONTROL = 120,
+ PROPERTY_ID_ENABLED = 121,
+ PROPERTY_ID_BORDER = 122,
+ PROPERTY_ID_COLUMN = 123,
+ PROPERTY_ID_AS_TEMPLATE = 124,
+ PROPERTY_ID_IS_FORM = 125,
+ PROPERTY_ID_HAVING_CLAUSE = 126,
+ PROPERTY_ID_GROUP_BY = 127,
+ PROPERTY_ID_EDIT_WIDTH = 128,
+ PROPERTY_ID_SETTINGS = 129,
+ PROPERTY_ID_CONNECTION_RESOURCE = 130,
+ PROPERTY_ID_RESULT_SET = 131,
+ PROPERTY_ID_SELECTION = 132,
+ PROPERTY_ID_BOOKMARK_SELECTION = 133,
+ PROPERTY_ID_COLUMN_NAME = 134,
+ PROPERTY_ID_CONNECTION_INFO = 135,
+ PROPERTY_ID_HEADER_LINE = 136,
+ PROPERTY_ID_FIELD_DELIMITER = 137,
+ PROPERTY_ID_STRING_DELIMITER = 138,
+ PROPERTY_ID_DECIMAL_DELIMITER = 139,
+ PROPERTY_ID_THOUSAND_DELIMITER = 140,
+ PROPERTY_ID_ENCODING = 141,
+ PROPERTY_ID_HELP_URL = 142,
+ PROPERTY_ID_PERSISTENT_PATH = 143,
+ PROPERTY_ID_CURRENT_QUERY_DESIGN = 144,
+ PROPERTY_ID_SINGLESELECTQUERYCOMPOSER = 145,
+ PROPERTY_ID_PROPCHANGE_NOTIFY = 146,
+ PROPERTY_ID_AUTOGROW = 147
+};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/sdbtools/connection/connectiontools.cxx b/dbaccess/source/sdbtools/connection/connectiontools.cxx
index 65db1c64907a..c0189744700c 100644
--- a/dbaccess/source/sdbtools/connection/connectiontools.cxx
+++ b/dbaccess/source/sdbtools/connection/connectiontools.cxx
@@ -89,7 +89,7 @@ namespace sdbtools
OUString SAL_CALL ConnectionTools::getImplementationName()
{
- return "com.sun.star.comp.dbaccess.ConnectionTools";
+ return u"com.sun.star.comp.dbaccess.ConnectionTools"_ustr;
}
sal_Bool SAL_CALL ConnectionTools::supportsService(const OUString & ServiceName)
@@ -99,7 +99,7 @@ namespace sdbtools
Sequence< OUString > SAL_CALL ConnectionTools::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.tools.ConnectionTools" };
+ return { u"com.sun.star.sdb.tools.ConnectionTools"_ustr };
}
void SAL_CALL ConnectionTools::initialize(const Sequence< Any > & _rArguments)
@@ -113,7 +113,7 @@ namespace sdbtools
else
{
::comphelper::NamedValueCollection aArguments( _rArguments );
- aArguments.get( "Connection" ) >>= xConnection;
+ aArguments.get( u"Connection"_ustr ) >>= xConnection;
}
if ( !xConnection.is() )
throw IllegalArgumentException();
@@ -127,6 +127,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_comp_dbaccess_ConnectionTools_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
{
- return cppu::acquire(static_cast<cppu::OWeakObject*>(new sdbtools::ConnectionTools(context)));
+ return cppu::acquire(new sdbtools::ConnectionTools(context));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/sdbtools/connection/objectnames.cxx b/dbaccess/source/sdbtools/connection/objectnames.cxx
index 5ec2c22e8ea4..fe1caa97289a 100644
--- a/dbaccess/source/sdbtools/connection/objectnames.cxx
+++ b/dbaccess/source/sdbtools/connection/objectnames.cxx
@@ -33,6 +33,7 @@
#include <osl/diagnose.h>
#include <memory>
+#include <utility>
namespace sdbtools
{
@@ -159,18 +160,18 @@ namespace sdbtools
{
}
- static ::connectivity::ErrorCondition validateName_getErrorCondition( const OUString& _rName )
+ static ::connectivity::ErrorCondition validateName_getErrorCondition( std::u16string_view _rName )
{
- if ( ( _rName.indexOf( u'"' ) >= 0 )
- || ( _rName.indexOf( u'\'' ) >= 0 )
- || ( _rName.indexOf( u'`' ) >= 0 )
- || ( _rName.indexOf( u'\x0091' ) >= 0 )
- || ( _rName.indexOf( u'\x0092' ) >= 0 )
- || ( _rName.indexOf( u'\x00B4' ) >= 0 ) // removed unparsable chars
+ if ( ( _rName.find( u'"' ) != std::u16string_view::npos )
+ || ( _rName.find( u'\'' ) != std::u16string_view::npos )
+ || ( _rName.find( u'`' ) != std::u16string_view::npos )
+ || ( _rName.find( u'\x0091' ) != std::u16string_view::npos )
+ || ( _rName.find( u'\x0092' ) != std::u16string_view::npos )
+ || ( _rName.find( u'\x00B4' ) != std::u16string_view::npos ) // removed unparsable chars
)
return ErrorCondition::DB_QUERY_NAME_WITH_QUOTES;
- if ( _rName.indexOf( '/') >= 0 )
+ if ( _rName.find( '/') != std::u16string_view::npos )
return ErrorCondition::DB_OBJECT_NAME_WITH_SLASHES;
return 0;
@@ -200,9 +201,9 @@ namespace sdbtools
PNameValidation m_pSecondary;
public:
- CombinedNameCheck(const PNameValidation& _pPrimary, const PNameValidation& _pSecondary)
- :m_pPrimary( _pPrimary )
- ,m_pSecondary( _pSecondary )
+ CombinedNameCheck(PNameValidation _pPrimary, PNameValidation _pSecondary)
+ :m_pPrimary(std::move( _pPrimary ))
+ ,m_pSecondary(std::move( _pSecondary ))
{
OSL_ENSURE( m_pPrimary && m_pSecondary, "CombinedNameCheck::CombinedNameCheck: this will crash!" );
}
@@ -312,9 +313,9 @@ namespace sdbtools
if ( aMeta.supportsSubqueriesInFrom() )
pReturn = std::make_shared<CombinedNameCheck>( pTableCheck, pQueryCheck );
else if ( _nCommandType == CommandType::TABLE )
- pReturn = pTableCheck;
+ pReturn = std::move(pTableCheck);
else
- pReturn = pQueryCheck;
+ pReturn = std::move(pQueryCheck);
return pReturn;
}
@@ -330,7 +331,7 @@ namespace sdbtools
catch( const Exception& )
{
throw IllegalArgumentException(
- "The connection could not provide its database's meta data.",
+ u"The connection could not provide its database's meta data."_ustr,
nullptr,
0
);
diff --git a/dbaccess/source/sdbtools/connection/tablename.cxx b/dbaccess/source/sdbtools/connection/tablename.cxx
index 132484a2469f..f6a77dd3e91b 100644
--- a/dbaccess/source/sdbtools/connection/tablename.cxx
+++ b/dbaccess/source/sdbtools/connection/tablename.cxx
@@ -26,7 +26,7 @@
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <connectivity/dbtools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace sdbtools
{
@@ -51,17 +51,8 @@ namespace sdbtools
using namespace ::dbtools;
// TableName
- struct TableName_Impl
- {
- OUString sCatalog;
- OUString sSchema;
- OUString sName;
- };
-
- // TableName
TableName::TableName( const Reference<XComponentContext>& _rContext, const Reference< XConnection >& _rxConnection )
:ConnectionDependentComponent( _rContext )
- ,m_pImpl( new TableName_Impl )
{
setWeakConnection( _rxConnection );
}
@@ -73,43 +64,43 @@ namespace sdbtools
OUString SAL_CALL TableName::getCatalogName()
{
EntryGuard aGuard( *this );
- return m_pImpl->sCatalog;
+ return msCatalog;
}
void SAL_CALL TableName::setCatalogName( const OUString& _catalogName )
{
EntryGuard aGuard( *this );
- m_pImpl->sCatalog = _catalogName;
+ msCatalog = _catalogName;
}
OUString SAL_CALL TableName::getSchemaName()
{
EntryGuard aGuard( *this );
- return m_pImpl->sSchema;
+ return msSchema;
}
void SAL_CALL TableName::setSchemaName( const OUString& _schemaName )
{
EntryGuard aGuard( *this );
- m_pImpl->sSchema = _schemaName;
+ msSchema = _schemaName;
}
OUString SAL_CALL TableName::getTableName()
{
EntryGuard aGuard( *this );
- return m_pImpl->sName;
+ return msName;
}
void SAL_CALL TableName::setTableName( const OUString& _tableName )
{
EntryGuard aGuard( *this );
- m_pImpl->sName = _tableName;
+ msName = _tableName;
}
OUString SAL_CALL TableName::getNameForSelect()
{
EntryGuard aGuard( *this );
- return composeTableNameForSelect( getConnection(), m_pImpl->sCatalog, m_pImpl->sSchema, m_pImpl->sName );
+ return composeTableNameForSelect( getConnection(), msCatalog, msSchema, msName );
}
Reference< XPropertySet > SAL_CALL TableName::getTable()
@@ -157,9 +148,9 @@ namespace sdbtools
try
{
- OSL_VERIFY( _table->getPropertyValue( PROPERTY_CATALOGNAME ) >>= m_pImpl->sCatalog );
- OSL_VERIFY( _table->getPropertyValue( PROPERTY_SCHEMANAME ) >>= m_pImpl->sSchema );
- OSL_VERIFY( _table->getPropertyValue( PROPERTY_NAME ) >>= m_pImpl->sName );
+ OSL_VERIFY( _table->getPropertyValue( PROPERTY_CATALOGNAME ) >>= msCatalog );
+ OSL_VERIFY( _table->getPropertyValue( PROPERTY_SCHEMANAME ) >>= msSchema );
+ OSL_VERIFY( _table->getPropertyValue( PROPERTY_NAME ) >>= msName );
}
catch( const RuntimeException& ) { throw; }
catch( const Exception& e )
@@ -190,19 +181,16 @@ namespace sdbtools
{ CompositionType::Complete, EComposeRule::Complete }
};
- bool found = false;
- size_t i = 0;
- for ( ; i < SAL_N_ELEMENTS( TypeTable ) && !found; ++i )
- if ( TypeTable[i].nCompositionType == _nType )
- found = true;
- if ( !found )
+ auto const found = std::find_if(std::begin(TypeTable), std::end(TypeTable)
+ , [_nType](auto const & type){ return type.nCompositionType == _nType; });
+ if (found == std::end(TypeTable))
throw IllegalArgumentException(
DBA_RES( STR_INVALID_COMPOSITION_TYPE ),
nullptr,
0
);
- return TypeTable[i].eComposeRule;
+ return found->eComposeRule;
}
}
@@ -212,7 +200,7 @@ namespace sdbtools
return composeTableName(
getConnection()->getMetaData(),
- m_pImpl->sCatalog, m_pImpl->sSchema, m_pImpl->sName, Quote,
+ msCatalog, msSchema, msName, Quote,
lcl_translateCompositionType_throw( Type ) );
}
@@ -223,7 +211,7 @@ namespace sdbtools
qualifiedNameComponents(
getConnection()->getMetaData(),
ComposedName,
- m_pImpl->sCatalog, m_pImpl->sSchema, m_pImpl->sName,
+ msCatalog, msSchema, msName,
lcl_translateCompositionType_throw( Type ) );
}
diff --git a/dbaccess/source/sdbtools/connection/tablename.hxx b/dbaccess/source/sdbtools/connection/tablename.hxx
index 3a7ece21a182..74abc3025f49 100644
--- a/dbaccess/source/sdbtools/connection/tablename.hxx
+++ b/dbaccess/source/sdbtools/connection/tablename.hxx
@@ -33,15 +33,11 @@ namespace sdbtools
// TableName
typedef ::cppu::WeakImplHelper< css::sdb::tools::XTableName
> TableName_Base;
- struct TableName_Impl;
/** default implementation for XTableName
*/
class TableName :public TableName_Base
,public ConnectionDependentComponent
{
- private:
- std::unique_ptr< TableName_Impl > m_pImpl;
-
public:
/** constructs the instance
@@ -77,6 +73,10 @@ namespace sdbtools
private:
TableName( const TableName& ) = delete;
TableName& operator=( const TableName& ) = delete;
+
+ OUString msCatalog;
+ OUString msSchema;
+ OUString msName;
};
} // namespace sdbtools
diff --git a/dbaccess/source/sdbtools/inc/connectiondependent.hxx b/dbaccess/source/sdbtools/inc/connectiondependent.hxx
index d315d70187fb..1278920c634c 100644
--- a/dbaccess/source/sdbtools/inc/connectiondependent.hxx
+++ b/dbaccess/source/sdbtools/inc/connectiondependent.hxx
@@ -25,6 +25,7 @@
#include <cppuhelper/weakref.hxx>
#include <osl/mutex.hxx>
+#include <utility>
namespace sdbtools
{
@@ -58,8 +59,8 @@ namespace sdbtools
class EntryGuard;
protected:
- explicit ConnectionDependentComponent( const css::uno::Reference< css::uno::XComponentContext > & _rContext )
- :m_aContext( _rContext )
+ explicit ConnectionDependentComponent( css::uno::Reference< css::uno::XComponentContext > _xContext )
+ :m_aContext(std::move( _xContext ))
{
}
@@ -79,7 +80,6 @@ namespace sdbtools
getConnection() const { return m_xConnection; }
public:
- struct GuardAccess;
friend struct GuardAccess;
/** helper for granting exclusive access to various other methods
*/
diff --git a/dbaccess/source/shared/registrationhelper.cxx b/dbaccess/source/shared/registrationhelper.cxx
deleted file mode 100644
index 2c9fbc1f1042..000000000000
--- a/dbaccess/source/shared/registrationhelper.cxx
+++ /dev/null
@@ -1,152 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-// be included in other cxx files
-
-#ifndef REGISTRATIONHELPER_CXX_INCLUDED_INDIRECTLY_
-#error "don't build this file directly! use dbu_reghelper.cxx instead!"
-#endif
-
-using namespace ::com::sun::star;
-using namespace ::comphelper;
-using namespace ::cppu;
-
-uno::Sequence< OUString >* OModuleRegistration::s_pImplementationNames = nullptr;
-uno::Sequence< uno::Sequence< OUString > >* OModuleRegistration::s_pSupportedServices = nullptr;
-uno::Sequence< sal_Int64 >* OModuleRegistration::s_pCreationFunctionPointers = nullptr;
-uno::Sequence< sal_Int64 >* OModuleRegistration::s_pFactoryFunctionPointers = nullptr;
-
-void OModuleRegistration::registerComponent(
- const OUString& _rImplementationName,
- const uno::Sequence< OUString >& _rServiceNames,
- ComponentInstantiation _pCreateFunction,
- FactoryInstantiation _pFactoryFunction)
-{
- if (!s_pImplementationNames)
- {
- OSL_ENSURE(!s_pSupportedServices && !s_pCreationFunctionPointers && !s_pFactoryFunctionPointers,
- "OModuleRegistration::registerComponent : inconsistent state (the pointers (1)) !");
- s_pImplementationNames = new uno::Sequence< OUString >;
- s_pSupportedServices = new uno::Sequence< uno::Sequence< OUString > >;
- s_pCreationFunctionPointers = new uno::Sequence< sal_Int64 >;
- s_pFactoryFunctionPointers = new uno::Sequence< sal_Int64 >;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModuleRegistration::registerComponent : inconsistent state (the pointers (2)) !");
-
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModuleRegistration::registerComponent : inconsistent state !");
-
- sal_Int32 nOldLen = s_pImplementationNames->getLength();
- s_pImplementationNames->realloc(nOldLen + 1);
- s_pSupportedServices->realloc(nOldLen + 1);
- s_pCreationFunctionPointers->realloc(nOldLen + 1);
- s_pFactoryFunctionPointers->realloc(nOldLen + 1);
-
- s_pImplementationNames->getArray()[nOldLen] = _rImplementationName;
- s_pSupportedServices->getArray()[nOldLen] = _rServiceNames;
- s_pCreationFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pCreateFunction);
- s_pFactoryFunctionPointers->getArray()[nOldLen] = reinterpret_cast<sal_Int64>(_pFactoryFunction);
-}
-
-void OModuleRegistration::revokeComponent(const OUString& _rImplementationName)
-{
- if (!s_pImplementationNames)
- {
- OSL_FAIL("OModuleRegistration::revokeComponent : have no class infos ! Are you sure called this method at the right time ?");
- return;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModuleRegistration::revokeComponent : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModuleRegistration::revokeComponent : inconsistent state !");
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const OUString* pImplNames = s_pImplementationNames->getConstArray();
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplNames)
- {
- if (*pImplNames == _rImplementationName)
- {
- removeElementAt(*s_pImplementationNames, i);
- removeElementAt(*s_pSupportedServices, i);
- removeElementAt(*s_pCreationFunctionPointers, i);
- removeElementAt(*s_pFactoryFunctionPointers, i);
- break;
- }
- }
-
- if (s_pImplementationNames->getLength() == 0)
- {
- delete s_pImplementationNames; s_pImplementationNames = nullptr;
- delete s_pSupportedServices; s_pSupportedServices = nullptr;
- delete s_pCreationFunctionPointers; s_pCreationFunctionPointers = nullptr;
- delete s_pFactoryFunctionPointers; s_pFactoryFunctionPointers = nullptr;
- }
-}
-
-uno::Reference< uno::XInterface > OModuleRegistration::getComponentFactory(
- const OUString& _rImplementationName,
- const uno::Reference< lang::XMultiServiceFactory >& _rxServiceManager)
-{
- OSL_ENSURE(_rxServiceManager.is(), "OModuleRegistration::getComponentFactory : invalid argument (service manager) !");
- OSL_ENSURE(!_rImplementationName.isEmpty(), "OModuleRegistration::getComponentFactory : invalid argument (implementation name) !");
-
- if (!s_pImplementationNames)
- {
- OSL_FAIL("OModuleRegistration::getComponentFactory : have no class infos ! Are you sure called this method at the right time ?");
- return nullptr;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModuleRegistration::getComponentFactory : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModuleRegistration::getComponentFactory : inconsistent state !");
-
- uno::Reference< uno::XInterface > xReturn;
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const OUString* pImplName = s_pImplementationNames->getConstArray();
- const uno::Sequence< OUString >* pServices = s_pSupportedServices->getConstArray();
- const sal_Int64* pComponentFunction = s_pCreationFunctionPointers->getConstArray();
- const sal_Int64* pFactoryFunction = s_pFactoryFunctionPointers->getConstArray();
-
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices, ++pComponentFunction, ++pFactoryFunction)
- {
- if (*pImplName == _rImplementationName)
- {
- const FactoryInstantiation FactoryInstantiationFunction = reinterpret_cast<FactoryInstantiation>(*pFactoryFunction);
- const ComponentInstantiation ComponentInstantiationFunction = reinterpret_cast<ComponentInstantiation>(*pComponentFunction);
-
- xReturn = FactoryInstantiationFunction( _rxServiceManager, *pImplName, ComponentInstantiationFunction, *pServices, nullptr);
- if (xReturn.is())
- {
- return xReturn.get();
- }
- }
- }
-
- return nullptr;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx
index b6c1c16ffca5..741dc7afeeb8 100644
--- a/dbaccess/source/ui/app/AppController.cxx
+++ b/dbaccess/source/ui/app/AppController.cxx
@@ -20,6 +20,7 @@
#include <memory>
#include "AppController.hxx"
#include <core_resource.hxx>
+#include <dbexchange.hxx>
#include <strings.hxx>
#include <advancedsettingsdlg.hxx>
#include "subcomponentmanager.hxx"
@@ -54,7 +55,7 @@
#include <com/sun/star/sdb/application/DatabaseObject.hpp>
#include <com/sun/star/sdb/application/DatabaseObjectContainer.hpp>
#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/urlobj.hxx>
#include <osl/diagnose.h>
@@ -62,11 +63,11 @@
#include <vcl/transfer.hxx>
#include <svtools/cliplistener.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/uno3.hxx>
#include <comphelper/types.hxx>
#include <comphelper/interaction.hxx>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
@@ -144,7 +145,7 @@ OUString SAL_CALL OApplicationController::getImplementationName()
Sequence< OUString> SAL_CALL OApplicationController::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.application.DefaultViewController" };
+ return { u"com.sun.star.sdb.application.DefaultViewController"_ustr };
}
namespace {
@@ -157,7 +158,7 @@ class SelectionGuard;
class SelectionNotifier
{
private:
- ::comphelper::OInterfaceContainerHelper2 m_aSelectionListeners;
+ ::comphelper::OInterfaceContainerHelper3<XSelectionChangeListener> m_aSelectionListeners;
::cppu::OWeakObject& m_rContext;
sal_Int32 m_nSelectionNestingLevel;
@@ -251,7 +252,7 @@ OApplicationController::OApplicationController(const Reference< XComponentContex
,m_aTableCopyHelper(this)
,m_nAsyncDrop(nullptr)
,m_aSelectContainerEvent( LINK( this, OApplicationController, OnSelectContainer ) )
- ,m_ePreviewMode(E_PREVIEWNONE)
+ ,m_ePreviewMode(PreviewMode::NONE)
,m_eCurrentType(E_NONE)
,m_bNeedToReconnect(false)
,m_bSuspended( false )
@@ -326,14 +327,20 @@ void SAL_CALL OApplicationController::disposing()
if ( m_xDataSource.is() )
{
+ // Should correspond to ODatabaseSource::createArrayHelper in dbaccess/source/core/dataaccess/datasource.cxx
m_xDataSource->removePropertyChangeListener(OUString(), this);
m_xDataSource->removePropertyChangeListener(PROPERTY_INFO, this);
- m_xDataSource->removePropertyChangeListener(PROPERTY_URL, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_ISPASSWORDREQUIRED, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_ISREADONLY, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_LAYOUTINFORMATION, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_NAME, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_NUMBERFORMATSSUPPLIER, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_PASSWORD, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_SETTINGS, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_SUPPRESSVERSIONCL, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_TABLEFILTER, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_TABLETYPEFILTER, this);
+ m_xDataSource->removePropertyChangeListener(PROPERTY_URL, this);
m_xDataSource->removePropertyChangeListener(PROPERTY_USER, this);
m_xDataSource = nullptr;
}
@@ -347,8 +354,7 @@ void SAL_CALL OApplicationController::disposing()
OUString sUrl = m_xModel->getURL();
if ( !sUrl.isEmpty() )
{
- ::comphelper::NamedValueCollection aArgs( m_xModel->getArgs() );
- if ( aArgs.getOrDefault( "PickListEntry", true ) )
+ if ( ::comphelper::NamedValueCollection::getOrDefault( m_xModel->getArgs(), u"PickListEntry", true ) )
{
OUString aFilter;
INetURLObject aURL( m_xModel->getURL() );
@@ -356,12 +362,13 @@ void SAL_CALL OApplicationController::disposing()
if ( pFilter )
aFilter = pFilter->GetFilterName();
+ OUString sDatabaseName;
// add to svtool history options
- SvtHistoryOptions().AppendItem( ePICKLIST,
+ SvtHistoryOptions::AppendItem( EHistoryType::PickList,
aURL.GetURLNoPass( INetURLObject::DecodeMechanism::NONE ),
aFilter,
- getStrippedDatabaseName(),
- std::nullopt);
+ ::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName),
+ std::nullopt, std::nullopt);
// add to recent document list
if ( aURL.GetProtocol() == INetProtocol::File )
@@ -468,7 +475,7 @@ sal_Bool SAL_CALL OApplicationController::suspend(sal_Bool bSuspend)
if ( xBroadcaster.is() )
{
xBroadcaster->notifyDocumentEvent(
- "OnPrepareViewClosing",
+ u"OnPrepareViewClosing"_ustr,
this,
Any()
);
@@ -498,7 +505,8 @@ sal_Bool SAL_CALL OApplicationController::suspend(sal_Bool bSuspend)
)
)
{
- switch (ExecuteQuerySaveDocument(getFrameWeld(), getStrippedDatabaseName()))
+ OUString sDatabaseName;
+ switch (ExecuteQuerySaveDocument(getFrameWeld(), ::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName)))
{
case RET_YES:
Execute(ID_BROWSER_SAVEDOC,Sequence<PropertyValue>());
@@ -590,11 +598,10 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
case SID_NEWDOC:
case SID_APP_NEW_FORM:
case ID_DOCUMENT_CREATE_REPWIZ:
- aReturn.bEnabled = !isDataSourceReadOnly() && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER);
+ aReturn.bEnabled = !isDataSourceReadOnly() && SvtModuleOptions().IsWriterInstalled();
break;
case SID_APP_NEW_REPORT:
- aReturn.bEnabled = !isDataSourceReadOnly()
- && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER);
+ aReturn.bEnabled = !isDataSourceReadOnly() && SvtModuleOptions().IsWriterInstalled();
if ( aReturn.bEnabled )
{
Reference< XContentEnumerationAccess > xEnumAccess(m_xContext->getServiceManager(), UNO_QUERY);
@@ -662,7 +669,7 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
case SID_REPORT_CREATE_REPWIZ_PRE_SEL:
case SID_APP_NEW_REPORT_PRE_SEL:
aReturn.bEnabled = !isDataSourceReadOnly()
- && SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::EModule::WRITER)
+ && SvtModuleOptions().IsWriterInstalled()
&& getContainer()->isALeafSelected();
if ( aReturn.bEnabled )
{
@@ -674,7 +681,7 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
aReturn.bEnabled = xEnumAccess.is();
if ( aReturn.bEnabled )
{
- static const char s_sReportDesign[] = "org.libreoffice.report.pentaho.SOReportJobFactory";
+ static constexpr OUStringLiteral s_sReportDesign = u"org.libreoffice.report.pentaho.SOReportJobFactory";
Reference< XEnumeration > xEnumDrivers = xEnumAccess->createContentEnumeration(s_sReportDesign);
aReturn.bEnabled = xEnumDrivers.is() && xEnumDrivers->hasMoreElements();
}
@@ -792,20 +799,22 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
break;
case SID_DB_APP_DISABLE_PREVIEW:
aReturn.bEnabled = true;
- aReturn.bChecked = getContainer()->getPreviewMode() == E_PREVIEWNONE;
+ aReturn.bChecked = getContainer()->getPreviewMode() == PreviewMode::NONE;
break;
case SID_DB_APP_VIEW_DOCINFO_PREVIEW:
{
ElementType eType = getContainer()->getElementType();
aReturn.bEnabled = (E_REPORT == eType || E_FORM == eType);
- aReturn.bChecked = getContainer()->getPreviewMode() == E_DOCUMENTINFO;
+ aReturn.bChecked = getContainer()->getPreviewMode() == PreviewMode::DocumentInfo;
}
break;
case SID_DB_APP_VIEW_DOC_PREVIEW:
aReturn.bEnabled = true;
- aReturn.bChecked = getContainer()->getPreviewMode() == E_DOCUMENT;
+ aReturn.bChecked = getContainer()->getPreviewMode() == PreviewMode::Document;
break;
case ID_BROWSER_UNDO:
+ case SID_DB_APP_SENDREPORTTOWRITER:
+ case SID_DB_APP_DBADMIN:
aReturn.bEnabled = false;
break;
case SID_MAIL_SENDDOC:
@@ -817,10 +826,6 @@ FeatureState OApplicationController::GetState(sal_uInt16 _nId) const
aReturn.bEnabled = E_REPORT == eType && getContainer()->getSelectionCount() > 0 && getContainer()->isALeafSelected();
}
break;
- case SID_DB_APP_SENDREPORTTOWRITER:
- case SID_DB_APP_DBADMIN:
- aReturn.bEnabled = false;
- break;
case SID_DB_APP_STATUS_TYPE:
aReturn.bEnabled = m_xDataSource.is();
if ( aReturn.bEnabled )
@@ -906,17 +911,16 @@ namespace
bool bHandled = false;
// try handling the error with an interaction handler
- ::comphelper::NamedValueCollection aArgs( _rxDocument->getArgs() );
- Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( "InteractionHandler", Reference< XInteractionHandler >() ) );
+ Reference< XInteractionHandler > xHandler = ::comphelper::NamedValueCollection::getOrDefault( _rxDocument->getArgs(), u"InteractionHandler", Reference< XInteractionHandler >() );
if ( xHandler.is() )
{
rtl::Reference pRequest( new ::comphelper::OInteractionRequest( _rException ) );
rtl::Reference pApprove( new ::comphelper::OInteractionApprove );
- pRequest->addContinuation( pApprove.get() );
+ pRequest->addContinuation( pApprove );
try
{
- xHandler->handle( pRequest.get() );
+ xHandler->handle( pRequest );
}
catch( const Exception& )
{
@@ -1013,21 +1017,19 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
std::vector<SotClipboardFormatId> aFormatIds;
getSupportedFormats(getContainer()->getElementType(),aFormatIds);
for (auto const& formatId : aFormatIds)
- pDlg->Insert(formatId,"");
+ pDlg->Insert(formatId,u""_ustr);
const TransferableDataHelper& rClipboard = getViewClipboard();
pasteFormat(pDlg->GetFormat(rClipboard.GetTransferable()));
}
else
{
- const PropertyValue* pIter = aArgs.getConstArray();
- const PropertyValue* pEnd = pIter + aArgs.getLength();
- for( ; pIter != pEnd ; ++pIter)
+ for (auto& arg : aArgs)
{
- if ( pIter->Name == "FormatStringId" )
+ if (arg.Name == "FormatStringId")
{
- sal_uLong nTmp;
- if ( pIter->Value >>= nTmp )
+ sal_uInt32 nTmp;
+ if (arg.Value >>= nTmp)
pasteFormat(static_cast<SotClipboardFormatId>(nTmp));
break;
}
@@ -1078,13 +1080,13 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
OUString sUrl;
if ( m_xModel.is() )
sUrl = m_xModel->getURL();
- if ( sUrl.isEmpty() )
- sUrl = SvtPathOptions().GetWorkPath();
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION,
FileDialogFlags::NONE, getFrameWeld());
- aFileDlg.SetDisplayDirectory( sUrl );
+ aFileDlg.SetContext(sfx2::FileDialogHelper::BaseSaveAs);
+ if (!sUrl.isEmpty())
+ aFileDlg.SetDisplayDirectory( sUrl );
std::shared_ptr<const SfxFilter> pFilter = getStandardDatabaseFilter();
if ( pFilter )
@@ -1170,7 +1172,7 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
eType = E_QUERY;
break;
case ID_NEW_QUERY_DESIGN:
- aCreationArgs.put( OUString(PROPERTY_GRAPHICAL_DESIGN), true );
+ aCreationArgs.put( PROPERTY_GRAPHICAL_DESIGN, true );
[[fallthrough]];
case ID_NEW_QUERY_SQL:
eType = E_QUERY;
@@ -1196,7 +1198,7 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
{
ElementType eType = getContainer()->getElementType();
OUString sName = getContainer()->getQualifiedName( nullptr );
- insertHierachyElement(eType,sName);
+ insertHierarchyElement(eType,sName);
}
break;
case ID_NEW_VIEW_DESIGN:
@@ -1208,11 +1210,11 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
QueryDesigner aDesigner( getORB(), this, getFrame(), true );
::comphelper::NamedValueCollection aCreationArgs;
- aCreationArgs.put( OUString(PROPERTY_GRAPHICAL_DESIGN), ID_NEW_VIEW_DESIGN == _nId );
+ aCreationArgs.put( PROPERTY_GRAPHICAL_DESIGN, ID_NEW_VIEW_DESIGN == _nId );
const Reference< XDataSource > xDataSource( m_xDataSource, UNO_QUERY );
const Reference< XComponent > xComponent = aDesigner.createNew( xDataSource, aCreationArgs );
- onDocumentOpened( OUString(), E_QUERY, E_OPEN_DESIGN, xComponent, nullptr );
+ onDocumentOpened( OUString(), E_QUERY, ElementOpenMode::Design, xComponent, nullptr );
}
}
break;
@@ -1236,17 +1238,15 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
case SID_DB_APP_QUERY_EDIT:
case SID_DB_APP_FORM_EDIT:
case SID_DB_APP_REPORT_EDIT:
- doAction( _nId, E_OPEN_DESIGN );
+ doAction( _nId, ElementOpenMode::Design );
break;
case SID_DB_APP_OPEN:
case SID_DB_APP_TABLE_OPEN:
case SID_DB_APP_QUERY_OPEN:
case SID_DB_APP_FORM_OPEN:
case SID_DB_APP_REPORT_OPEN:
- doAction( _nId, E_OPEN_NORMAL );
- break;
case SID_DB_APP_CONVERTTOVIEW:
- doAction( _nId, E_OPEN_NORMAL );
+ doAction( _nId, ElementOpenMode::Normal );
break;
case SID_SELECTALL:
getContainer()->selectAll();
@@ -1255,7 +1255,7 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
case SID_DB_APP_DSRELDESIGN:
{
Reference< XComponent > xRelationDesigner;
- if ( !m_pSubComponentManager->activateSubFrame( OUString(), SID_DB_APP_DSRELDESIGN, E_OPEN_DESIGN, xRelationDesigner ) )
+ if ( !m_pSubComponentManager->activateSubFrame( OUString(), SID_DB_APP_DSRELDESIGN, ElementOpenMode::Design, xRelationDesigner ) )
{
SharedConnection xConnection( ensureConnection() );
if ( xConnection.is() )
@@ -1264,7 +1264,7 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
const Reference< XDataSource > xDataSource( m_xDataSource, UNO_QUERY );
const Reference< XComponent > xComponent = aDesigner.createNew( xDataSource );
- onDocumentOpened( OUString(), SID_DB_APP_DSRELDESIGN, E_OPEN_DESIGN, xComponent, nullptr );
+ onDocumentOpened( OUString(), SID_DB_APP_DSRELDESIGN, ElementOpenMode::Design, xComponent, nullptr );
}
}
}
@@ -1273,12 +1273,12 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
{
SharedConnection xConnection( ensureConnection() );
if ( xConnection.is() )
- openDialog("com.sun.star.sdb.UserAdministrationDialog");
+ openDialog(u"com.sun.star.sdb.UserAdministrationDialog"_ustr);
}
break;
case SID_DB_APP_TABLEFILTER:
// opens the table filter dialog for the selected data source
- openDialog( "com.sun.star.sdb.TableFilterDialog" );
+ openDialog( u"com.sun.star.sdb.TableFilterDialog"_ustr );
askToReconnect();
break;
case SID_DB_APP_REFRESH_TABLES:
@@ -1286,15 +1286,15 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
break;
case SID_DB_APP_DSPROPS:
// opens the administration dialog for the selected data source
- openDialog( "com.sun.star.sdb.DatasourceAdministrationDialog" );
+ openDialog( u"com.sun.star.sdb.DatasourceAdministrationDialog"_ustr );
askToReconnect();
break;
case SID_DB_APP_DSADVANCED_SETTINGS:
- openDialog("com.sun.star.sdb.AdvancedDatabaseSettingsDialog");
+ openDialog(u"com.sun.star.sdb.AdvancedDatabaseSettingsDialog"_ustr);
askToReconnect();
break;
case SID_DB_APP_DSCONNECTION_TYPE:
- openDialog("com.sun.star.sdb.DataSourceTypeChangeDialog");
+ openDialog(u"com.sun.star.sdb.DataSourceTypeChangeDialog"_ustr);
askToReconnect();
break;
case ID_DIRECT_SQL:
@@ -1318,15 +1318,15 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
m_aSelectContainerEvent.Call( reinterpret_cast< void* >( E_REPORT ) );
break;
case SID_DB_APP_DISABLE_PREVIEW:
- m_ePreviewMode = E_PREVIEWNONE;
+ m_ePreviewMode = PreviewMode::NONE;
getContainer()->switchPreview(m_ePreviewMode);
break;
case SID_DB_APP_VIEW_DOCINFO_PREVIEW:
- m_ePreviewMode = E_DOCUMENTINFO;
+ m_ePreviewMode = PreviewMode::DocumentInfo;
getContainer()->switchPreview(m_ePreviewMode);
break;
case SID_DB_APP_VIEW_DOC_PREVIEW:
- m_ePreviewMode = E_DOCUMENT;
+ m_ePreviewMode = PreviewMode::Document;
getContainer()->switchPreview(m_ePreviewMode);
break;
case SID_MAIL_SENDDOC:
@@ -1337,7 +1337,7 @@ void OApplicationController::Execute(sal_uInt16 _nId, const Sequence< PropertyVa
}
break;
case SID_DB_APP_SENDREPORTASMAIL:
- doAction( _nId, E_OPEN_FOR_MAIL );
+ doAction( _nId, ElementOpenMode::Mail );
break;
}
}
@@ -1352,107 +1352,107 @@ void OApplicationController::describeSupportedFeatures()
{
OGenericUnoController::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:AddDirect", SID_NEWDOCDIRECT, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:Save", ID_BROWSER_SAVEDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:SaveAs", ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:SendMail", SID_MAIL_SENDDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DBSendReportAsMail",SID_DB_APP_SENDREPORTASMAIL,
+ implDescribeSupportedFeature( u".uno:AddDirect"_ustr, SID_NEWDOCDIRECT, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:Save"_ustr, ID_BROWSER_SAVEDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:SaveAs"_ustr, ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:SendMail"_ustr, SID_MAIL_SENDDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:DBSendReportAsMail"_ustr,SID_DB_APP_SENDREPORTASMAIL,
CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DBSendReportToWriter",SID_DB_APP_SENDREPORTTOWRITER,
+ implDescribeSupportedFeature( u".uno:DBSendReportToWriter"_ustr,SID_DB_APP_SENDREPORTTOWRITER,
CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DBNewForm", SID_APP_NEW_FORM, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewFolder", SID_APP_NEW_FOLDER, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewFormAutoPilot", SID_DB_FORM_NEW_PILOT, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewFormAutoPilotWithPreSelection",
+ implDescribeSupportedFeature( u".uno:DBNewForm"_ustr, SID_APP_NEW_FORM, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewFolder"_ustr, SID_APP_NEW_FOLDER, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewFormAutoPilot"_ustr, SID_DB_FORM_NEW_PILOT, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewFormAutoPilotWithPreSelection"_ustr,
SID_FORM_CREATE_REPWIZ_PRE_SEL,
CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBNewReport", SID_APP_NEW_REPORT, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewReportAutoPilot",
+ implDescribeSupportedFeature( u".uno:DBNewReport"_ustr, SID_APP_NEW_REPORT, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewReportAutoPilot"_ustr,
ID_DOCUMENT_CREATE_REPWIZ, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewReportAutoPilotWithPreSelection",
+ implDescribeSupportedFeature( u".uno:DBNewReportAutoPilotWithPreSelection"_ustr,
SID_REPORT_CREATE_REPWIZ_PRE_SEL,
CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBNewQuery", ID_NEW_QUERY_DESIGN, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewQuerySql", ID_NEW_QUERY_SQL, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewQueryAutoPilot",ID_APP_NEW_QUERY_AUTO_PILOT,
+ implDescribeSupportedFeature( u".uno:DBNewQuery"_ustr, ID_NEW_QUERY_DESIGN, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewQuerySql"_ustr, ID_NEW_QUERY_SQL, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewQueryAutoPilot"_ustr,ID_APP_NEW_QUERY_AUTO_PILOT,
CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewTable", ID_NEW_TABLE_DESIGN, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewTableAutoPilot",ID_NEW_TABLE_DESIGN_AUTO_PILOT,
+ implDescribeSupportedFeature( u".uno:DBNewTable"_ustr, ID_NEW_TABLE_DESIGN, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewTableAutoPilot"_ustr,ID_NEW_TABLE_DESIGN_AUTO_PILOT,
CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewView", ID_NEW_VIEW_DESIGN, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DBNewViewSQL", SID_DB_NEW_VIEW_SQL, CommandGroup::INSERT );
-
- implDescribeSupportedFeature( ".uno:DBDelete", SID_DB_APP_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Delete", SID_DB_APP_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBRename", SID_DB_APP_RENAME, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBEdit", SID_DB_APP_EDIT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBEditSqlView", SID_DB_APP_EDIT_SQL_VIEW, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBOpen", SID_DB_APP_OPEN, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:DBTableDelete", SID_DB_APP_TABLE_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBTableRename", SID_DB_APP_TABLE_RENAME, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBTableEdit", SID_DB_APP_TABLE_EDIT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBTableOpen", SID_DB_APP_TABLE_OPEN, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:DBQueryDelete", SID_DB_APP_QUERY_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBQueryRename", SID_DB_APP_QUERY_RENAME, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBQueryEdit", SID_DB_APP_QUERY_EDIT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBQueryOpen", SID_DB_APP_QUERY_OPEN, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:DBFormDelete", SID_DB_APP_FORM_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBFormRename", SID_DB_APP_FORM_RENAME, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBFormEdit", SID_DB_APP_FORM_EDIT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBFormOpen", SID_DB_APP_FORM_OPEN, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:DBReportDelete", SID_DB_APP_REPORT_DELETE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBReportRename", SID_DB_APP_REPORT_RENAME, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBReportEdit", SID_DB_APP_REPORT_EDIT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBReportOpen", SID_DB_APP_REPORT_OPEN, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:SelectAll", SID_SELECTALL, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Undo", ID_BROWSER_UNDO, CommandGroup::EDIT );
-
- implDescribeSupportedFeature( ".uno:Sortup", ID_BROWSER_SORTUP, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:SortDown", ID_BROWSER_SORTDOWN, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBRelationDesign", SID_DB_APP_DSRELDESIGN, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBUserAdmin", SID_DB_APP_DSUSERADMIN, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBTableFilter", SID_DB_APP_TABLEFILTER, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBDSProperties", SID_DB_APP_DSPROPS, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBDSConnectionType", SID_DB_APP_DSCONNECTION_TYPE,
+ implDescribeSupportedFeature( u".uno:DBNewView"_ustr, ID_NEW_VIEW_DESIGN, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DBNewViewSQL"_ustr, SID_DB_NEW_VIEW_SQL, CommandGroup::INSERT );
+
+ implDescribeSupportedFeature( u".uno:DBDelete"_ustr, SID_DB_APP_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Delete"_ustr, SID_DB_APP_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBRename"_ustr, SID_DB_APP_RENAME, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBEdit"_ustr, SID_DB_APP_EDIT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBEditSqlView"_ustr, SID_DB_APP_EDIT_SQL_VIEW, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBOpen"_ustr, SID_DB_APP_OPEN, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:DBTableDelete"_ustr, SID_DB_APP_TABLE_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBTableRename"_ustr, SID_DB_APP_TABLE_RENAME, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBTableEdit"_ustr, SID_DB_APP_TABLE_EDIT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBTableOpen"_ustr, SID_DB_APP_TABLE_OPEN, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:DBQueryDelete"_ustr, SID_DB_APP_QUERY_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBQueryRename"_ustr, SID_DB_APP_QUERY_RENAME, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBQueryEdit"_ustr, SID_DB_APP_QUERY_EDIT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBQueryOpen"_ustr, SID_DB_APP_QUERY_OPEN, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:DBFormDelete"_ustr, SID_DB_APP_FORM_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBFormRename"_ustr, SID_DB_APP_FORM_RENAME, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBFormEdit"_ustr, SID_DB_APP_FORM_EDIT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBFormOpen"_ustr, SID_DB_APP_FORM_OPEN, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:DBReportDelete"_ustr, SID_DB_APP_REPORT_DELETE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBReportRename"_ustr, SID_DB_APP_REPORT_RENAME, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBReportEdit"_ustr, SID_DB_APP_REPORT_EDIT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBReportOpen"_ustr, SID_DB_APP_REPORT_OPEN, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:SelectAll"_ustr, SID_SELECTALL, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Undo"_ustr, ID_BROWSER_UNDO, CommandGroup::EDIT );
+
+ implDescribeSupportedFeature( u".uno:Sortup"_ustr, ID_BROWSER_SORTUP, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:SortDown"_ustr, ID_BROWSER_SORTDOWN, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBRelationDesign"_ustr, SID_DB_APP_DSRELDESIGN, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:DBUserAdmin"_ustr, SID_DB_APP_DSUSERADMIN, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:DBTableFilter"_ustr, SID_DB_APP_TABLEFILTER, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:DBDSProperties"_ustr, SID_DB_APP_DSPROPS, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBDSConnectionType"_ustr, SID_DB_APP_DSCONNECTION_TYPE,
CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBDSAdvancedSettings",
+ implDescribeSupportedFeature( u".uno:DBDSAdvancedSettings"_ustr,
SID_DB_APP_DSADVANCED_SETTINGS,
CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:PasteSpecial", SID_DB_APP_PASTE_SPECIAL, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBConvertToView", SID_DB_APP_CONVERTTOVIEW, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBRefreshTables", SID_DB_APP_REFRESH_TABLES, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBDirectSQL", ID_DIRECT_SQL, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:DBViewTables", SID_DB_APP_VIEW_TABLES, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBViewQueries", SID_DB_APP_VIEW_QUERIES, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBViewForms", SID_DB_APP_VIEW_FORMS, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBViewReports", SID_DB_APP_VIEW_REPORTS, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBDisablePreview", SID_DB_APP_DISABLE_PREVIEW,CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBShowDocInfoPreview",
+ implDescribeSupportedFeature( u".uno:PasteSpecial"_ustr, SID_DB_APP_PASTE_SPECIAL, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBConvertToView"_ustr, SID_DB_APP_CONVERTTOVIEW, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBRefreshTables"_ustr, SID_DB_APP_REFRESH_TABLES, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:DBDirectSQL"_ustr, ID_DIRECT_SQL, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:DBViewTables"_ustr, SID_DB_APP_VIEW_TABLES, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBViewQueries"_ustr, SID_DB_APP_VIEW_QUERIES, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBViewForms"_ustr, SID_DB_APP_VIEW_FORMS, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBViewReports"_ustr, SID_DB_APP_VIEW_REPORTS, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBDisablePreview"_ustr, SID_DB_APP_DISABLE_PREVIEW,CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBShowDocInfoPreview"_ustr,
SID_DB_APP_VIEW_DOCINFO_PREVIEW,
CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBShowDocPreview", SID_DB_APP_VIEW_DOC_PREVIEW,
+ implDescribeSupportedFeature( u".uno:DBShowDocPreview"_ustr, SID_DB_APP_VIEW_DOC_PREVIEW,
CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:OpenUrl", SID_OPENURL, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:OpenUrl"_ustr, SID_OPENURL, CommandGroup::APPLICATION );
// this one should not appear under Tools->Customize->Keyboard
- implDescribeSupportedFeature( ".uno:DBNewReportWithPreSelection",
+ implDescribeSupportedFeature( u".uno:DBNewReportWithPreSelection"_ustr,
SID_APP_NEW_REPORT_PRE_SEL );
- implDescribeSupportedFeature( ".uno:DBDSImport", SID_DB_APP_DSIMPORT);
- implDescribeSupportedFeature( ".uno:DBDSExport", SID_DB_APP_DSEXPORT);
- implDescribeSupportedFeature( ".uno:DBDBAdmin", SID_DB_APP_DBADMIN);
+ implDescribeSupportedFeature( u".uno:DBDSImport"_ustr, SID_DB_APP_DSIMPORT);
+ implDescribeSupportedFeature( u".uno:DBDSExport"_ustr, SID_DB_APP_DSEXPORT);
+ implDescribeSupportedFeature( u".uno:DBDBAdmin"_ustr, SID_DB_APP_DBADMIN);
// status info
- implDescribeSupportedFeature( ".uno:DBStatusType", SID_DB_APP_STATUS_TYPE);
- implDescribeSupportedFeature( ".uno:DBStatusDBName", SID_DB_APP_STATUS_DBNAME);
- implDescribeSupportedFeature( ".uno:DBStatusUserName", SID_DB_APP_STATUS_USERNAME);
- implDescribeSupportedFeature( ".uno:DBStatusHostName", SID_DB_APP_STATUS_HOSTNAME);
+ implDescribeSupportedFeature( u".uno:DBStatusType"_ustr, SID_DB_APP_STATUS_TYPE);
+ implDescribeSupportedFeature( u".uno:DBStatusDBName"_ustr, SID_DB_APP_STATUS_DBNAME);
+ implDescribeSupportedFeature( u".uno:DBStatusUserName"_ustr, SID_DB_APP_STATUS_USERNAME);
+ implDescribeSupportedFeature( u".uno:DBStatusHostName"_ustr, SID_DB_APP_STATUS_HOSTNAME);
}
OApplicationView* OApplicationController::getContainer() const
@@ -1693,23 +1693,23 @@ bool OApplicationController::onEntryDoubleClick(const weld::TreeView& rTreeView)
if (!rTreeView.get_cursor(xHdlEntry.get()))
return false;
- if (pContainer->isLeaf(rTreeView, *xHdlEntry))
+ if (!pContainer->isLeaf(rTreeView, *xHdlEntry))
+ return false; // not handled
+
+ try
{
- try
- {
- // opens a new frame with either the table or the query or report or form or view
- openElementWithArguments(
- getContainer()->getQualifiedName(xHdlEntry.get()),
- getContainer()->getElementType(),
- E_OPEN_NORMAL,
- 0,
- ::comphelper::NamedValueCollection() );
- return true; // handled
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
+ // opens a new frame with either the table or the query or report or form or view
+ openElementWithArguments(
+ getContainer()->getQualifiedName(xHdlEntry.get()),
+ getContainer()->getElementType(),
+ ElementOpenMode::Normal,
+ 0,
+ ::comphelper::NamedValueCollection() );
+ return true; // handled
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
}
return false; // not handled
@@ -1748,7 +1748,7 @@ Reference< XComponent > OApplicationController::openElementWithArguments( const
return nullptr;
Reference< XComponent > xRet;
- if ( _eOpenMode == E_OPEN_DESIGN )
+ if ( _eOpenMode == ElementOpenMode::Design )
{
// https://bz.apache.org/ooo/show_bug.cgi?id=30382
getContainer()->showPreview(nullptr);
@@ -1758,7 +1758,7 @@ Reference< XComponent > OApplicationController::openElementWithArguments( const
switch ( _eType )
{
case E_REPORT:
- if ( _eOpenMode != E_OPEN_DESIGN )
+ if ( _eOpenMode != ElementOpenMode::Design )
{
// reports which are opened in a mode other than design are no sub components of our application
// component, but standalone documents.
@@ -1795,7 +1795,7 @@ Reference< XComponent > OApplicationController::openElementWithArguments( const
::comphelper::NamedValueCollection aArguments( _rAdditionalArguments );
Any aDataSource;
- if ( _eOpenMode == E_OPEN_DESIGN )
+ if ( _eOpenMode == ElementOpenMode::Design )
{
bool bAddViewTypeArg = false;
@@ -1821,7 +1821,7 @@ Reference< XComponent > OApplicationController::openElementWithArguments( const
if ( bAddViewTypeArg )
{
const bool bQueryGraphicalMode =( _nInstigatorCommand != SID_DB_APP_EDIT_SQL_VIEW );
- aArguments.put( OUString(PROPERTY_GRAPHICAL_DESIGN), bQueryGraphicalMode );
+ aArguments.put( PROPERTY_GRAPHICAL_DESIGN, bQueryGraphicalMode );
}
}
@@ -1829,8 +1829,8 @@ Reference< XComponent > OApplicationController::openElementWithArguments( const
{
pDesigner.reset( new ResultSetBrowser( getORB(), this, m_aCurrentFrame.getFrame(), _eType == E_TABLE ) );
- if ( !aArguments.has( OUString(PROPERTY_SHOWMENU) ) )
- aArguments.put( OUString(PROPERTY_SHOWMENU), makeAny( true ) );
+ if ( !aArguments.has( PROPERTY_SHOWMENU ) )
+ aArguments.put( PROPERTY_SHOWMENU, Any( true ) );
aDataSource <<= getDatabaseName();
}
@@ -1955,7 +1955,7 @@ Reference< XComponent > OApplicationController::newElement( ElementType _eType,
}
if ( xComponent.is() )
- onDocumentOpened( OUString(), _eType, E_OPEN_DESIGN, xComponent, o_rDocumentDefinition );
+ onDocumentOpened( OUString(), _eType, ElementOpenMode::Design, xComponent, o_rDocumentDefinition );
return xComponent;
}
@@ -2029,11 +2029,11 @@ void OApplicationController::renameEntry()
Reference<XHierarchicalNameContainer> xParent(xChild->getParent(),UNO_QUERY);
if ( xParent.is() )
{
- xHNames = xParent;
+ xHNames = std::move(xParent);
Reference<XPropertySet>(xRename,UNO_QUERY_THROW)->getPropertyValue(PROPERTY_NAME) >>= sName;
}
}
- pNameChecker.reset( new HierarchicalNameCheck( xHNames.get(), OUString() ) );
+ pNameChecker.reset( new HierarchicalNameCheck( xHNames, OUString() ) );
xDialog.reset(new OSaveAsDlg(
getFrameWeld(), getORB(), sName, sLabel, *pNameChecker, SADFlags::TitleRename));
}
@@ -2112,7 +2112,7 @@ void OApplicationController::renameEntry()
catch(const ElementExistException& e)
{
OUString sMsg(DBA_RES(STR_NAME_ALREADY_EXISTS));
- showError(SQLExceptionInfo(SQLException(sMsg.replaceAll("#", e.Message), e.Context, "S1000", 0, Any())));
+ showError(SQLExceptionInfo(SQLException(sMsg.replaceAll("#", e.Message), e.Context, u"S1000"_ustr, 0, Any())));
}
catch(const Exception& )
{
@@ -2154,7 +2154,7 @@ void OApplicationController::onSelectionChanged()
void OApplicationController::showPreviewFor(const ElementType _eType,const OUString& _sName)
{
- if ( m_ePreviewMode == E_PREVIEWNONE )
+ if ( m_ePreviewMode == PreviewMode::NONE )
return;
OApplicationView* pView = getContainer();
@@ -2248,7 +2248,7 @@ void OApplicationController::onDeleteEntry()
OUString OApplicationController::getContextMenuResourceName() const
{
- return "edit";
+ return u"edit"_ustr;
}
IController& OApplicationController::getCommandController()
@@ -2265,7 +2265,7 @@ Any OApplicationController::getCurrentSelection(weld::TreeView& rControl) const
{
Sequence< NamedDatabaseObject > aSelection;
getContainer()->describeCurrentSelectionForControl(rControl, aSelection);
- return makeAny( aSelection );
+ return Any( aSelection );
}
vcl::Window* OApplicationController::getMenuParent() const
@@ -2286,7 +2286,6 @@ bool OApplicationController::requestQuickHelp(const void* /*pUserData*/, OUStrin
bool OApplicationController::requestDrag(const weld::TreeIter& /*rEntry*/)
{
bool bSuccess = false;
- rtl::Reference<TransferableHelper> pTransfer;
OApplicationView* pContainer = getContainer();
if (pContainer && pContainer->getSelectionCount())
@@ -2324,43 +2323,42 @@ sal_Int8 OApplicationController::queryDrop( const AcceptDropEvent& _rEvt, const
sal_Int8 nActionAskedFor = _rEvt.mnAction;
// check if we're a table or query container
OApplicationView* pView = getContainer();
- if ( pView && !isDataSourceReadOnly() )
+ if ( !pView || isDataSourceReadOnly() )
+ return DND_ACTION_NONE;
+
+ ElementType eType = pView->getElementType();
+ if ( eType == E_NONE || (eType == E_TABLE && isConnectionReadOnly()) )
+ return DND_ACTION_NONE;
+
+ // check for the concrete type
+ if(std::any_of(_rFlavors.begin(),_rFlavors.end(),TAppSupportedSotFunctor(eType)))
+ return DND_ACTION_COPY;
+
+ if ( eType != E_FORM && eType != E_REPORT )
+ return DND_ACTION_NONE;
+
+ sal_Int8 nAction = OComponentTransferable::canExtractComponentDescriptor(_rFlavors,eType == E_FORM) ? DND_ACTION_COPY : DND_ACTION_NONE;
+ if ( nAction == DND_ACTION_NONE )
+ return DND_ACTION_NONE;
+
+ auto xHitEntry = pView->getEntry(_rEvt.maPosPixel);
+ if (xHitEntry)
{
- ElementType eType = pView->getElementType();
- if ( eType != E_NONE && (eType != E_TABLE || !isConnectionReadOnly()) )
+ OUString sName = pView->getQualifiedName(xHitEntry.get());
+ if ( !sName.isEmpty() )
{
- // check for the concrete type
- if(std::any_of(_rFlavors.begin(),_rFlavors.end(),TAppSupportedSotFunctor(eType)))
- return DND_ACTION_COPY;
- if ( eType == E_FORM || eType == E_REPORT )
+ Reference< XHierarchicalNameAccess > xContainer(getElements(pView->getElementType()),UNO_QUERY);
+ if ( xContainer.is() && xContainer->hasByHierarchicalName(sName) )
{
- sal_Int8 nAction = OComponentTransferable::canExtractComponentDescriptor(_rFlavors,eType == E_FORM) ? DND_ACTION_COPY : DND_ACTION_NONE;
- if ( nAction != DND_ACTION_NONE )
- {
- auto xHitEntry = pView->getEntry(_rEvt.maPosPixel);
- if (xHitEntry)
- {
- OUString sName = pView->getQualifiedName(xHitEntry.get());
- if ( !sName.isEmpty() )
- {
- Reference< XHierarchicalNameAccess > xContainer(getElements(pView->getElementType()),UNO_QUERY);
- if ( xContainer.is() && xContainer->hasByHierarchicalName(sName) )
- {
- Reference< XHierarchicalNameAccess > xHitObject(xContainer->getByHierarchicalName(sName),UNO_QUERY);
- if ( xHitObject.is() )
- nAction = nActionAskedFor & DND_ACTION_COPYMOVE;
- }
- else
- nAction = DND_ACTION_NONE;
- }
- }
- }
- return nAction;
+ Reference< XHierarchicalNameAccess > xHitObject(xContainer->getByHierarchicalName(sName),UNO_QUERY);
+ if ( xHitObject.is() )
+ nAction = nActionAskedFor & DND_ACTION_COPYMOVE;
}
+ else
+ nAction = DND_ACTION_NONE;
}
}
-
- return DND_ACTION_NONE;
+ return nAction;
}
sal_Int8 OApplicationController::executeDrop( const ExecuteDropEvent& _rEvt )
@@ -2515,8 +2513,7 @@ void OApplicationController::OnFirstControllerConnected()
{
// If the migration just happened, but was not successful, the document is reloaded.
// In this case, we should not show the warning, again.
- ::comphelper::NamedValueCollection aModelArgs( m_xModel->getArgs() );
- if ( aModelArgs.getOrDefault( "SuppressMigrationWarning", false ) )
+ if ( ::comphelper::NamedValueCollection::getOrDefault( m_xModel->getArgs(), u"SuppressMigrationWarning", false ) )
return;
// also, if the document is read-only, then no migration is possible, and the
@@ -2524,13 +2521,10 @@ void OApplicationController::OnFirstControllerConnected()
if ( Reference< XStorable >( m_xModel, UNO_QUERY_THROW )->isReadonly() )
return;
- SQLWarning aWarning;
- aWarning.Message = DBA_RES(STR_SUB_DOCS_WITH_SCRIPTS);
- SQLException aDetail;
- aDetail.Message = DBA_RES(STR_SUB_DOCS_WITH_SCRIPTS_DETAIL);
- aWarning.NextException <<= aDetail;
+ SQLException aDetail(DBA_RES(STR_SUB_DOCS_WITH_SCRIPTS_DETAIL), {}, {}, 0, {});
+ SQLWarning aWarning(DBA_RES(STR_SUB_DOCS_WITH_SCRIPTS), {}, {}, 0, css::uno::Any(aDetail));
- Reference< XExecutableDialog > xDialog = ErrorMessageDialog::create( getORB(), "", nullptr, makeAny( aWarning ) );
+ Reference< XExecutableDialog > xDialog = ErrorMessageDialog::create( getORB(), u""_ustr, nullptr, Any( aWarning ) );
xDialog->execute();
}
catch( const Exception& )
@@ -2569,7 +2563,7 @@ sal_Bool SAL_CALL OApplicationController::attachModel(const Reference< XModel >
const OUString aPropertyNames[] =
{
- OUString(PROPERTY_URL), OUString(PROPERTY_USER)
+ PROPERTY_URL, PROPERTY_USER
};
// disconnect from old model
@@ -2616,25 +2610,25 @@ sal_Bool SAL_CALL OApplicationController::attachModel(const Reference< XModel >
}
// initial preview mode
- if ( m_xDataSource.is() )
+ if ( !m_xDataSource )
+ return true;
+
+ try
{
- try
+ // to get the 'modified' for the data source
+ ::comphelper::NamedValueCollection aLayoutInfo( m_xDataSource->getPropertyValue( PROPERTY_LAYOUTINFORMATION ) );
+ if ( aLayoutInfo.has( INFO_PREVIEW ) )
{
- // to get the 'modified' for the data source
- ::comphelper::NamedValueCollection aLayoutInfo( m_xDataSource->getPropertyValue( PROPERTY_LAYOUTINFORMATION ) );
- if ( aLayoutInfo.has( OUString(INFO_PREVIEW) ) )
- {
- const sal_Int32 nPreviewMode( aLayoutInfo.getOrDefault( INFO_PREVIEW, sal_Int32(0) ) );
- m_ePreviewMode = static_cast< PreviewMode >( nPreviewMode );
- if ( getView() )
- getContainer()->switchPreview( m_ePreviewMode );
- }
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
+ const sal_Int32 nPreviewMode( aLayoutInfo.getOrDefault( INFO_PREVIEW, sal_Int32(0) ) );
+ m_ePreviewMode = static_cast< PreviewMode >( nPreviewMode );
+ if ( getView() )
+ getContainer()->switchPreview( m_ePreviewMode );
}
}
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
return true;
}
@@ -2702,20 +2696,18 @@ sal_Bool SAL_CALL OApplicationController::select( const Any& _aSelection )
if ( (_aSelection >>= aCurrentSelection) && aCurrentSelection.hasElements() )
{
ElementType eType = E_NONE;
- const NamedValue* pIter = aCurrentSelection.getConstArray();
- const NamedValue* pEnd = pIter + aCurrentSelection.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& item : aCurrentSelection)
{
- if ( pIter->Name == "Type" )
+ if (item.Name == "Type")
{
sal_Int32 nType = 0;
- pIter->Value >>= nType;
+ item.Value >>= nType;
if ( nType < DatabaseObject::TABLE || nType > DatabaseObject::REPORT )
throw IllegalArgumentException();
eType = static_cast< ElementType >( nType );
}
- else if ( pIter->Name == "Selection" )
- pIter->Value >>= aSelection;
+ else if (item.Name == "Selection")
+ item.Value >>= aSelection;
}
m_aSelectContainerEvent.CancelCall(); // just in case the async select request was running
@@ -2729,48 +2721,43 @@ sal_Bool SAL_CALL OApplicationController::select( const Any& _aSelection )
if ( !( _aSelection >>= aSelectedObjects ) )
{
aSelectedObjects.realloc( 1 );
- if ( !( _aSelection >>= aSelectedObjects[0] ) )
+ if ( !( _aSelection >>= aSelectedObjects.getArray()[0] ) )
throw IllegalArgumentException();
}
SelectionByElementType aSelectedElements;
ElementType eSelectedCategory = E_NONE;
- for ( const NamedDatabaseObject* pObject = aSelectedObjects.getConstArray();
- pObject != aSelectedObjects.getConstArray() + aSelectedObjects.getLength();
- ++pObject
- )
+ for (sal_Int32 i = 0; i < aSelectedObjects.getLength(); ++i)
{
- switch ( pObject->Type )
+ switch (aSelectedObjects[i].Type)
{
case DatabaseObject::TABLE:
case DatabaseObjectContainer::SCHEMA:
case DatabaseObjectContainer::CATALOG:
- aSelectedElements[ E_TABLE ].push_back( pObject->Name );
+ aSelectedElements[E_TABLE].push_back(aSelectedObjects[i].Name);
break;
case DatabaseObject::QUERY:
- aSelectedElements[ E_QUERY ].push_back( pObject->Name );
+ aSelectedElements[E_QUERY].push_back(aSelectedObjects[i].Name);
break;
case DatabaseObject::FORM:
case DatabaseObjectContainer::FORMS_FOLDER:
- aSelectedElements[ E_FORM ].push_back( pObject->Name );
+ aSelectedElements[E_FORM].push_back(aSelectedObjects[i].Name);
break;
case DatabaseObject::REPORT:
case DatabaseObjectContainer::REPORTS_FOLDER:
- aSelectedElements[ E_REPORT ].push_back( pObject->Name );
+ aSelectedElements[E_REPORT].push_back(aSelectedObjects[i].Name);
break;
case DatabaseObjectContainer::TABLES:
case DatabaseObjectContainer::QUERIES:
case DatabaseObjectContainer::FORMS:
case DatabaseObjectContainer::REPORTS:
if ( eSelectedCategory != E_NONE )
- throw IllegalArgumentException(
- DBA_RES(RID_STR_NO_DIFF_CAT),
- *this, sal_Int16( pObject - aSelectedObjects.getConstArray() ) );
+ throw IllegalArgumentException(DBA_RES(RID_STR_NO_DIFF_CAT), *this, i);
eSelectedCategory =
- ( pObject->Type == DatabaseObjectContainer::TABLES ) ? E_TABLE
- : ( pObject->Type == DatabaseObjectContainer::QUERIES ) ? E_QUERY
- : ( pObject->Type == DatabaseObjectContainer::FORMS ) ? E_FORM
- : ( pObject->Type == DatabaseObjectContainer::REPORTS ) ? E_REPORT
+ ( aSelectedObjects[i].Type == DatabaseObjectContainer::TABLES ) ? E_TABLE
+ : ( aSelectedObjects[i].Type == DatabaseObjectContainer::QUERIES ) ? E_QUERY
+ : ( aSelectedObjects[i].Type == DatabaseObjectContainer::FORMS ) ? E_FORM
+ : ( aSelectedObjects[i].Type == DatabaseObjectContainer::REPORTS ) ? E_REPORT
: E_NONE;
break;
@@ -2779,8 +2766,8 @@ sal_Bool SAL_CALL OApplicationController::select( const Any& _aSelection )
{
OUString sMessage(
DBA_RES(RID_STR_UNSUPPORTED_OBJECT_TYPE).
- replaceFirst("$type$", OUString::number(pObject->Type)));
- throw IllegalArgumentException(sMessage, *this, sal_Int16( pObject - aSelectedObjects.getConstArray() ));
+ replaceFirst("$type$", OUString::number(aSelectedObjects[i].Type)));
+ throw IllegalArgumentException(sMessage, *this, i);
}
}
}
@@ -2816,20 +2803,21 @@ Any SAL_CALL OApplicationController::getSelection( )
{ // if no objects are selected, add an entry to the sequence which describes the overall category
// which is selected currently
aCurrentSelection.realloc(1);
- aCurrentSelection[0].Name = getDatabaseName();
+ auto pCurrentSelection = aCurrentSelection.getArray();
+ pCurrentSelection[0].Name = getDatabaseName();
switch ( eType )
{
- case E_TABLE: aCurrentSelection[0].Type = DatabaseObjectContainer::TABLES; break;
- case E_QUERY: aCurrentSelection[0].Type = DatabaseObjectContainer::QUERIES; break;
- case E_FORM: aCurrentSelection[0].Type = DatabaseObjectContainer::FORMS; break;
- case E_REPORT: aCurrentSelection[0].Type = DatabaseObjectContainer::REPORTS; break;
+ case E_TABLE: pCurrentSelection[0].Type = DatabaseObjectContainer::TABLES; break;
+ case E_QUERY: pCurrentSelection[0].Type = DatabaseObjectContainer::QUERIES; break;
+ case E_FORM: pCurrentSelection[0].Type = DatabaseObjectContainer::FORMS; break;
+ case E_REPORT: pCurrentSelection[0].Type = DatabaseObjectContainer::REPORTS; break;
default:
OSL_FAIL( "OApplicationController::getSelection: unexpected current element type!" );
break;
}
}
}
- return makeAny( aCurrentSelection );
+ return Any( aCurrentSelection );
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/app/AppController.hxx b/dbaccess/source/ui/app/AppController.hxx
index cf9306cdb3a2..66c2f67c79e5 100644
--- a/dbaccess/source/ui/app/AppController.hxx
+++ b/dbaccess/source/ui/app/AppController.hxx
@@ -41,7 +41,6 @@
#include <memory>
-class TransferableHelper;
class TransferableClipboardListener;
namespace com::sun::star {
@@ -67,9 +66,7 @@ namespace weld
namespace dbaui
{
class ODataClipboard;
- class TreeListBox;
class SubComponentManager;
- class OApplicationController;
class OApplicationView;
class OLinkedDocumentsAccess;
class SelectionNotifier;
@@ -137,12 +134,6 @@ namespace dbaui
*/
OUString getDatabaseName() const;
- /** returns the stripped database name.
- @return
- The stripped database name either the registered name or if it is a file url the last segment.
- */
- OUString getStrippedDatabaseName() const;
-
/** return the element type for given container
@param _xContainer The container where the element type has to be found
@return the element type corresponding to the given container
@@ -316,7 +307,7 @@ namespace dbaui
@return
<TRUE/> if the insert operations was successful, otherwise <FALSE/>.
*/
- bool insertHierachyElement( ElementType _eType
+ bool insertHierarchyElement( ElementType _eType
,const OUString& _sParentFolder
,bool _bCollection = true
,const css::uno::Reference< css::ucb::XContent>& _xContent = css::uno::Reference< css::ucb::XContent>()
diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx b/dbaccess/source/ui/app/AppControllerDnD.cxx
index 5b6daaf7fbc0..73af7c3514cf 100644
--- a/dbaccess/source/ui/app/AppControllerDnD.cxx
+++ b/dbaccess/source/ui/app/AppControllerDnD.cxx
@@ -49,12 +49,10 @@
#include <connectivity/dbtools.hxx>
#include <dbexchange.hxx>
#include <UITools.hxx>
-#include <algorithm>
-#include <iterator>
#include <com/sun/star/sdb/XReportDocumentsSupplier.hpp>
#include <com/sun/star/sdb/XFormDocumentsSupplier.hpp>
#include <svtools/querydelete.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <defaultobjectnamecheck.hxx>
#include <osl/mutex.hxx>
@@ -76,7 +74,6 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::ucb;
-using namespace ::com::sun::star::util;
void OApplicationController::deleteTables(const std::vector< OUString>& _rList)
{
@@ -95,7 +92,7 @@ void OApplicationController::deleteTables(const std::vector< OUString>& _rList)
std::vector< OUString>::const_iterator aEnd = _rList.end();
for (std::vector< OUString>::const_iterator aIter = _rList.begin(); aIter != aEnd; ++aIter)
{
- OUString sTableName = *aIter;
+ const OUString& sTableName = *aIter;
sal_Int32 nResult = RET_YES;
if ( bConfirm )
@@ -316,7 +313,8 @@ const SharedConnection& OApplicationController::ensureConnection( ::dbtools::SQL
SolarMutexGuard aSolarGuard;
OUString sConnectingContext(DBA_RES(STR_COULDNOTCONNECT_DATASOURCE));
- sConnectingContext = sConnectingContext.replaceFirst("$name$", getStrippedDatabaseName());
+ OUString sDatabaseName;
+ sConnectingContext = sConnectingContext.replaceFirst("$name$", ::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName));
// do the connection *without* holding getMutex() to avoid deadlock
// when we are not in the main thread and we need username/password
@@ -365,7 +363,7 @@ const SharedConnection& OApplicationController::ensureConnection( ::dbtools::SQL
{
if ( _pErrorInfo )
{
- *_pErrorInfo = aError;
+ *_pErrorInfo = std::move(aError);
}
else
{
@@ -588,7 +586,7 @@ rtl::Reference<TransferableHelper> OApplicationController::copyObject()
{
rtl::Reference<ODataClipboard> xExchange(new ODataClipboard);
if (copySQLObject(*xExchange))
- return rtl::Reference<TransferableHelper>(xExchange.get());
+ return xExchange;
break;
}
case E_FORM:
@@ -596,7 +594,7 @@ rtl::Reference<TransferableHelper> OApplicationController::copyObject()
{
rtl::Reference<svx::OComponentTransferable> xExchange(new svx::OComponentTransferable);
if (copyDocObject(*xExchange))
- return rtl::Reference<TransferableHelper>(xExchange.get());
+ return xExchange;
break;
}
break;
@@ -746,11 +744,11 @@ bool OApplicationController::paste( ElementType _eType, const svx::ODataAccessDe
::comphelper::copyProperties(xQuery,xNewQuery);
else
{
- xNewQuery->setPropertyValue(PROPERTY_COMMAND,makeAny(sCommand));
- xNewQuery->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,makeAny(bEscapeProcessing));
+ xNewQuery->setPropertyValue(PROPERTY_COMMAND,Any(sCommand));
+ xNewQuery->setPropertyValue(PROPERTY_ESCAPE_PROCESSING,Any(bEscapeProcessing));
}
// insert
- xDestQueries->insertByName( sTargetName, makeAny(xNewQuery) );
+ xDestQueries->insertByName( sTargetName, Any(xNewQuery) );
xNewQuery.set(xDestQueries->getByName( sTargetName),UNO_QUERY);
if ( xQuery.is() && xNewQuery.is() )
{
@@ -766,12 +764,9 @@ bool OApplicationController::paste( ElementType _eType, const svx::ODataAccessDe
{
Reference<XPropertySet> xDstProp(xFac->createDataDescriptor());
- Sequence< OUString> aSeq = xSrcNameAccess->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for( ; pIter != pEnd ; ++pIter)
+ for (auto& name : xSrcNameAccess->getElementNames())
{
- Reference<XPropertySet> xSrcProp(xSrcNameAccess->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xSrcProp(xSrcNameAccess->getByName(name),UNO_QUERY);
::comphelper::copyProperties(xSrcProp,xDstProp);
xAppend->appendByDescriptor(xDstProp);
}
@@ -788,7 +783,7 @@ bool OApplicationController::paste( ElementType _eType, const svx::ODataAccessDe
{
Reference<XContent> xContent;
_rPasteData[DataAccessDescriptorProperty::Component] >>= xContent;
- return insertHierachyElement(_eType,_sParentFolder,Reference<XNameAccess>(xContent,UNO_QUERY).is(),xContent,_bMove);
+ return insertHierarchyElement(_eType,_sParentFolder,Reference<XNameAccess>(xContent,UNO_QUERY).is(),xContent,_bMove);
}
}
catch(const SQLException&) { showError( SQLExceptionInfo( ::cppu::getCaughtException() ) ); }
@@ -854,10 +849,10 @@ IMPL_LINK_NOARG( OApplicationController, OnAsyncDrop, void*, void )
std::vector< OUString> aList;
sal_Int32 nIndex = 0;
OUString sName = xContent->getIdentifier()->getContentIdentifier();
- OUString sErase = sName.getToken(0,'/',nIndex); // we don't want to have the "private:forms" part
+ std::u16string_view sErase = o3tl::getToken(sName,0,'/',nIndex); // we don't want to have the "private:forms" part
if ( nIndex != -1 )
{
- aList.push_back(sName.copy(sErase.getLength() + 1));
+ aList.push_back(sName.copy(sErase.size() + 1));
deleteObjects( m_aAsyncDrop.nType, aList, false );
}
}
diff --git a/dbaccess/source/ui/app/AppControllerGen.cxx b/dbaccess/source/ui/app/AppControllerGen.cxx
index 2466f22df062..ae5466655386 100644
--- a/dbaccess/source/ui/app/AppControllerGen.cxx
+++ b/dbaccess/source/ui/app/AppControllerGen.cxx
@@ -50,12 +50,12 @@
#include <sfx2/mailmodelapi.hxx>
#include <svx/dbaexchange.hxx>
#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
-#include <vcl/weld.hxx>
#include <vcl/mnemonic.hxx>
#include <vcl/svapp.hxx>
#include <vcl/syswin.hxx>
+#include <vcl/weld.hxx>
#include <osl/mutex.hxx>
namespace dbaui
@@ -102,15 +102,15 @@ void OApplicationController::convertToView(const OUString& _sName)
OSaveAsDlg aDlg(getFrameWeld(), CommandType::TABLE, getORB(), xConnection, aDefaultName, aNameChecker, SADFlags::NONE);
if (aDlg.run() == RET_OK)
{
- OUString sName = aDlg.getName();
+ const OUString& sName = aDlg.getName();
OUString sCatalog = aDlg.getCatalog();
OUString sSchema = aDlg.getSchema();
OUString sNewName(
::dbtools::composeTableName( xMeta, sCatalog, sSchema, sName, false, ::dbtools::EComposeRule::InTableDefinitions ) );
Reference<XPropertySet> xView = ::dbaui::createView(sNewName,xConnection,xSourceObject);
if ( !xView.is() )
- throw SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE),*this, "S1000",0,Any());
- getContainer()->elementAdded(E_TABLE,sNewName,makeAny(xView));
+ throw SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE),*this, u"S1000"_ustr,0,Any());
+ getContainer()->elementAdded(E_TABLE,sNewName,Any(xView));
}
}
catch(const SQLException& )
@@ -155,6 +155,7 @@ void OApplicationController::openDialog( const OUString& _sServiceName )
weld::WaitObject aWO(getFrameWeld());
Sequence< Any > aArgs(3);
+ auto pArgs = aArgs.getArray();
sal_Int32 nArgPos = 0;
Reference< css::awt::XWindow> xWindow = getTopMostContainerWindow();
@@ -165,9 +166,9 @@ void OApplicationController::openDialog( const OUString& _sServiceName )
xWindow = VCLUnoHelper::GetInterface(getView()->Window::GetParent());
}
// the parent window
- aArgs[nArgPos++] <<= PropertyValue( "ParentWindow",
+ pArgs[nArgPos++] <<= PropertyValue( u"ParentWindow"_ustr,
0,
- makeAny(xWindow),
+ Any(xWindow),
PropertyState_DIRECT_VALUE);
// the initial selection
@@ -176,15 +177,15 @@ void OApplicationController::openDialog( const OUString& _sServiceName )
sInitialSelection = getDatabaseName();
if ( !sInitialSelection.isEmpty() )
{
- aArgs[ nArgPos++ ] <<= PropertyValue(
- "InitialSelection", 0,
- makeAny( sInitialSelection ), PropertyState_DIRECT_VALUE );
+ pArgs[ nArgPos++ ] <<= PropertyValue(
+ u"InitialSelection"_ustr, 0,
+ Any( sInitialSelection ), PropertyState_DIRECT_VALUE );
}
SharedConnection xConnection( getConnection() );
if ( xConnection.is() )
{
- aArgs[ nArgPos++ ] <<= PropertyValue(
+ pArgs[ nArgPos++ ] <<= PropertyValue(
PROPERTY_ACTIVE_CONNECTION, 0,
makeAny( xConnection ), PropertyState_DIRECT_VALUE );
}
@@ -320,7 +321,8 @@ void SAL_CALL OApplicationController::connect( )
// no particular error, but nonetheless could not connect -> throw a generic exception
OUString sConnectingContext( DBA_RES( STR_COULDNOTCONNECT_DATASOURCE ) );
- ::dbtools::throwGenericSQLException( sConnectingContext.replaceFirst( "$name$", getStrippedDatabaseName() ), *this );
+ OUString sDatabaseName;
+ ::dbtools::throwGenericSQLException( sConnectingContext.replaceFirst( "$name$", ::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName) ), *this );
}
}
@@ -432,7 +434,7 @@ Reference< XComponent > SAL_CALL OApplicationController::loadComponentWithArgume
Reference< XComponent > xComponent( openElementWithArguments(
ObjectName,
lcl_objectType2ElementType( ObjectType ),
- ForEditing ? E_OPEN_DESIGN : E_OPEN_NORMAL,
+ ForEditing ? ElementOpenMode::Design : ElementOpenMode::Normal,
ForEditing ? SID_DB_APP_EDIT : SID_DB_APP_OPEN,
::comphelper::NamedValueCollection( Arguments )
) );
@@ -482,11 +484,11 @@ void OApplicationController::previewChanged( sal_Int32 _nMode )
try
{
::comphelper::NamedValueCollection aLayoutInfo( m_xDataSource->getPropertyValue( PROPERTY_LAYOUTINFORMATION ) );
- sal_Int32 nOldMode = aLayoutInfo.getOrDefault( "Preview", _nMode );
+ sal_Int32 nOldMode = aLayoutInfo.getOrDefault( u"Preview"_ustr, _nMode );
if ( nOldMode != _nMode )
{
- aLayoutInfo.put( "Preview", _nMode );
- m_xDataSource->setPropertyValue( PROPERTY_LAYOUTINFORMATION, makeAny( aLayoutInfo.getPropertyValues() ) );
+ aLayoutInfo.put( u"Preview"_ustr, _nMode );
+ m_xDataSource->setPropertyValue( PROPERTY_LAYOUTINFORMATION, Any( aLayoutInfo.getPropertyValues() ) );
}
}
catch ( const Exception& )
@@ -549,12 +551,6 @@ OUString OApplicationController::getDatabaseName() const
return sDatabaseName;
}
-OUString OApplicationController::getStrippedDatabaseName() const
-{
- OUString sDatabaseName;
- return ::dbaui::getStrippedDatabaseName( m_xDataSource, sDatabaseName );
-}
-
void OApplicationController::onDocumentOpened( const OUString& _rName, const sal_Int32 _nType,
const ElementOpenMode _eMode, const Reference< XComponent >& _xDocument, const Reference< XComponent >& _rxDefinition )
{
@@ -579,10 +575,10 @@ void OApplicationController::onDocumentOpened( const OUString& _rName, const sal
}
}
-bool OApplicationController::insertHierachyElement(ElementType _eType, const OUString& _sParentFolder, bool _bCollection, const Reference<XContent>& _xContent, bool _bMove)
+bool OApplicationController::insertHierarchyElement(ElementType _eType, const OUString& _sParentFolder, bool _bCollection, const Reference<XContent>& _xContent, bool _bMove)
{
Reference<XHierarchicalNameContainer> xNames(getElements(_eType), UNO_QUERY);
- return dbaui::insertHierachyElement(getFrameWeld()
+ return dbaui::insertHierarchyElement(getFrameWeld()
,getORB()
,xNames
,_sParentFolder
@@ -638,7 +634,7 @@ void OApplicationController::onLoadedMenu(const Reference< css::frame::XLayoutMa
if ( !_xLayoutManager.is() )
return;
- static const char s_sStatusbar[] = "private:resource/statusbar/statusbar";
+ static constexpr OUString s_sStatusbar = u"private:resource/statusbar/statusbar"_ustr;
_xLayoutManager->createElement( s_sStatusbar );
_xLayoutManager->requestElement( s_sStatusbar );
@@ -647,14 +643,8 @@ void OApplicationController::onLoadedMenu(const Reference< css::frame::XLayoutMa
// we need to share the "mnemonic space":
MnemonicGenerator aMnemonicGenerator;
// - the menu already has mnemonics
- SystemWindow* pSystemWindow = getContainer()->GetSystemWindow();
- MenuBar* pMenu = pSystemWindow ? pSystemWindow->GetMenuBar() : nullptr;
- if ( pMenu )
- {
- sal_uInt16 nMenuItems = pMenu->GetItemCount();
- for ( sal_uInt16 i = 0; i < nMenuItems; ++i )
- aMnemonicGenerator.RegisterMnemonic( pMenu->GetItemText( pMenu->GetItemId( i ) ) );
- }
+ if (SystemWindow* pSystemWindow = getContainer()->GetSystemWindow())
+ pSystemWindow->CollectMenuBarMnemonics(aMnemonicGenerator);
// - the icons should use automatic ones
getContainer()->createIconAutoMnemonics( aMnemonicGenerator );
// - as well as the entries in the task pane
@@ -672,10 +662,10 @@ void OApplicationController::doAction(sal_uInt16 _nId, const ElementOpenMode _eO
ElementType eType = getContainer()->getElementType();
::comphelper::NamedValueCollection aArguments;
ElementOpenMode eOpenMode = _eOpenMode;
- if ( eType == E_REPORT && E_OPEN_FOR_MAIL == _eOpenMode )
+ if ( eType == E_REPORT && ElementOpenMode::Mail == _eOpenMode )
{
- aArguments.put("Hidden",true);
- eOpenMode = E_OPEN_NORMAL;
+ aArguments.put(u"Hidden"_ustr,true);
+ eOpenMode = ElementOpenMode::Normal;
}
std::vector< std::pair< OUString ,Reference< XModel > > > aComponents;
@@ -691,7 +681,7 @@ void OApplicationController::doAction(sal_uInt16 _nId, const ElementOpenMode _eO
}
// special handling for mail, if more than one document is selected attach them all
- if ( _eOpenMode != E_OPEN_FOR_MAIL )
+ if ( _eOpenMode != ElementOpenMode::Mail )
return;
diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
index d65d5bcbc7a3..8e6165b53989 100644
--- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx
+++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
@@ -18,7 +18,7 @@
*/
#include "AppDetailPageHelper.hxx"
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tabletree.hxx>
#include <dbtreelistbox.hxx>
#include <com/sun/star/awt/XTabController.hpp>
@@ -31,6 +31,7 @@
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <com/sun/star/frame/XFrames.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
+#include <com/sun/star/frame/XPopupMenuController.hpp>
#include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
#include <com/sun/star/sdb/application/DatabaseObject.hpp>
#include <com/sun/star/sdb/application/DatabaseObjectContainer.hpp>
@@ -41,7 +42,7 @@
#include <com/sun/star/util/XCloseable.hpp>
#include <comphelper/propertyvalue.hxx>
#include <comphelper/string.hxx>
-#include <toolkit/helper/vclunohelper.hxx>
+#include <o3tl/string_view.hxx>
#include "AppView.hxx"
#include <helpids.h>
#include <strings.hxx>
@@ -49,12 +50,9 @@
#include <databaseobjectview.hxx>
#include <imageprovider.hxx>
#include <vcl/commandinfoprovider.hxx>
-#include <vcl/settings.hxx>
#include <vcl/cvtgrf.hxx>
-#include <vcl/event.hxx>
-#include <toolkit/awt/vclxmenu.hxx>
#include <tools/stream.hxx>
-#include <rtl/ustrbuf.hxx>
+#include <toolkit/awt/vclxmenu.hxx>
#include "AppController.hxx"
#include <com/sun/star/document/XDocumentProperties.hpp>
@@ -82,11 +80,11 @@ namespace dbaui
namespace
{
- bool lcl_findEntry_impl(const TreeListBox& rTree, const OUString& rName, weld::TreeIter& rIter)
+ bool lcl_findEntry_impl(const TreeListBox& rTree, std::u16string_view rName, weld::TreeIter& rIter)
{
bool bReturn = false;
sal_Int32 nIndex = 0;
- OUString sName( rName.getToken(0,'/',nIndex) );
+ std::u16string_view sName( o3tl::getToken(rName,0,'/',nIndex) );
const weld::TreeView& rTreeView = rTree.GetWidget();
bool bEntry = true;
@@ -96,7 +94,7 @@ namespace
{
if ( nIndex != -1 )
{
- sName = rName.getToken(0,'/',nIndex);
+ sName = o3tl::getToken(rName,0,'/',nIndex);
bEntry = rTreeView.iter_children(rIter);
}
else
@@ -113,31 +111,31 @@ namespace
return bReturn;
}
- bool lcl_findEntry(const TreeListBox& rTree, const OUString& rName, weld::TreeIter& rIter)
+ bool lcl_findEntry(const TreeListBox& rTree, std::u16string_view rName, weld::TreeIter& rIter)
{
sal_Int32 nIndex = 0;
- OUString sErase = rName.getToken(0,'/',nIndex); // we don't want to have the "private:forms" part
- return nIndex != -1 && lcl_findEntry_impl(rTree, rName.copy(sErase.getLength() + 1), rIter);
+ std::u16string_view sErase = o3tl::getToken(rName,0,'/',nIndex); // we don't want to have the "private:forms" part
+ return nIndex != -1 && lcl_findEntry_impl(rTree, rName.substr(sErase.size() + 1), rIter);
}
}
OAppDetailPageHelper::OAppDetailPageHelper(weld::Container* pParent, OAppBorderWindow& rBorderWin, PreviewMode ePreviewMode)
- : OChildWindow(pParent, "dbaccess/ui/detailwindow.ui", "DetailWindow")
+ : OChildWindow(pParent, u"dbaccess/ui/detailwindow.ui"_ustr, u"DetailWindow"_ustr)
, m_rBorderWin(rBorderWin)
- , m_xBox(m_xBuilder->weld_container("box"))
- , m_xFL(m_xBuilder->weld_widget("separator"))
- , m_xMBPreview(m_xBuilder->weld_menu_button("disablepreview"))
+ , m_xBox(m_xBuilder->weld_container(u"box"_ustr))
+ , m_xFL(m_xBuilder->weld_widget(u"separator"_ustr))
+ , m_xMBPreview(m_xBuilder->weld_menu_button(u"disablepreview"_ustr))
, m_xPreview(new OPreviewWindow)
- , m_xPreviewWin(new weld::CustomWeld(*m_xBuilder, "preview", *m_xPreview))
+ , m_xPreviewWin(new weld::CustomWeld(*m_xBuilder, u"preview"_ustr, *m_xPreview))
, m_xDocumentInfo(new ODocumentInfoPreview)
- , m_xDocumentInfoWin(new weld::CustomWeld(*m_xBuilder, "infopreview", *m_xDocumentInfo))
- , m_xTablePreview(m_xBuilder->weld_container("tablepreview"))
+ , m_xDocumentInfoWin(new weld::CustomWeld(*m_xBuilder, u"infopreview"_ustr, *m_xDocumentInfo))
+ , m_xTablePreview(m_xBuilder->weld_container(u"tablepreview"_ustr))
, m_ePreviewMode(ePreviewMode)
{
m_xContainer->set_stack_background();
- auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(".uno:DBDisablePreview",
- "com.sun.star.sdb.OfficeDatabaseDocument");
+ auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(u".uno:DBDisablePreview"_ustr,
+ u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr);
m_xMBPreview->set_label(vcl::CommandInfoProvider::GetLabelForCommand(aProperties));
m_xMBPreview->set_help_id(HID_APP_VIEW_PREVIEW_CB);
@@ -163,7 +161,7 @@ OAppDetailPageHelper::~OAppDetailPageHelper()
}
catch(const Exception&)
{
- OSL_FAIL("Exception thrown while disposing preview frame!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "Exception thrown while disposing preview frame!");
}
for (auto& rpBox : m_aLists)
@@ -336,12 +334,7 @@ void OAppDetailPageHelper::describeCurrentSelectionForType(const ElementType eTy
bool bParent = rTreeView.iter_parent(*xParent);
while (bParent)
{
- OUStringBuffer buffer;
- buffer.append(rTreeView.get_text(*xParent));
- buffer.append('/');
- buffer.append(sName);
- sName = buffer.makeStringAndClear();
-
+ sName = rTreeView.get_text(*xParent) + "/" + sName;
bParent = rTreeView.iter_parent(*xParent);
}
@@ -390,11 +383,9 @@ void OAppDetailPageHelper::selectElements(const Sequence< OUString>& _aNames)
DBTreeViewBase& rTree = *m_aLists[nPos];
weld::TreeView& rTreeView = rTree.GetWidget();
rTreeView.unselect_all();
- const OUString* pIter = _aNames.getConstArray();
- const OUString* pEnd = pIter + _aNames.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& name : _aNames)
{
- auto xEntry = rTree.getListBox().GetEntryPosByName(*pIter);
+ auto xEntry = rTree.getListBox().GetEntryPosByName(name);
if (!xEntry)
continue;
rTreeView.select(*xEntry);
@@ -560,7 +551,7 @@ void OAppDetailPageHelper::createPage(ElementType _eType,const Reference< XNameA
{
OSL_ENSURE(E_TABLE != _eType,"E_TABLE isn't allowed.");
- OString sHelpId;
+ OUString sHelpId;
switch( _eType )
{
case E_FORM:
@@ -582,19 +573,19 @@ void OAppDetailPageHelper::createPage(ElementType _eType,const Reference< XNameA
m_aLists[_eType] = createSimpleTree(sHelpId, _eType);
}
- if ( m_aLists[_eType] )
+ if ( !m_aLists[_eType] )
+ return;
+
+ weld::TreeView& rTreeView = m_aLists[_eType]->GetWidget();
+ if (!rTreeView.n_children() && _xContainer.is())
{
- weld::TreeView& rTreeView = m_aLists[_eType]->GetWidget();
- if (!rTreeView.n_children() && _xContainer.is())
- {
- rTreeView.make_unsorted();
- fillNames( _xContainer, _eType, sImageId, nullptr );
- rTreeView.make_sorted();
+ rTreeView.make_unsorted();
+ fillNames( _xContainer, _eType, sImageId, nullptr );
+ rTreeView.make_sorted();
- rTreeView.unselect_all();
- }
- setDetailPage(*m_aLists[_eType]);
+ rTreeView.unselect_all();
}
+ setDetailPage(*m_aLists[_eType]);
}
void OAppDetailPageHelper::setDetailPage(DBTreeViewBase& rTreeView)
@@ -651,18 +642,15 @@ void OAppDetailPageHelper::fillNames( const Reference< XNameAccess >& _xContaine
std::unique_ptr<weld::TreeIter> xRet = rTreeView.make_iterator();
const sal_Int32 nFolderIndicator = lcl_getFolderIndicatorForType( _eType );
- Sequence< OUString> aSeq = _xContainer->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& name : _xContainer->getElementNames())
{
- Reference<XNameAccess> xSubElements(_xContainer->getByName(*pIter),UNO_QUERY);
+ Reference<XNameAccess> xSubElements(_xContainer->getByName(name), UNO_QUERY);
if ( xSubElements.is() )
{
OUString sId(OUString::number(nFolderIndicator));
rTreeView.insert(_pParent, -1, nullptr, &sId, nullptr, nullptr, false, xRet.get());
- rTreeView.set_text(*xRet, *pIter, 0);
+ rTreeView.set_text(*xRet, name, 0);
rTreeView.set_text_emphasis(*xRet, false, 0);
getBorderWin().getView()->getAppController().containerFound( Reference< XContainer >( xSubElements, UNO_QUERY ) );
fillNames( xSubElements, _eType, rImageId, xRet.get());
@@ -670,16 +658,17 @@ void OAppDetailPageHelper::fillNames( const Reference< XNameAccess >& _xContaine
else
{
rTreeView.insert(_pParent, -1, nullptr, nullptr, nullptr, nullptr, false, xRet.get());
- rTreeView.set_text(*xRet, *pIter, 0);
+ rTreeView.set_text(*xRet, name, 0);
rTreeView.set_text_emphasis(*xRet, false, 0);
rTreeView.set_image(*xRet, rImageId);
}
}
}
-std::unique_ptr<DBTreeViewBase> OAppDetailPageHelper::createSimpleTree(const OString& rHelpId, ElementType eType)
+std::unique_ptr<DBTreeViewBase> OAppDetailPageHelper::createSimpleTree(const OUString& rHelpId, ElementType eType)
{
- std::unique_ptr<DBTreeViewBase> xTreeView(new DBTreeView(m_xBox.get(), eType));
+ const bool bSQLType = eType == E_TABLE || eType == E_QUERY;
+ std::unique_ptr<DBTreeViewBase> xTreeView(new DBTreeView(m_xBox.get(), bSQLType));
xTreeView->GetWidget().set_help_id(rHelpId);
setupTree(*xTreeView);
return xTreeView;
@@ -767,14 +756,16 @@ void OAppDetailPageHelper::elementReplaced(ElementType eType,
std::unique_ptr<weld::TreeIter> OAppDetailPageHelper::elementAdded(ElementType _eType,const OUString& _rName, const Any& _rObject )
{
std::unique_ptr<weld::TreeIter> xRet;
- DBTreeViewBase* pTreeView = m_aLists[_eType].get();
+ DBTreeViewBase* pTreeView = _eType != E_NONE ? m_aLists[_eType].get() : nullptr;
+ if (!pTreeView)
+ return xRet;
weld::TreeView& rTreeView = pTreeView->GetWidget();
rTreeView.make_unsorted();
- if( _eType == E_TABLE && pTreeView )
+ if (_eType == E_TABLE)
{
xRet = static_cast<OTableTreeListBox&>(pTreeView->getListBox()).addedTable( _rName );
}
- else if ( pTreeView )
+ else
{
std::unique_ptr<weld::TreeIter> xEntry;
Reference<XChild> xChild(_rObject,UNO_QUERY);
@@ -879,14 +870,14 @@ IMPL_LINK_NOARG( OAppDetailPageHelper, OnDeleteEntry, LinkParamNone*, void )
bool OAppDetailPageHelper::isPreviewEnabled() const
{
- return m_ePreviewMode != E_PREVIEWNONE;
+ return m_ePreviewMode != PreviewMode::NONE;
}
namespace
{
- OUString stripTrailingDots(const OUString& rStr)
+ OUString stripTrailingDots(std::u16string_view rStr)
{
- return comphelper::string::stripEnd(rStr, '.');
+ return OUString(comphelper::string::stripEnd(rStr, '.'));
}
}
@@ -902,24 +893,24 @@ void OAppDetailPageHelper::switchPreview(PreviewMode _eMode,bool _bForce)
OUString aCommand;
switch ( m_ePreviewMode )
{
- case E_PREVIEWNONE:
+ case PreviewMode::NONE:
aCommand = ".uno:DBDisablePreview";
break;
- case E_DOCUMENT:
+ case PreviewMode::Document:
aCommand = ".uno:DBShowDocPreview";
break;
- case E_DOCUMENTINFO:
+ case PreviewMode::DocumentInfo:
if ( getBorderWin().getView()->getAppController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW) )
aCommand = ".uno:DBShowDocInfoPreview";
else
{
- m_ePreviewMode = E_PREVIEWNONE;
+ m_ePreviewMode = PreviewMode::NONE;
aCommand = ".uno:DBDisablePreview";
}
break;
}
- auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(aCommand, "com.sun.star.sdb.OfficeDatabaseDocument");
+ auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(aCommand, u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr);
OUString aCommandLabel = vcl::CommandInfoProvider::GetLabelForCommand(aProperties);
m_xMBPreview->set_label(stripTrailingDots(aCommandLabel));
@@ -954,13 +945,13 @@ void OAppDetailPageHelper::showPreview(const Reference< XContent >& _xContent)
if ( xContent.is() )
{
css::ucb::Command aCommand;
- if ( m_ePreviewMode == E_DOCUMENT )
+ if ( m_ePreviewMode == PreviewMode::Document )
aCommand.Name = "preview";
else
aCommand.Name = "getDocumentInfo";
Any aPreview = xContent->execute(aCommand,xContent->createCommandIdentifier(),Reference< XCommandEnvironment >());
- if ( m_ePreviewMode == E_DOCUMENT )
+ if ( m_ePreviewMode == PreviewMode::Document )
{
m_xDocumentInfo->Hide();
m_xPreview->Show();
@@ -1044,12 +1035,12 @@ void OAppDetailPageHelper::showPreview( const OUString& _sDataSourceName,
pDispatcher->setTargetFrame( Reference<XFrame>(m_xFrame,UNO_QUERY_THROW) );
::comphelper::NamedValueCollection aArgs;
- aArgs.put( "Preview", true );
- aArgs.put( "ReadOnly", true );
- aArgs.put( "AsTemplate", false );
- aArgs.put( OUString(PROPERTY_SHOWMENU), false );
+ aArgs.put( u"Preview"_ustr, true );
+ aArgs.put( u"ReadOnly"_ustr, true );
+ aArgs.put( u"AsTemplate"_ustr, false );
+ aArgs.put( PROPERTY_SHOWMENU, false );
- Reference< XController > xPreview( pDispatcher->openExisting( makeAny( _sDataSourceName ), _sName, aArgs ), UNO_QUERY );
+ Reference< XController > xPreview( pDispatcher->openExisting( Any( _sDataSourceName ), _sName, aArgs ), UNO_QUERY );
bool bClearPreview = !xPreview.is();
// clear the preview when the query or table could not be loaded
@@ -1083,7 +1074,7 @@ namespace
if (!rEvent.IsEnabled)
{
const OUString &rURL = rEvent.FeatureURL.Complete;
- m_rMBPreview.remove_item(rURL.toUtf8());
+ m_rMBPreview.remove_item(rURL);
}
}
@@ -1093,7 +1084,7 @@ namespace
};
};
-IMPL_LINK_NOARG(OAppDetailPageHelper, OnDropdownClickHdl, weld::ToggleButton&, void)
+IMPL_LINK_NOARG(OAppDetailPageHelper, OnDropdownClickHdl, weld::Toggleable&, void)
{
if (!m_xMBPreview->get_active())
return;
@@ -1109,18 +1100,18 @@ IMPL_LINK_NOARG(OAppDetailPageHelper, OnDropdownClickHdl, weld::ToggleButton&, v
auto xFrame = getBorderWin().getView()->getAppController().getFrame();
css::uno::Sequence<css::uno::Any> aArgs {
- css::uno::makeAny(comphelper::makePropertyValue("InToolbar", true)),
- css::uno::makeAny(comphelper::makePropertyValue("ModuleIdentifier", OUString("com.sun.star.sdb.OfficeDatabaseDocument"))),
- css::uno::makeAny(comphelper::makePropertyValue("Frame", xFrame)) };
+ css::uno::Any(comphelper::makePropertyValue(u"InToolbar"_ustr, true)),
+ css::uno::Any(comphelper::makePropertyValue(u"ModuleIdentifier"_ustr, u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr)),
+ css::uno::Any(comphelper::makePropertyValue(u"Frame"_ustr, xFrame)) };
css::uno::Reference<css::frame::XPopupMenuController> xPopupController
- (xPopupMenuFactory->createInstanceWithArgumentsAndContext(".uno:DBPreview", aArgs, xContext), css::uno::UNO_QUERY);
+ (xPopupMenuFactory->createInstanceWithArgumentsAndContext(u".uno:DBPreview"_ustr, aArgs, xContext), css::uno::UNO_QUERY);
if (!xPopupController.is())
return;
- rtl::Reference xPopupMenu(new VCLXPopupMenu);
- xPopupController->setPopupMenu(xPopupMenu.get());
+ rtl::Reference<VCLXPopupMenu> xPopupMenu(new VCLXPopupMenu());
+ xPopupController->setPopupMenu(xPopupMenu);
css::util::URL aTargetURL;
Reference<XDispatchProvider> xDispatchProvider(xFrame, css::uno::UNO_QUERY);
@@ -1138,11 +1129,11 @@ IMPL_LINK_NOARG(OAppDetailPageHelper, OnDropdownClickHdl, weld::ToggleButton&, v
aTargetURL.Complete = xPopupMenu->getCommand(nItemId);
auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(aTargetURL.Complete,
- "com.sun.star.sdb.OfficeDatabaseDocument");
+ u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr);
m_xMBPreview->append_item(aTargetURL.Complete, vcl::CommandInfoProvider::GetLabelForCommand(aProperties));
// Add/remove status listener to get a status update once so we can remove any disabled items from the menu
- auto xDispatch = xDispatchProvider->queryDispatch(aTargetURL, "_self",
+ auto xDispatch = xDispatchProvider->queryDispatch(aTargetURL, u"_self"_ustr,
css::frame::FrameSearchFlag::SELF);
if (xDispatch.is())
{
@@ -1156,16 +1147,16 @@ IMPL_LINK_NOARG(OAppDetailPageHelper, OnDropdownClickHdl, weld::ToggleButton&, v
xComponent->dispose();
}
-IMPL_LINK(OAppDetailPageHelper, MenuSelectHdl, const OString&, rIdent, void)
+IMPL_LINK(OAppDetailPageHelper, MenuSelectHdl, const OUString&, rIdent, void)
{
if (rIdent.isEmpty())
return;
css::util::URL aURL;
- aURL.Complete = OUString::fromUtf8(rIdent);
+ aURL.Complete = rIdent;
Reference<XDispatchProvider> xProvider(getBorderWin().getView()->getAppController().getFrame(), UNO_QUERY);
- Reference<XDispatch> xDisp = xProvider->queryDispatch(aURL, "_self", 0);
+ Reference<XDispatch> xDisp = xProvider->queryDispatch(aURL, u"_self"_ustr, 0);
xDisp->dispatch(aURL, css::uno::Sequence<css::beans::PropertyValue>());
m_xMBPreview->set_label(stripTrailingDots(m_xMBPreview->get_item_label(rIdent)));
@@ -1216,9 +1207,9 @@ void OPreviewWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rect
const Size aSize(m_aPreviewRect.GetSize());
if (m_aGraphicObj.IsAnimated())
- m_aGraphicObj.StartAnimation(&rRenderContext, aPos, aSize);
+ m_aGraphicObj.StartAnimation(rRenderContext, aPos, aSize);
else
- m_aGraphicObj.Draw(&rRenderContext, aPos, aSize);
+ m_aGraphicObj.Draw(rRenderContext, aPos, aSize);
}
}
diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.hxx b/dbaccess/source/ui/app/AppDetailPageHelper.hxx
index 03107f5ecf8b..066ff0c32472 100644
--- a/dbaccess/source/ui/app/AppDetailPageHelper.hxx
+++ b/dbaccess/source/ui/app/AppDetailPageHelper.hxx
@@ -25,7 +25,6 @@
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/ucb/XContent.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
-#include <sfx2/weldutils.hxx>
#include <vcl/graph.hxx>
#include <vcl/GraphicObject.hxx>
#include <vcl/customweld.hxx>
@@ -36,16 +35,12 @@
namespace com::sun::star::awt { class XWindow; }
namespace com::sun::star::frame { class XFrame2; }
-namespace com::sun::star::io { class XPersist; }
-
-#define ELEMENT_COUNT size_t(E_ELEMENT_TYPE_COUNT)
namespace dbaui
{
class OAppBorderWindow;
class ODocumentInfoPreview;
class DBTreeViewBase;
- class TreeListBox;
class OPreviewWindow final : public weld::CustomWidgetController
{
@@ -77,7 +72,7 @@ namespace dbaui
// Combines general functionality.
class OAppDetailPageHelper final : public OChildWindow
{
- std::unique_ptr<DBTreeViewBase> m_aLists[ELEMENT_COUNT];
+ std::unique_ptr<DBTreeViewBase> m_aLists[size_t(E_ELEMENT_TYPE_COUNT)];
OAppBorderWindow& m_rBorderWin;
std::unique_ptr<weld::Container> m_xBox;
std::unique_ptr<weld::Widget> m_xFL;
@@ -147,7 +142,7 @@ namespace dbaui
@return
The new tree.
*/
- std::unique_ptr<DBTreeViewBase> createSimpleTree(const OString& rHelpId, ElementType eType);
+ std::unique_ptr<DBTreeViewBase> createSimpleTree(const OUString& rHelpId, ElementType eType);
DECL_LINK( OnEntryDoubleClick, weld::TreeView&, bool );
DECL_LINK( OnEntrySelChange, LinkParamNone*, void );
@@ -156,8 +151,8 @@ namespace dbaui
DECL_LINK( OnPasteEntry, LinkParamNone*, void );
DECL_LINK( OnDeleteEntry, LinkParamNone*, void );
- DECL_LINK(OnDropdownClickHdl, weld::ToggleButton&, void);
- DECL_LINK(MenuSelectHdl, const OString&, void);
+ DECL_LINK(OnDropdownClickHdl, weld::Toggleable&, void);
+ DECL_LINK(MenuSelectHdl, const OUString&, void);
OAppBorderWindow& getBorderWin() const { return m_rBorderWin; }
diff --git a/dbaccess/source/ui/app/AppDetailView.cxx b/dbaccess/source/ui/app/AppDetailView.cxx
index 57a4f3038448..68b47ae89539 100644
--- a/dbaccess/source/ui/app/AppDetailView.cxx
+++ b/dbaccess/source/ui/app/AppDetailView.cxx
@@ -30,20 +30,16 @@
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/util/URL.hpp>
#include <core_resource.hxx>
-#include <vcl/event.hxx>
#include <vcl/svapp.hxx>
#include "AppDetailPageHelper.hxx"
#include <dbaccess/IController.hxx>
#include <algorithm>
#include <dbtreelistbox.hxx>
-#include <imageprovider.hxx>
#include "AppController.hxx"
using namespace ::dbaui;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::graphic;
using namespace ::com::sun::star::ui;
@@ -52,8 +48,8 @@ using namespace ::com::sun::star::beans;
using ::com::sun::star::util::URL;
using ::com::sun::star::sdb::application::NamedDatabaseObject;
-TaskEntry::TaskEntry( const char* _pAsciiUNOCommand, const char* _pHelpID, const char* pTitleResourceID, bool _bHideWhenDisabled )
- :sUNOCommand( OUString::createFromAscii( _pAsciiUNOCommand ) )
+TaskEntry::TaskEntry( const OUString& _rAsciiUNOCommand, TranslateId _pHelpID, TranslateId pTitleResourceID, bool _bHideWhenDisabled )
+ :sUNOCommand( _rAsciiUNOCommand )
,pHelpID( _pHelpID )
,sTitle( DBA_RES(pTitleResourceID) )
,bHideWhenDisabled( _bHideWhenDisabled )
@@ -62,21 +58,22 @@ TaskEntry::TaskEntry( const char* _pAsciiUNOCommand, const char* _pHelpID, const
void OTasksWindow::updateHelpText()
{
- const char* pHelpTextId = nullptr;
+ TranslateId pHelpTextId;
int nCurEntry = m_xTreeView->get_selected_index();
if (nCurEntry != -1)
- pHelpTextId = reinterpret_cast<TaskEntry*>(m_xTreeView->get_id(nCurEntry).toUInt64())->pHelpID;
+ pHelpTextId = weld::fromId<TaskEntry*>(m_xTreeView->get_id(nCurEntry))->pHelpID;
setHelpText(pHelpTextId);
}
IMPL_LINK(OTasksWindow, onSelected, weld::TreeView&, rTreeView, bool)
{
m_nCursorIndex = rTreeView.get_cursor_index();
- assert(m_nCursorIndex != -1 && "OTasksWindow::onSelected: invalid entry!");
- URL aCommand;
- aCommand.Complete = reinterpret_cast<TaskEntry*>(rTreeView.get_id(m_nCursorIndex).toUInt64())->sUNOCommand;
- getDetailView()->getBorderWin().getView()->getAppController().executeChecked( aCommand, Sequence< PropertyValue >() );
-
+ if (m_nCursorIndex != -1)
+ {
+ URL aCommand;
+ aCommand.Complete = weld::fromId<TaskEntry*>(rTreeView.get_id(m_nCursorIndex))->sUNOCommand;
+ getDetailView()->getBorderWin().getView()->getAppController().executeChecked( aCommand, Sequence< PropertyValue >() );
+ }
return true;
}
@@ -85,7 +82,6 @@ void OTasksWindow::GrabFocus()
if (!m_xTreeView)
return;
m_xTreeView->grab_focus();
- FocusInHdl(*m_xTreeView);
}
bool OTasksWindow::HasChildPathFocus() const
@@ -111,10 +107,10 @@ IMPL_LINK_NOARG(OTasksWindow, OnEntrySelectHdl, weld::TreeView&, void)
}
OTasksWindow::OTasksWindow(weld::Container* pParent, OApplicationDetailView* pDetailView)
- : OChildWindow(pParent, "dbaccess/ui/taskwindow.ui", "TaskWindow")
- , m_xTreeView(m_xBuilder->weld_tree_view("treeview"))
- , m_xDescription(m_xBuilder->weld_label("description"))
- , m_xHelpText(m_xBuilder->weld_text_view("helptext"))
+ : OChildWindow(pParent, u"dbaccess/ui/taskwindow.ui"_ustr, u"TaskWindow"_ustr)
+ , m_xTreeView(m_xBuilder->weld_tree_view(u"treeview"_ustr))
+ , m_xDescription(m_xBuilder->weld_label(u"description"_ustr))
+ , m_xHelpText(m_xBuilder->weld_text_view(u"helptext"_ustr))
, m_pDetailView(pDetailView)
, m_nCursorIndex(-1)
{
@@ -122,7 +118,7 @@ OTasksWindow::OTasksWindow(weld::Container* pParent, OApplicationDetailView* pDe
m_xTreeView->set_help_id(HID_APP_CREATION_LIST);
m_xTreeView->connect_row_activated(LINK(this, OTasksWindow, onSelected));
- m_xTreeView->connect_changed(LINK(this, OTasksWindow, OnEntrySelectHdl));
+ m_xTreeView->connect_selection_changed(LINK(this, OTasksWindow, OnEntrySelectHdl));
m_xTreeView->connect_focus_in(LINK(this, OTasksWindow, FocusInHdl));
m_xTreeView->connect_focus_out(LINK(this, OTasksWindow, FocusOutHdl));
// an arbitrary small size it's allowed to shrink to
@@ -137,7 +133,7 @@ OTasksWindow::~OTasksWindow()
Clear();
}
-void OTasksWindow::setHelpText(const char* pId)
+void OTasksWindow::setHelpText(TranslateId pId)
{
if (pId)
m_xHelpText->set_text(DBA_RES(pId));
@@ -154,32 +150,26 @@ void OTasksWindow::fillTaskEntryList( const TaskEntryList& _rList )
Reference< XModuleUIConfigurationManagerSupplier > xModuleCfgMgrSupplier =
theModuleUIConfigurationManagerSupplier::get( getDetailView()->getBorderWin().getView()->getORB() );
Reference< XUIConfigurationManager > xUIConfigMgr = xModuleCfgMgrSupplier->getUIConfigurationManager(
- "com.sun.star.sdb.OfficeDatabaseDocument"
+ u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr
);
Reference< XImageManager > xImageMgr( xUIConfigMgr->getImageManager(), UNO_QUERY );
// copy the commands so we can use them with the config managers
Sequence< OUString > aCommands( _rList.size() );
- OUString* pCommands = aCommands.getArray();
- for (auto const& copyTask : _rList)
- {
- *pCommands = copyTask.sUNOCommand;
- ++pCommands;
- }
+ std::transform(_rList.begin(), _rList.end(), aCommands.getArray(),
+ [](auto& copyTask) { return copyTask.sUNOCommand; });
Sequence< Reference< XGraphic> > aImages = xImageMgr->getImages(
ImageType::SIZE_DEFAULT | ImageType::COLOR_NORMAL ,
aCommands
);
+ assert(aImages.size() == _rList.size());
- const Reference< XGraphic >* pImages( aImages.getConstArray() );
-
- size_t nIndex = 0;
- for (auto const& task : _rList)
+ for (size_t nIndex = 0; nIndex < _rList.size(); ++nIndex)
{
- OUString sId = OUString::number(reinterpret_cast<sal_uInt64>(new TaskEntry(task)));
- m_xTreeView->append(sId, task.sTitle);
- m_xTreeView->set_image(nIndex++, *pImages++);
+ OUString sId = weld::toId(new TaskEntry(_rList[nIndex]));
+ m_xTreeView->append(sId, _rList[nIndex].sTitle);
+ m_xTreeView->set_image(nIndex, aImages[nIndex]);
}
}
catch(Exception&)
@@ -194,7 +184,7 @@ void OTasksWindow::fillTaskEntryList( const TaskEntryList& _rList )
void OTasksWindow::Clear()
{
m_xTreeView->all_foreach([this](weld::TreeIter& rEntry){
- TaskEntry* pUserData = reinterpret_cast<TaskEntry*>(m_xTreeView->get_id(rEntry).toUInt64());
+ TaskEntry* pUserData = weld::fromId<TaskEntry*>(m_xTreeView->get_id(rEntry));
delete pUserData;
return false;
});
@@ -204,13 +194,13 @@ void OTasksWindow::Clear()
OApplicationDetailView::OApplicationDetailView(weld::Container* pParent, OAppBorderWindow& rBorder,
PreviewMode ePreviewMode)
- : m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/appdetailwindow.ui"))
- , m_xContainer(m_xBuilder->weld_container("AppDetailWindow"))
- , m_xHorzSplitter(m_xBuilder->weld_paned("splitter"))
- , m_xTasksParent(m_xBuilder->weld_container("tasks"))
- , m_xContainerParent(m_xBuilder->weld_container("container"))
+ : m_xBuilder(Application::CreateBuilder(pParent, u"dbaccess/ui/appdetailwindow.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_container(u"AppDetailWindow"_ustr))
+ , m_xHorzSplitter(m_xBuilder->weld_paned(u"splitter"_ustr))
+ , m_xTasksParent(m_xBuilder->weld_container(u"tasks"_ustr))
+ , m_xContainerParent(m_xBuilder->weld_container(u"container"_ustr))
, m_xTasks(new dbaui::OTitleWindow(m_xTasksParent.get(), STR_TASKS))
- , m_xTitleContainer(new dbaui::OTitleWindow(m_xContainerParent.get(), nullptr))
+ , m_xTitleContainer(new dbaui::OTitleWindow(m_xContainerParent.get(), TranslateId()))
, m_rBorderWin(rBorder)
{
m_xControlHelper = std::make_shared<OAppDetailPageHelper>(m_xTitleContainer->getChildContainer(), m_rBorderWin, ePreviewMode);
@@ -269,28 +259,28 @@ void OApplicationDetailView::impl_fillTaskPaneData(ElementType _eType, TaskPaneD
switch ( _eType )
{
case E_TABLE:
- rList.emplace_back( ".uno:DBNewTable", RID_STR_TABLES_HELP_TEXT_DESIGN, RID_STR_NEW_TABLE );
- rList.emplace_back( ".uno:DBNewTableAutoPilot", RID_STR_TABLES_HELP_TEXT_WIZARD, RID_STR_NEW_TABLE_AUTO );
- rList.emplace_back( ".uno:DBNewView", RID_STR_VIEWS_HELP_TEXT_DESIGN, RID_STR_NEW_VIEW, true );
+ rList.emplace_back( u".uno:DBNewTable"_ustr, RID_STR_TABLES_HELP_TEXT_DESIGN, RID_STR_NEW_TABLE );
+ rList.emplace_back( u".uno:DBNewTableAutoPilot"_ustr, RID_STR_TABLES_HELP_TEXT_WIZARD, RID_STR_NEW_TABLE_AUTO );
+ rList.emplace_back( u".uno:DBNewView"_ustr, RID_STR_VIEWS_HELP_TEXT_DESIGN, RID_STR_NEW_VIEW, true );
_rData.pTitleId = RID_STR_TABLES_CONTAINER;
break;
case E_FORM:
- rList.emplace_back( ".uno:DBNewForm", RID_STR_FORMS_HELP_TEXT, RID_STR_NEW_FORM );
- rList.emplace_back( ".uno:DBNewFormAutoPilot", RID_STR_FORMS_HELP_TEXT_WIZARD, RID_STR_NEW_FORM_AUTO );
+ rList.emplace_back( u".uno:DBNewForm"_ustr, RID_STR_FORMS_HELP_TEXT, RID_STR_NEW_FORM );
+ rList.emplace_back( u".uno:DBNewFormAutoPilot"_ustr, RID_STR_FORMS_HELP_TEXT_WIZARD, RID_STR_NEW_FORM_AUTO );
_rData.pTitleId = RID_STR_FORMS_CONTAINER;
break;
case E_REPORT:
- rList.emplace_back( ".uno:DBNewReport", RID_STR_REPORT_HELP_TEXT, RID_STR_NEW_REPORT, true );
- rList.emplace_back( ".uno:DBNewReportAutoPilot", RID_STR_REPORTS_HELP_TEXT_WIZARD, RID_STR_NEW_REPORT_AUTO );
+ rList.emplace_back( u".uno:DBNewReport"_ustr, RID_STR_REPORT_HELP_TEXT, RID_STR_NEW_REPORT, true );
+ rList.emplace_back( u".uno:DBNewReportAutoPilot"_ustr, RID_STR_REPORTS_HELP_TEXT_WIZARD, RID_STR_NEW_REPORT_AUTO );
_rData.pTitleId = RID_STR_REPORTS_CONTAINER;
break;
case E_QUERY:
- rList.emplace_back( ".uno:DBNewQuery", RID_STR_QUERIES_HELP_TEXT, RID_STR_NEW_QUERY );
- rList.emplace_back( ".uno:DBNewQueryAutoPilot", RID_STR_QUERIES_HELP_TEXT_WIZARD, RID_STR_NEW_QUERY_AUTO );
- rList.emplace_back( ".uno:DBNewQuerySql", RID_STR_QUERIES_HELP_TEXT_SQL, RID_STR_NEW_QUERY_SQL );
+ rList.emplace_back( u".uno:DBNewQuery"_ustr, RID_STR_QUERIES_HELP_TEXT, RID_STR_NEW_QUERY );
+ rList.emplace_back( u".uno:DBNewQueryAutoPilot"_ustr, RID_STR_QUERIES_HELP_TEXT_WIZARD, RID_STR_NEW_QUERY_AUTO );
+ rList.emplace_back( u".uno:DBNewQuerySql"_ustr, RID_STR_QUERIES_HELP_TEXT_SQL, RID_STR_NEW_QUERY_SQL );
_rData.pTitleId = RID_STR_QUERIES_CONTAINER;
break;
@@ -315,7 +305,7 @@ void OApplicationDetailView::impl_fillTaskPaneData(ElementType _eType, TaskPaneD
const TaskPaneData& OApplicationDetailView::impl_getTaskPaneData( ElementType _eType )
{
if ( m_aTaskPaneData.empty() )
- m_aTaskPaneData.resize( ELEMENT_COUNT );
+ m_aTaskPaneData.resize( size_t(E_ELEMENT_TYPE_COUNT) );
OSL_ENSURE( ( _eType >= 0 ) && ( _eType < E_ELEMENT_TYPE_COUNT ), "OApplicationDetailView::impl_getTaskPaneData: illegal element type!" );
TaskPaneData& rData = m_aTaskPaneData[ _eType ];
diff --git a/dbaccess/source/ui/app/AppDetailView.hxx b/dbaccess/source/ui/app/AppDetailView.hxx
index 58b382800865..9b0df37bcfdd 100644
--- a/dbaccess/source/ui/app/AppDetailView.hxx
+++ b/dbaccess/source/ui/app/AppDetailView.hxx
@@ -34,20 +34,19 @@ namespace dbaui
class OAppBorderWindow;
class OApplicationDetailView;
class OAppDetailPageHelper;
- class OTasksWindow;
class TreeListBox;
struct TaskEntry
{
OUString sUNOCommand;
- const char* pHelpID;
+ TranslateId pHelpID;
OUString sTitle;
bool bHideWhenDisabled;
// TODO: we should be consistent in the task pane and the menus/toolbars:
// If an entry is disabled in the latter, it should also be disabled in the former.
// If an entry is *hidden* in the former, it should also be hidden in the latter.
- TaskEntry( const char* _pAsciiUNOCommand, const char* pHelpID, const char* pTitleResourceID, bool _bHideWhenDisabled = false );
+ TaskEntry( const OUString& _rAsciiUNOCommand, TranslateId pHelpID, TranslateId pTitleResourceID, bool _bHideWhenDisabled = false );
};
typedef std::vector< TaskEntry > TaskEntryList;
@@ -56,7 +55,7 @@ namespace dbaui
/// the tasks available in the pane
TaskEntryList aTasks;
/// the resource ID for the title of the pane
- const char* pTitleId;
+ TranslateId pTitleId;
};
class OTasksWindow final : public OChildWindow
@@ -89,7 +88,7 @@ namespace dbaui
void fillTaskEntryList( const TaskEntryList& _rList );
void Clear();
- void setHelpText(const char* pId);
+ void setHelpText(TranslateId pId);
};
class OApplicationDetailView final : public IClipboardTest
diff --git a/dbaccess/source/ui/app/AppIconControl.cxx b/dbaccess/source/ui/app/AppIconControl.cxx
index 2a89362ec91e..0483ab38f4dd 100644
--- a/dbaccess/source/ui/app/AppIconControl.cxx
+++ b/dbaccess/source/ui/app/AppIconControl.cxx
@@ -21,6 +21,7 @@
#include <core_resource.hxx>
#include <strings.hrc>
#include <bitmaps.hlst>
+#include <sfx2/thumbnailviewitem.hxx>
#include <vcl/bitmapex.hxx>
#include <vcl/event.hxx>
#include <vcl/i18nhelp.hxx>
@@ -32,7 +33,6 @@
namespace dbaui
{
-
class OApplicationIconControlDropTarget final : public DropTargetHelper
{
private:
@@ -69,29 +69,27 @@ OApplicationIconControl::OApplicationIconControl(std::unique_ptr<weld::ScrolledW
void OApplicationIconControl::Fill()
{
- static const struct CategoryDescriptor
+ static constexpr struct CategoryDescriptor
{
- const char* pLabelResId;
+ TranslateId pLabelResId;
ElementType eType;
- const char* aImageResId;
- } aCategories[] = {
- { RID_STR_TABLES_CONTAINER, E_TABLE, BMP_TABLEFOLDER_TREE_L },
- { RID_STR_QUERIES_CONTAINER, E_QUERY, BMP_QUERYFOLDER_TREE_L },
- { RID_STR_FORMS_CONTAINER, E_FORM, BMP_FORMFOLDER_TREE_L },
- { RID_STR_REPORTS_CONTAINER, E_REPORT, BMP_REPORTFOLDER_TREE_L }
- };
-
- for (const CategoryDescriptor& aCategorie : aCategories)
+ OUString aImageResId;
+ } aCategories[] = { { RID_STR_TABLES_CONTAINER, E_TABLE, BMP_TABLEFOLDER_TREE_L },
+ { RID_STR_QUERIES_CONTAINER, E_QUERY, BMP_QUERYFOLDER_TREE_L },
+ { RID_STR_FORMS_CONTAINER, E_FORM, BMP_FORMFOLDER_TREE_L },
+ { RID_STR_REPORTS_CONTAINER, E_REPORT, BMP_REPORTFOLDER_TREE_L } };
+
+ for (const CategoryDescriptor& aCategory : aCategories)
{
// E_TABLE is 0, but 0 means void so use id of enum + 1
- std::unique_ptr<ThumbnailViewItem> xItem(new ThumbnailViewItem(*this, aCategorie.eType + 1));
+ std::unique_ptr<ThumbnailViewItem> xItem(new ThumbnailViewItem(*this, aCategory.eType + 1));
xItem->mbBorder = false;
- xItem->maPreview1 = BitmapEx(OUString::createFromAscii(aCategorie.aImageResId));
+ xItem->maPreview1 = BitmapEx(aCategory.aImageResId);
const Size& rSize = xItem->maPreview1.GetSizePixel();
m_nMaxWidth = std::max(m_nMaxWidth, rSize.Width());
m_nMaxHeight = std::max(m_nMaxHeight, rSize.Height());
- xItem->maTitle = DBA_RES(aCategorie.pLabelResId);
- m_nMaxWidth = std::max<long>(m_nMaxWidth, GetTextWidth(xItem->maTitle));
+ xItem->maTitle = DBA_RES(aCategory.pLabelResId);
+ m_nMaxWidth = std::max<tools::Long>(m_nMaxWidth, GetTextWidth(xItem->maTitle));
AppendItem(std::move(xItem));
}
@@ -185,7 +183,8 @@ sal_Int8 OApplicationIconControl::AcceptDrop(const AcceptDropEvent& rEvt)
{
deselectItems();
SelectItem(nEntry);
- nDropOption = m_pActionListener->queryDrop(rEvt, m_xDropTarget->GetDataFlavorExVector());
+ nDropOption
+ = m_pActionListener->queryDrop(rEvt, m_xDropTarget->GetDataFlavorExVector());
}
}
return nDropOption;
@@ -198,9 +197,7 @@ sal_Int8 OApplicationIconControl::ExecuteDrop(const ExecuteDropEvent& rEvt)
return DND_ACTION_NONE;
}
-OApplicationIconControl::~OApplicationIconControl()
-{
-}
+OApplicationIconControl::~OApplicationIconControl() {}
void OApplicationIconControl::GetFocus()
{
@@ -235,7 +232,6 @@ tools::Rectangle OApplicationIconControl::GetFocusRect()
}
return tools::Rectangle();
}
-
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/app/AppIconControl.hxx b/dbaccess/source/ui/app/AppIconControl.hxx
index 91f81b71a038..08bc25b4282b 100644
--- a/dbaccess/source/ui/app/AppIconControl.hxx
+++ b/dbaccess/source/ui/app/AppIconControl.hxx
@@ -19,9 +19,7 @@
#pragma once
#include <sfx2/thumbnailview.hxx>
-#include <sfx2/thumbnailviewitem.hxx>
#include <vcl/transfer.hxx>
-#include <vcl/customweld.hxx>
#include <vcl/weld.hxx>
#include <AppElementType.hxx>
@@ -30,7 +28,6 @@ class MnemonicGenerator;
namespace dbaui
{
class IControlActionListener;
- class IconControl;
class OApplicationIconControlDropTarget;
class OApplicationIconControl final : public ThumbnailView
diff --git a/dbaccess/source/ui/app/AppSwapWindow.cxx b/dbaccess/source/ui/app/AppSwapWindow.cxx
index ec113838371a..b1edf21f28a6 100644
--- a/dbaccess/source/ui/app/AppSwapWindow.cxx
+++ b/dbaccess/source/ui/app/AppSwapWindow.cxx
@@ -20,22 +20,21 @@
#include "AppSwapWindow.hxx"
#include <helpids.h>
#include "AppView.hxx"
+#include <sfx2/thumbnailviewitem.hxx>
#include <vcl/event.hxx>
#include <vcl/mnemonic.hxx>
-#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include "AppController.hxx"
using namespace ::dbaui;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::container;
-
-OApplicationSwapWindow::OApplicationSwapWindow(weld::Container* pParent, OAppBorderWindow& rBorderWindow)
- : OChildWindow(pParent, "dbaccess/ui/appswapwindow.ui", "AppSwapWindow")
- , m_xIconControl(new OApplicationIconControl(m_xBuilder->weld_scrolled_window("scroll", true)))
- , m_xIconControlWin(new weld::CustomWeld(*m_xBuilder, "valueset", *m_xIconControl))
+
+OApplicationSwapWindow::OApplicationSwapWindow(weld::Container* pParent,
+ OAppBorderWindow& rBorderWindow)
+ : OChildWindow(pParent, u"dbaccess/ui/appswapwindow.ui"_ustr, u"AppSwapWindow"_ustr)
+ , m_xIconControl(
+ new OApplicationIconControl(m_xBuilder->weld_scrolled_window(u"scroll"_ustr, true)))
+ , m_xIconControlWin(new weld::CustomWeld(*m_xBuilder, u"valueset"_ustr, *m_xIconControl))
, m_eLastType(E_NONE)
, m_rBorderWin(rBorderWindow)
, m_nChangeEvent(nullptr)
@@ -45,7 +44,7 @@ OApplicationSwapWindow::OApplicationSwapWindow(weld::Container* pParent, OAppBor
m_xIconControl->SetHelpId(HID_APP_SWAP_ICONCONTROL);
m_xIconControl->Fill();
m_xIconControl->setItemStateHdl(LINK(this, OApplicationSwapWindow, OnContainerSelectHdl));
- m_xIconControl->setControlActionListener( &m_rBorderWin.getView()->getAppController() );
+ m_xIconControl->setControlActionListener(&m_rBorderWin.getView()->getAppController());
}
void OApplicationSwapWindow::GrabFocus()
@@ -76,11 +75,11 @@ void OApplicationSwapWindow::createIconAutoMnemonics(MnemonicGenerator& rMnemoni
m_xIconControl->createIconAutoMnemonics(rMnemonics);
}
-bool OApplicationSwapWindow::interceptKeyInput( const KeyEvent& _rEvent )
+bool OApplicationSwapWindow::interceptKeyInput(const KeyEvent& _rEvent)
{
const vcl::KeyCode& rKeyCode = _rEvent.GetKeyCode();
- if ( rKeyCode.GetModifier() == KEY_MOD2 )
- return m_xIconControl->DoKeyShortCut( _rEvent );
+ if (rKeyCode.GetModifier() == KEY_MOD2)
+ return m_xIconControl->DoKeyShortCut(_rEvent);
// not handled
return false;
}
@@ -90,20 +89,21 @@ ElementType OApplicationSwapWindow::getElementType() const
return m_xIconControl->GetSelectedItem();
}
-bool OApplicationSwapWindow::onContainerSelected( ElementType _eType )
+bool OApplicationSwapWindow::onContainerSelected(ElementType _eType)
{
- if ( m_eLastType == _eType )
+ if (m_eLastType == _eType)
return true;
- if ( m_rBorderWin.getView()->getAppController().onContainerSelect( _eType ) )
+ if (m_rBorderWin.getView()->getAppController().onContainerSelect(_eType))
{
- if ( _eType != E_NONE )
+ if (_eType != E_NONE)
m_eLastType = _eType;
return true;
}
if (!m_nChangeEvent)
- m_nChangeEvent = Application::PostUserEvent(LINK(this, OApplicationSwapWindow, ChangeToLastSelected));
+ m_nChangeEvent
+ = Application::PostUserEvent(LINK(this, OApplicationSwapWindow, ChangeToLastSelected));
return false;
}
@@ -112,7 +112,7 @@ IMPL_LINK(OApplicationSwapWindow, OnContainerSelectHdl, const ThumbnailViewItem*
if (pEntry->mbSelected)
{
ElementType eType = static_cast<ElementType>(pEntry->mnId - 1);
- onContainerSelected( eType ); // i87582
+ onContainerSelected(eType); // i87582
}
}
diff --git a/dbaccess/source/ui/app/AppSwapWindow.hxx b/dbaccess/source/ui/app/AppSwapWindow.hxx
index b369564af21b..1ce972e3b000 100644
--- a/dbaccess/source/ui/app/AppSwapWindow.hxx
+++ b/dbaccess/source/ui/app/AppSwapWindow.hxx
@@ -23,6 +23,7 @@
#include <AppElementType.hxx>
#include <ChildWindow.hxx>
+struct ImplSVEvent;
class MnemonicGenerator;
namespace dbaui
diff --git a/dbaccess/source/ui/app/AppTitleWindow.cxx b/dbaccess/source/ui/app/AppTitleWindow.cxx
index be384b2d9076..a458a96e8dfa 100644
--- a/dbaccess/source/ui/app/AppTitleWindow.cxx
+++ b/dbaccess/source/ui/app/AppTitleWindow.cxx
@@ -17,23 +17,18 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <com/sun/star/awt/XWindow.hpp>
#include <core_resource.hxx>
-#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/svapp.hxx>
-#include <vcl/settings.hxx>
-#include <vcl/event.hxx>
#include "AppTitleWindow.hxx"
namespace dbaui
{
-
-OTitleWindow::OTitleWindow(weld::Container* pParent, const char* pTitleId)
- : m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/titlewindow.ui"))
- , m_xContainer(m_xBuilder->weld_container("TitleWindow"))
- , m_xTitleFrame(m_xBuilder->weld_container("titleparent"))
- , m_xTitle(m_xBuilder->weld_label("title"))
- , m_xChildContainer(m_xBuilder->weld_container("box"))
+OTitleWindow::OTitleWindow(weld::Container* pParent, TranslateId pTitleId)
+ : m_xBuilder(Application::CreateBuilder(pParent, u"dbaccess/ui/titlewindow.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_container(u"TitleWindow"_ustr))
+ , m_xTitleFrame(m_xBuilder->weld_container(u"titleparent"_ustr))
+ , m_xTitle(m_xBuilder->weld_label(u"title"_ustr))
+ , m_xChildContainer(m_xBuilder->weld_container(u"box"_ustr))
{
setTitle(pTitleId);
@@ -42,21 +37,16 @@ OTitleWindow::OTitleWindow(weld::Container* pParent, const char* pTitleId)
m_xTitle->set_label_type(weld::LabelType::Title);
}
-OTitleWindow::~OTitleWindow()
-{
-}
+OTitleWindow::~OTitleWindow() {}
-weld::Container* OTitleWindow::getChildContainer()
-{
- return m_xChildContainer.get();
-}
+weld::Container* OTitleWindow::getChildContainer() { return m_xChildContainer.get(); }
void OTitleWindow::setChildWindow(const std::shared_ptr<OChildWindow>& rChild)
{
m_xChild = rChild;
}
-void OTitleWindow::setTitle(const char* pTitleId)
+void OTitleWindow::setTitle(TranslateId pTitleId)
{
if (!pTitleId)
return;
@@ -69,10 +59,7 @@ void OTitleWindow::GrabFocus()
m_xChild->GrabFocus();
}
-bool OTitleWindow::HasChildPathFocus() const
-{
- return m_xChild && m_xChild->HasChildPathFocus();
-}
+bool OTitleWindow::HasChildPathFocus() const { return m_xChild && m_xChild->HasChildPathFocus(); }
} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/app/AppTitleWindow.hxx b/dbaccess/source/ui/app/AppTitleWindow.hxx
index 161e21e5c3fe..d57f5241650f 100644
--- a/dbaccess/source/ui/app/AppTitleWindow.hxx
+++ b/dbaccess/source/ui/app/AppTitleWindow.hxx
@@ -19,6 +19,7 @@
#pragma once
#include <ChildWindow.hxx>
+#include <unotools/resmgr.hxx>
namespace dbaui
{
@@ -32,7 +33,7 @@ namespace dbaui
std::shared_ptr<OChildWindow> m_xChild;
public:
- OTitleWindow(weld::Container* pParent, const char* pTitleId);
+ OTitleWindow(weld::Container* pParent, TranslateId pTitleId);
~OTitleWindow();
void GrabFocus();
@@ -59,7 +60,7 @@ namespace dbaui
@param pTitleId
The resource id of the title text.
*/
- void setTitle(const char* pTitleId);
+ void setTitle(TranslateId pTitleId);
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/app/AppView.cxx b/dbaccess/source/ui/app/AppView.cxx
index 5873bc712404..0d8969c46cbb 100644
--- a/dbaccess/source/ui/app/AppView.cxx
+++ b/dbaccess/source/ui/app/AppView.cxx
@@ -19,7 +19,7 @@
#include "AppView.hxx"
#include <strings.hrc>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/event.hxx>
#include <vcl/weld.hxx>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
@@ -43,9 +43,9 @@ using namespace ::com::sun::star::container;
using ::com::sun::star::sdb::application::NamedDatabaseObject;
OAppBorderWindow::OAppBorderWindow(OApplicationView* pParent, PreviewMode ePreviewMode)
- : InterimItemWindow(pParent, "dbaccess/ui/appborderwindow.ui", "AppBorderWindow", false)
- , m_xPanelParent(m_xBuilder->weld_container("panel"))
- , m_xDetailViewParent(m_xBuilder->weld_container("detail"))
+ : InterimItemWindow(pParent, u"dbaccess/ui/appborderwindow.ui"_ustr, u"AppBorderWindow"_ustr, false)
+ , m_xPanelParent(m_xBuilder->weld_container(u"panel"_ustr))
+ , m_xDetailViewParent(m_xBuilder->weld_container(u"detail"_ustr))
, m_xView(pParent)
{
SetStyle(GetStyle() | WB_DIALOGCONTROL);
@@ -72,7 +72,7 @@ void OAppBorderWindow::dispose()
m_xDetailView.reset();
m_xPanelParent.reset();
m_xDetailViewParent.reset();
- m_xView.clear();
+ m_xView.reset();
InterimItemWindow::dispose();
}
@@ -174,7 +174,7 @@ bool OApplicationView::PreNotify( NotifyEvent& rNEvt )
{
switch(rNEvt.GetType())
{
- case MouseNotifyEvent::KEYINPUT:
+ case NotifyEventType::KEYINPUT:
{
const KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
// give the pane the chance to intercept mnemonic accelerators
@@ -462,7 +462,7 @@ void OApplicationView::ImplInitSettings()
vcl::Font aFont = rStyleSettings.GetFieldFont();
aFont.SetColor( rStyleSettings.GetWindowTextColor() );
- SetPointFont(*this, aFont);
+ SetPointFont(*GetOutDev(), aFont);
SetTextColor( rStyleSettings.GetFieldTextColor() );
SetTextFillColor();
diff --git a/dbaccess/source/ui/app/AppView.hxx b/dbaccess/source/ui/app/AppView.hxx
index b3a5706c54b5..43dc46b222b4 100644
--- a/dbaccess/source/ui/app/AppView.hxx
+++ b/dbaccess/source/ui/app/AppView.hxx
@@ -28,9 +28,6 @@
#include <IClipBoardTest.hxx>
#include <AppElementType.hxx>
-namespace com::sun::star::beans { class XPropertySet; }
-
-class Control;
class MnemonicGenerator;
namespace dbaui
diff --git a/dbaccess/source/ui/app/ChildWindow.cxx b/dbaccess/source/ui/app/ChildWindow.cxx
index a8091c8637a5..2f27ccb30b46 100644
--- a/dbaccess/source/ui/app/ChildWindow.cxx
+++ b/dbaccess/source/ui/app/ChildWindow.cxx
@@ -13,7 +13,7 @@
namespace dbaui
{
OChildWindow::OChildWindow(weld::Container* pParent, const OUString& rUIXMLDescription,
- const OString& rID)
+ const OUString& rID)
: m_xBuilder(Application::CreateBuilder(pParent, rUIXMLDescription))
, m_xContainer(m_xBuilder->weld_container(rID))
{
diff --git a/dbaccess/source/ui/app/DocumentInfoPreview.cxx b/dbaccess/source/ui/app/DocumentInfoPreview.cxx
index d112c7fb0427..890e19eb2dc2 100644
--- a/dbaccess/source/ui/app/DocumentInfoPreview.cxx
+++ b/dbaccess/source/ui/app/DocumentInfoPreview.cxx
@@ -34,7 +34,7 @@
#include <vcl/svapp.hxx>
#include <svl/itemset.hxx>
#include <tools/datetime.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/localedatawrapper.hxx>
#include <templwin.hrc>
@@ -103,28 +103,18 @@ void ODocumentInfoPreview::fill(
}
}
- m_xEditView->SetSelection(ESelection(0, 0, 0, 0));
-}
-
-namespace
-{
- ESelection InsertAtEnd(const EditEngine& rEditEngine)
- {
- const sal_uInt32 nPara = rEditEngine.GetParagraphCount() -1;
- sal_Int32 nLastLen = rEditEngine.GetText(nPara).getLength();
- return ESelection(nPara, nLastLen, nPara, nLastLen);
- }
+ m_xEditView->SetSelection(ESelection(0, 0));
}
void ODocumentInfoPreview::insertEntry(
- OUString const & title, OUString const & value)
+ std::u16string_view title, OUString const & value)
{
- if (!m_xEditEngine->GetText().isEmpty()) {
- m_xEditEngine->QuickInsertText("\n\n", InsertAtEnd(*m_xEditEngine));
+ if (m_xEditEngine->HasText()) {
+ m_xEditEngine->QuickInsertText(u"\n\n"_ustr, ESelection::AtEnd());
}
- OUString caption(title + ":\n");
- m_xEditEngine->QuickInsertText(caption, InsertAtEnd(*m_xEditEngine));
+ OUString caption(OUString::Concat(title) + ":\n");
+ m_xEditEngine->QuickInsertText(caption, ESelection::AtEnd());
SfxItemSet aSet(m_xEditEngine->GetEmptyItemSet());
aSet.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT));
@@ -133,7 +123,7 @@ void ODocumentInfoPreview::insertEntry(
int nCaptionPara = m_xEditEngine->GetParagraphCount() - 2;
m_xEditEngine->QuickSetAttribs(aSet, ESelection(nCaptionPara, 0, nCaptionPara, caption.getLength() - 1));
- m_xEditEngine->QuickInsertText(value, InsertAtEnd(*m_xEditEngine));
+ m_xEditEngine->QuickInsertText(value, ESelection::AtEnd());
}
void ODocumentInfoPreview::insertNonempty(tools::Long id, OUString const & value)
@@ -152,10 +142,10 @@ void ODocumentInfoPreview::insertDateTime(
value.Hours, value.Minutes, value.Seconds, value.NanoSeconds));
if (aToolsDT.IsValidAndGregorian()) {
const LocaleDataWrapper& rLocaleWrapper( Application::GetSettings().GetLocaleDataWrapper() );
- OUStringBuffer buf(rLocaleWrapper.getDate(aToolsDT));
- buf.append(", ");
- buf.append(rLocaleWrapper.getTime(aToolsDT));
- insertEntry(SvtDocInfoTable_Impl::GetString(id), buf.makeStringAndClear());
+ OUString buf = rLocaleWrapper.getDate(aToolsDT) +
+ ", " +
+ rLocaleWrapper.getTime(aToolsDT);
+ insertEntry(SvtDocInfoTable_Impl::GetString(id), buf);
}
}
diff --git a/dbaccess/source/ui/app/DocumentInfoPreview.hxx b/dbaccess/source/ui/app/DocumentInfoPreview.hxx
index 9fb69af4d0f3..0c9548d0a759 100644
--- a/dbaccess/source/ui/app/DocumentInfoPreview.hxx
+++ b/dbaccess/source/ui/app/DocumentInfoPreview.hxx
@@ -20,6 +20,9 @@
#pragma once
#include <sal/config.h>
+
+#include <string_view>
+
#include <svx/weldeditview.hxx>
namespace com :: sun :: star :: uno { template <typename > class Reference; }
@@ -44,7 +47,7 @@ public:
void fill(css::uno::Reference< css::document::XDocumentProperties > const & xDocProps);
private:
- void insertEntry(OUString const & title, OUString const & value);
+ void insertEntry(std::u16string_view title, OUString const & value);
void insertNonempty(tools::Long id, OUString const & value);
diff --git a/dbaccess/source/ui/app/subcomponentmanager.cxx b/dbaccess/source/ui/app/subcomponentmanager.cxx
index 08df1dff0930..de97525bcb48 100644
--- a/dbaccess/source/ui/app/subcomponentmanager.cxx
+++ b/dbaccess/source/ui/app/subcomponentmanager.cxx
@@ -31,8 +31,9 @@
#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <dbaccess/dataview.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <osl/mutex.hxx>
@@ -47,7 +48,7 @@ namespace dbaui
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::makeAny;
+ using ::com::sun::star::uno::Any;
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::frame::XFrame;
using ::com::sun::star::frame::XController;
@@ -88,18 +89,14 @@ namespace dbaui
Reference< XPropertySet > xDocumentDefinitionProperties;
SubComponentDescriptor()
- :sName()
- ,nComponentType( -1 )
- ,eOpenMode( E_OPEN_NORMAL )
- ,xFrame()
- ,xController()
- ,xModel()
+ :nComponentType( -1 )
+ ,eOpenMode( ElementOpenMode::Normal )
{
}
- SubComponentDescriptor( const OUString& i_rName, const sal_Int32 i_nComponentType,
+ SubComponentDescriptor( OUString i_sName, const sal_Int32 i_nComponentType,
const ElementOpenMode i_eOpenMode, const Reference< XComponent >& i_rComponent )
- :sName( i_rName )
+ :sName(std::move( i_sName ))
,nComponentType( i_nComponentType )
,eOpenMode( i_eOpenMode )
{
@@ -110,7 +107,7 @@ namespace dbaui
Reference< XComponentSupplier > xCompSupp( i_rComponent, UNO_QUERY_THROW );
Reference< XComponent > xComponent( xCompSupp->getComponent(), UNO_QUERY_THROW );
if ( !impl_constructFrom( xComponent ) )
- throw RuntimeException("Illegal component type." );
+ throw RuntimeException(u"Illegal component type."_ustr );
xComponentCommandProcessor.set( i_rComponent, UNO_QUERY_THROW );
xDocumentDefinitionProperties.set( i_rComponent, UNO_QUERY_THROW );
}
@@ -161,9 +158,9 @@ namespace dbaui
Reference< XComponent > operator()( const SubComponentDescriptor &_desc ) const
{
if ( _desc.xModel.is() )
- return _desc.xModel.get();
+ return _desc.xModel;
OSL_ENSURE( _desc.xController.is(), "SelectSubComponent::operator(): illegal component!" );
- return _desc.xController.get();
+ return _desc.xController;
}
};
@@ -172,9 +169,9 @@ namespace dbaui
struct SubComponentMatch
{
public:
- SubComponentMatch( const OUString& i_rName, const sal_Int32 i_nComponentType,
+ SubComponentMatch( OUString i_sName, const sal_Int32 i_nComponentType,
const ElementOpenMode i_eOpenMode )
- :m_sName( i_rName )
+ :m_sName(std::move( i_sName ))
,m_nComponentType( i_nComponentType )
,m_eOpenMode( i_eOpenMode )
{
@@ -196,9 +193,9 @@ namespace dbaui
// SubComponentManager_Data
struct SubComponentManager_Data
{
- SubComponentManager_Data( OApplicationController& _rController, const ::comphelper::SharedMutex& _rMutex )
+ SubComponentManager_Data( OApplicationController& _rController, ::comphelper::SharedMutex _aMutex )
:m_rController( _rController )
- ,m_aMutex( _rMutex )
+ ,m_aMutex(std::move( _aMutex ))
{
}
@@ -310,16 +307,16 @@ namespace dbaui
return bSuccess;
}
- void lcl_notifySubComponentEvent( const SubComponentManager_Data& _rData, const char* _pAsciiEventName,
+ void lcl_notifySubComponentEvent( const SubComponentManager_Data& _rData, const OUString& _rAsciiEventName,
const SubComponentDescriptor& _rComponent )
{
try
{
Reference< XDocumentEventBroadcaster > xBroadcaster( _rData.m_rController.getModel(), UNO_QUERY_THROW );
xBroadcaster->notifyDocumentEvent(
- OUString::createFromAscii( _pAsciiEventName ),
+ _rAsciiEventName,
&_rData.m_rController,
- makeAny( _rComponent.xFrame )
+ Any( _rComponent.xFrame )
);
}
catch( const Exception& )
@@ -400,7 +397,7 @@ namespace dbaui
if ( aClosedComponent.is() )
{
aGuard.clear();
- lcl_notifySubComponentEvent( *m_pData, "OnSubComponentClosed", aClosedComponent );
+ lcl_notifySubComponentEvent( *m_pData, u"OnSubComponentClosed"_ustr, aClosedComponent );
}
}
@@ -477,7 +474,7 @@ namespace dbaui
// notify this to interested parties
aGuard.clear();
- lcl_notifySubComponentEvent( *m_pData, "OnSubComponentOpened", aElement );
+ lcl_notifySubComponentEvent( *m_pData, u"OnSubComponentOpened"_ustr, aElement );
}
bool SubComponentManager::activateSubFrame( const OUString& _rName, const sal_Int32 _nComponentType,
@@ -508,10 +505,10 @@ namespace dbaui
return true;
}
- bool SubComponentManager::closeSubFrames( const OUString& i_rName, const sal_Int32 _nComponentType )
+ bool SubComponentManager::closeSubFrames( std::u16string_view i_rName, const sal_Int32 _nComponentType )
{
::osl::MutexGuard aGuard( m_pData->getMutex() );
- ENSURE_OR_RETURN_FALSE( !i_rName.isEmpty(), "SubComponentManager::closeSubFrames: illegal name!" );
+ ENSURE_OR_RETURN_FALSE( !i_rName.empty(), "SubComponentManager::closeSubFrames: illegal name!" );
SubComponents aWorkingCopy( m_pData->m_aComponents );
for (auto const& elem : aWorkingCopy)
diff --git a/dbaccess/source/ui/app/subcomponentmanager.hxx b/dbaccess/source/ui/app/subcomponentmanager.hxx
index b14e96d68116..402a3d593b90 100644
--- a/dbaccess/source/ui/app/subcomponentmanager.hxx
+++ b/dbaccess/source/ui/app/subcomponentmanager.hxx
@@ -90,7 +90,7 @@ namespace dbaui
exist.
*/
bool closeSubFrames(
- const OUString& _rName,
+ std::u16string_view _rName,
const sal_Int32 _nComponentType
);
diff --git a/dbaccess/source/ui/app/templwin.cxx b/dbaccess/source/ui/app/templwin.cxx
index e9940782d630..224d8be0aed9 100644
--- a/dbaccess/source/ui/app/templwin.cxx
+++ b/dbaccess/source/ui/app/templwin.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <algorithm>
#include <core_resource.hxx>
#include <templwin.hrc>
#include "templwin.hxx"
@@ -25,13 +26,9 @@ namespace SvtDocInfoTable_Impl
{
OUString GetString(int nId)
{
- for (size_t i = 0; i < SAL_N_ELEMENTS(STRARY_SVT_DOCINFO); ++i)
- {
- if (STRARY_SVT_DOCINFO[i].second == nId)
- return DBA_RES(STRARY_SVT_DOCINFO[i].first);
- }
-
- return OUString();
+ auto const found = std::find_if(std::begin(STRARY_SVT_DOCINFO), std::end(STRARY_SVT_DOCINFO)
+ , [nId](auto const & docinfo){ return docinfo.second == nId; });
+ return (found != std::end(STRARY_SVT_DOCINFO)) ? DBA_RES(found->first) : OUString();
}
}
diff --git a/dbaccess/source/ui/app/templwin.hxx b/dbaccess/source/ui/app/templwin.hxx
index 1a3f435af272..8978a6ea3e17 100644
--- a/dbaccess/source/ui/app/templwin.hxx
+++ b/dbaccess/source/ui/app/templwin.hxx
@@ -22,8 +22,7 @@
namespace SvtDocInfoTable_Impl
{
- OUString GetString(int nId);
+OUString GetString(int nId);
};
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/browser/AsynchronousLink.cxx b/dbaccess/source/ui/browser/AsynchronousLink.cxx
index c8a7e500fb95..538ea702c4ac 100644
--- a/dbaccess/source/ui/browser/AsynchronousLink.cxx
+++ b/dbaccess/source/ui/browser/AsynchronousLink.cxx
@@ -22,25 +22,23 @@
// OAsynchronousLink
using namespace dbaui;
-OAsynchronousLink::OAsynchronousLink( const Link<void*,void>& _rHandler )
- :m_aHandler(_rHandler)
- ,m_aEventSafety()
- ,m_aDestructionSafety()
- ,m_nEventId(nullptr)
+OAsynchronousLink::OAsynchronousLink(const Link<void*, void>& _rHandler)
+ : m_aHandler(_rHandler)
+ , m_nEventId(nullptr)
{
}
OAsynchronousLink::~OAsynchronousLink()
{
{
- ::osl::MutexGuard aEventGuard( m_aEventSafety );
- if ( m_nEventId )
+ std::unique_lock aEventGuard(m_aEventSafety);
+ if (m_nEventId)
Application::RemoveUserEvent(m_nEventId);
m_nEventId = nullptr;
}
{
- ::osl::MutexGuard aDestructionGuard( m_aDestructionSafety );
+ std::unique_lock aDestructionGuard(m_aDestructionSafety);
// this is just for the case we're deleted while another thread just handled the event :
// if this other thread called our link while we were deleting the event here, the
// link handler blocked. With leaving the above block it continued, but now we are prevented
@@ -48,28 +46,28 @@ OAsynchronousLink::~OAsynchronousLink()
}
}
-void OAsynchronousLink::Call( void* _pArgument )
+void OAsynchronousLink::Call(void* _pArgument)
{
- ::osl::MutexGuard aEventGuard( m_aEventSafety );
+ std::unique_lock aEventGuard(m_aEventSafety);
if (m_nEventId)
Application::RemoveUserEvent(m_nEventId);
- m_nEventId = Application::PostUserEvent( LINK( this, OAsynchronousLink, OnAsyncCall ), _pArgument );
+ m_nEventId = Application::PostUserEvent(LINK(this, OAsynchronousLink, OnAsyncCall), _pArgument);
}
void OAsynchronousLink::CancelCall()
{
- ::osl::MutexGuard aEventGuard( m_aEventSafety );
- if ( m_nEventId )
- Application::RemoveUserEvent( m_nEventId );
+ std::unique_lock aEventGuard(m_aEventSafety);
+ if (m_nEventId)
+ Application::RemoveUserEvent(m_nEventId);
m_nEventId = nullptr;
}
IMPL_LINK(OAsynchronousLink, OnAsyncCall, void*, _pArg, void)
{
{
- ::osl::MutexGuard aDestructionGuard( m_aDestructionSafety );
+ std::unique_lock aDestructionGuard(m_aDestructionSafety);
{
- ::osl::MutexGuard aEventGuard( m_aEventSafety );
+ std::unique_lock aEventGuard(m_aEventSafety);
if (!m_nEventId)
// our destructor deleted the event just while we are waiting for m_aEventSafety
// -> get outta here
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index c2e175020b4e..3a3927a2dfe7 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -68,7 +68,7 @@
#include <sal/log.hxx>
#include <svx/fmsearch.hxx>
#include <svx/svxdlg.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
@@ -91,27 +91,6 @@ using namespace ::dbtools;
using namespace ::comphelper;
using namespace ::svt;
-#define HANDLE_SQL_ERRORS( action, successflag, context, message ) \
- try \
- { \
- successflag = false; \
- action; \
- successflag = true; \
- } \
- catch(SQLException& e) \
- { \
- SQLException aError = ::dbtools::prependErrorInfo(e, *this, context); \
- css::sdb::SQLErrorEvent aEvent; \
- aEvent.Reason <<= aError; \
- errorOccured(aEvent); \
- } \
- catch(Exception&) \
- { \
- DBG_UNHANDLED_EXCEPTION("dbaccess"); \
- } \
-
-#define DO_SAFE( action, message ) try { action; } catch(Exception&) { SAL_WARN("dbaccess.ui",message); } ;
-
namespace dbaui
{
@@ -146,7 +125,7 @@ class SbaXDataBrowserController::FormControllerImpl
css::frame::XFrameActionListener >
{
friend class SbaXDataBrowserController;
- ::comphelper::OInterfaceContainerHelper2 m_aActivateListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::form::XFormControllerListener> m_aActivateListeners;
SbaXDataBrowserController* m_pOwner;
public:
@@ -417,12 +396,12 @@ void SAL_CALL SbaXDataBrowserController::FormControllerImpl::setMode( const OUSt
OUString SAL_CALL SbaXDataBrowserController::FormControllerImpl::getMode( )
{
- return "DataMode";
+ return u"DataMode"_ustr;
}
Sequence< OUString > SAL_CALL SbaXDataBrowserController::FormControllerImpl::getSupportedModes( )
{
- Sequence< OUString > aModes { "DataMode" };
+ Sequence< OUString > aModes { u"DataMode"_ustr };
return aModes;
}
@@ -457,8 +436,8 @@ Sequence< Reference< css::awt::XControl > > SAL_CALL SbaXDataBrowserController::
{
if (m_pOwner->getBrowserView())
{
- Reference< css::awt::XControl > xGrid = m_pOwner->getBrowserView()->getGridControl();
- return Sequence< Reference< css::awt::XControl > >(&xGrid, 1);
+ rtl::Reference< SbaXGridControl > xGrid = m_pOwner->getBrowserView()->getGridControl();
+ return { Reference< css::awt::XControl >(xGrid) };
}
return Sequence< Reference< css::awt::XControl > >();
}
@@ -500,7 +479,7 @@ Sequence< Type > SAL_CALL SbaXDataBrowserController::getTypes( )
{
return ::comphelper::concatSequences(
SbaXDataBrowserController_Base::getTypes(),
- m_pFormControllerImpl->getTypes()
+ m_xFormControllerImpl->getTypes()
);
}
@@ -525,12 +504,12 @@ Any SAL_CALL SbaXDataBrowserController::queryInterface(const Type& _rType)
SbaXDataBrowserController::SbaXDataBrowserController(const Reference< css::uno::XComponentContext >& _rM)
:SbaXDataBrowserController_Base(_rM)
,m_nRowSetPrivileges(0)
+ ,m_aInvalidateClipboard("dbaui::SbaXDataBrowserController m_aInvalidateClipboard")
,m_aAsyncGetCellFocus(LINK(this, SbaXDataBrowserController, OnAsyncGetCellFocus))
,m_aAsyncDisplayError( LINK( this, SbaXDataBrowserController, OnAsyncDisplayError ) )
,m_sStateSaveRecord(DBA_RES(RID_STR_SAVE_CURRENT_RECORD))
,m_sStateUndoRecord(DBA_RES(RID_STR_UNDO_MODIFY_RECORD))
- ,m_sModuleIdentifier( OUString( "com.sun.star.sdb.DataSourceBrowser" ) )
- ,m_pFormControllerImpl(nullptr)
+ ,m_sModuleIdentifier( u"com.sun.star.sdb.DataSourceBrowser"_ustr )
,m_nFormActionNestingLevel(0)
,m_bLoadCanceled( false )
,m_bCannotSelectUnfiltered( true )
@@ -538,13 +517,11 @@ SbaXDataBrowserController::SbaXDataBrowserController(const Reference< css::uno::
// create the form controller aggregate
osl_atomic_increment(&m_refCount);
{
- m_pFormControllerImpl = new FormControllerImpl(this);
- m_xFormControllerImpl = m_pFormControllerImpl;
+ m_xFormControllerImpl = new FormControllerImpl(this);
m_xFormControllerImpl->setDelegator(*this);
}
osl_atomic_decrement(&m_refCount);
- m_aInvalidateClipboard.SetDebugName("dbaui::SbaXDataBrowserController m_aInvalidateClipboard");
m_aInvalidateClipboard.SetInvokeHandler(LINK(this, SbaXDataBrowserController, OnInvalidateClipboard));
m_aInvalidateClipboard.SetTimeout(300);
}
@@ -691,24 +668,24 @@ void SbaXDataBrowserController::initFormatter()
void SbaXDataBrowserController::describeSupportedFeatures()
{
SbaXDataBrowserController_Base::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:FormSlots/undoRecord", ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FormController/undoRecord", ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:RecUndo", ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FormSlots/saveRecord", ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FormController/saveRecord", ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:RecSave", ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:Save", ID_BROWSER_SAVERECORD, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:RecSearch", SID_FM_SEARCH, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:AutoFilter", SID_FM_AUTOFILTER, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:Refresh", SID_FM_REFRESH, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:OrderCrit", SID_FM_ORDERCRIT, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:RemoveFilterSort", SID_FM_REMOVE_FILTER_SORT,CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FormFiltered", SID_FM_FORM_FILTERED, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FilterCrit", SID_FM_FILTERCRIT, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:Sortup", ID_BROWSER_SORTUP, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:SortDown", ID_BROWSER_SORTDOWN, CommandGroup::CONTROLS );
- implDescribeSupportedFeature( ".uno:FormSlots/deleteRecord", SID_FM_DELETEROWS, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:FormSlots/insertRecord", ID_BROWSER_INSERT_ROW, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:FormSlots/undoRecord"_ustr, ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FormController/undoRecord"_ustr, ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:RecUndo"_ustr, ID_BROWSER_UNDORECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FormSlots/saveRecord"_ustr, ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FormController/saveRecord"_ustr, ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:RecSave"_ustr, ID_BROWSER_SAVERECORD, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:Save"_ustr, ID_BROWSER_SAVERECORD, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:RecSearch"_ustr, SID_FM_SEARCH, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:AutoFilter"_ustr, SID_FM_AUTOFILTER, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:Refresh"_ustr, SID_FM_REFRESH, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:OrderCrit"_ustr, SID_FM_ORDERCRIT, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:RemoveFilterSort"_ustr, SID_FM_REMOVE_FILTER_SORT,CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FormFiltered"_ustr, SID_FM_FORM_FILTERED, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FilterCrit"_ustr, SID_FM_FILTERCRIT, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:Sortup"_ustr, ID_BROWSER_SORTUP, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:SortDown"_ustr, ID_BROWSER_SORTDOWN, CommandGroup::CONTROLS );
+ implDescribeSupportedFeature( u".uno:FormSlots/deleteRecord"_ustr, SID_FM_DELETEROWS, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:FormSlots/insertRecord"_ustr, ID_BROWSER_INSERT_ROW, CommandGroup::INSERT );
}
bool SbaXDataBrowserController::Construct(vcl::Window* pParent)
@@ -735,14 +712,14 @@ bool SbaXDataBrowserController::Construct(vcl::Window* pParent)
// we want to have a grid with a "flat" border
Reference< XPropertySet > xGridSet(m_xGridModel, UNO_QUERY);
if ( xGridSet.is() )
- xGridSet->setPropertyValue(PROPERTY_BORDER, makeAny(sal_Int16(2)));
+ xGridSet->setPropertyValue(PROPERTY_BORDER, Any(sal_Int16(2)));
// marry them
Reference< css::container::XNameContainer > xNameCont(m_xRowSet, UNO_QUERY);
{
OUString sText(DBA_RES(STR_DATASOURCE_GRIDCONTROL_NAME));
- xNameCont->insertByName(sText, makeAny(m_xGridModel));
+ xNameCont->insertByName(sText, Any(m_xGridModel));
}
// create the view
@@ -839,14 +816,14 @@ void SbaXDataBrowserController::RemoveColumnListener(const Reference< XPropertyS
Reference< XRowSet > SbaXDataBrowserController::CreateForm()
{
return Reference< XRowSet > (
- getORB()->getServiceManager()->createInstanceWithContext("com.sun.star.form.component.Form", getORB()),
+ getORB()->getServiceManager()->createInstanceWithContext(u"com.sun.star.form.component.Form"_ustr, getORB()),
UNO_QUERY);
}
Reference< css::form::XFormComponent > SbaXDataBrowserController::CreateGridModel()
{
return Reference< css::form::XFormComponent > (
- getORB()->getServiceManager()->createInstanceWithContext("com.sun.star.form.component.GridControl", getORB()),
+ getORB()->getServiceManager()->createInstanceWithContext(u"com.sun.star.form.component.GridControl"_ustr, getORB()),
UNO_QUERY);
}
@@ -891,14 +868,13 @@ void SbaXDataBrowserController::removeModelListeners(const Reference< XControlMo
void SbaXDataBrowserController::addControlListeners(const Reference< css::awt::XControl > & _xGridControl)
{
// to ge the 'modified' for the current cell
- Reference< XModifyBroadcaster > xBroadcaster(getBrowserView()->getGridControl(), UNO_QUERY);
- if (xBroadcaster.is())
- xBroadcaster->addModifyListener(static_cast<XModifyListener*>(this));
+ rtl::Reference< SbaXGridControl > xGridControl(getBrowserView()->getGridControl() );
+ if (xGridControl.is())
+ xGridControl->addModifyListener(static_cast<XModifyListener*>(this));
// introduce ourself as dispatch provider for the grid
- Reference< XDispatchProviderInterception > xInterception(getBrowserView()->getGridControl(), UNO_QUERY);
- if (xInterception.is())
- xInterception->registerDispatchProviderInterceptor(static_cast<XDispatchProviderInterceptor*>(this));
+ if (xGridControl.is())
+ xGridControl->registerDispatchProviderInterceptor(static_cast<XDispatchProviderInterceptor*>(this));
// add as focus listener to the control (needed for the form controller functionality)
Reference< XWindow > xWindow(_xGridControl, UNO_QUERY);
@@ -925,9 +901,7 @@ void SAL_CALL SbaXDataBrowserController::focusGained(const FocusEvent& /*e*/)
{
// notify our activate listeners (registered on the form controller aggregate)
EventObject aEvt(*this);
- ::comphelper::OInterfaceIteratorHelper2 aIter(m_pFormControllerImpl->m_aActivateListeners);
- while (aIter.hasMoreElements())
- static_cast<XFormControllerListener*>(aIter.next())->formActivated(aEvt);
+ m_xFormControllerImpl->m_aActivateListeners.notifyEach( &css::form::XFormControllerListener::formActivated, aEvt );
}
void SAL_CALL SbaXDataBrowserController::focusLost(const FocusEvent& e)
@@ -951,12 +925,10 @@ void SAL_CALL SbaXDataBrowserController::focusLost(const FocusEvent& e)
// notify the listeners that the "form" we represent has been deactivated
EventObject aEvt(*this);
- ::comphelper::OInterfaceIteratorHelper2 aIter(m_pFormControllerImpl->m_aActivateListeners);
- while (aIter.hasMoreElements())
- static_cast<XFormControllerListener*>(aIter.next())->formDeactivated(aEvt);
+ m_xFormControllerImpl->m_aActivateListeners.notifyEach( &css::form::XFormControllerListener::formDeactivated, aEvt );
// commit the changes of the grid control (as we're deactivated)
- Reference< XBoundComponent > xCommitable(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xCommitable(getBrowserView()->getGridControl());
if (xCommitable.is())
xCommitable->commit();
else
@@ -998,7 +970,7 @@ void SbaXDataBrowserController::disposingColumnModel(const css::lang::EventObjec
void SbaXDataBrowserController::disposing(const EventObject& Source)
{
// if it's a component other than our aggregate, forward it to the aggregate
- if ( m_xFormControllerImpl != Source.Source )
+ if ( uno::Reference<XInterface>(static_cast<cppu::OWeakObject*>(m_xFormControllerImpl.get()), UNO_QUERY) != Source.Source )
{
Reference< XEventListener > xAggListener;
m_xFormControllerImpl->queryAggregation( cppu::UnoType<decltype(xAggListener)>::get() ) >>= xAggListener;
@@ -1010,7 +982,7 @@ void SbaXDataBrowserController::disposing(const EventObject& Source)
if (getBrowserView())
{
Reference< css::awt::XControl > xSourceControl(Source.Source, UNO_QUERY);
- if (xSourceControl == getBrowserView()->getGridControl())
+ if (xSourceControl == cppu::getXWeak(getBrowserView()->getGridControl().get()))
removeControlListeners(getBrowserView()->getGridControl());
}
@@ -1266,11 +1238,11 @@ void SbaXDataBrowserController::errorOccured(const css::sdb::SQLErrorEvent& aEve
if ( m_nFormActionNestingLevel )
{
OSL_ENSURE( !m_aCurrentError.isValid(), "SbaXDataBrowserController::errorOccurred: can handle one error per transaction only!" );
- m_aCurrentError = aInfo;
+ m_aCurrentError = std::move(aInfo);
}
else
{
- m_aCurrentError = aInfo;
+ m_aCurrentError = std::move(aInfo);
m_aAsyncDisplayError.Call();
}
}
@@ -1284,28 +1256,26 @@ sal_Bool SbaXDataBrowserController::approveParameter(const css::form::DatabasePa
return true;
}
- Reference< css::container::XIndexAccess > xParameters = aEvent.Parameters;
SolarMutexGuard aSolarGuard;
// default handling: instantiate an interaction handler and let it handle the parameter request
try
{
// two continuations allowed: OK and Cancel
- OParameterContinuation* pParamValues = new OParameterContinuation;
- OInteractionAbort* pAbort = new OInteractionAbort;
+ rtl::Reference<OParameterContinuation> pParamValues = new OParameterContinuation;
+ rtl::Reference<OInteractionAbort> pAbort = new OInteractionAbort;
// the request
ParametersRequest aRequest;
- aRequest.Parameters = xParameters;
+ aRequest.Parameters = aEvent.Parameters;
aRequest.Connection = getConnection(Reference< XRowSet >(aEvent.Source, UNO_QUERY));
- OInteractionRequest* pParamRequest = new OInteractionRequest(makeAny(aRequest));
- Reference< XInteractionRequest > xParamRequest(pParamRequest);
+ rtl::Reference<OInteractionRequest> pParamRequest = new OInteractionRequest(Any(aRequest));
// some knittings
pParamRequest->addContinuation(pParamValues);
pParamRequest->addContinuation(pAbort);
// create the handler, let it handle the request
Reference< XInteractionHandler2 > xHandler(InteractionHandler::createWithParent(getORB(), getComponentWindow()));
- xHandler->handle(xParamRequest);
+ xHandler->handle(pParamRequest);
if (!pParamValues->wasSelected())
{ // canceled
@@ -1321,8 +1291,7 @@ sal_Bool SbaXDataBrowserController::approveParameter(const css::form::DatabasePa
setLoadingCancelled();
return false;
}
- const PropertyValue* pFinalValues = aFinalValues.getConstArray();
- for (sal_Int32 i=0; i<aFinalValues.getLength(); ++i, ++pFinalValues)
+ for (sal_Int32 i = 0; i < aFinalValues.getLength(); ++i)
{
Reference< XPropertySet > xParam(
aRequest.Parameters->getByIndex(i), css::uno::UNO_QUERY);
@@ -1332,9 +1301,9 @@ sal_Bool SbaXDataBrowserController::approveParameter(const css::form::DatabasePa
#ifdef DBG_UTIL
OUString sName;
xParam->getPropertyValue(PROPERTY_NAME) >>= sName;
- OSL_ENSURE(sName == pFinalValues->Name, "SbaXDataBrowserController::approveParameter: suspicious value names!");
+ OSL_ENSURE(sName == aFinalValues[i].Name, "SbaXDataBrowserController::approveParameter: suspicious value names!");
#endif
- try { xParam->setPropertyValue(PROPERTY_VALUE, pFinalValues->Value); }
+ try { xParam->setPropertyValue(PROPERTY_VALUE, aFinalValues[i].Value); }
catch(Exception&)
{
SAL_WARN("dbaccess.ui", "SbaXDataBrowserController::approveParameter: setting one of the properties failed!");
@@ -1415,7 +1384,7 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const
try
{
Reference< XPropertySet > xRowSetProps( getRowSet(), UNO_QUERY_THROW );
- OSL_VERIFY( xRowSetProps->getPropertyValue("AllowInserts") >>= bAllowInsertions );
+ OSL_VERIFY( xRowSetProps->getPropertyValue(u"AllowInserts"_ustr) >>= bAllowInsertions );
}
catch( const Exception& )
{
@@ -1434,7 +1403,7 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const
try
{
Reference< XPropertySet > xRowSetProps( getRowSet(), UNO_QUERY_THROW );
- OSL_VERIFY( xRowSetProps->getPropertyValue("AllowDeletes") >>= bAllowDeletions );
+ OSL_VERIFY( xRowSetProps->getPropertyValue(u"AllowDeletes"_ustr) >>= bAllowDeletions );
OSL_VERIFY( xRowSetProps->getPropertyValue( PROPERTY_ROWCOUNT ) >>= nRowCount );
OSL_VERIFY( xRowSetProps->getPropertyValue( PROPERTY_ISNEW ) >>= bInsertionRow );
}
@@ -1551,9 +1520,9 @@ FeatureState SbaXDataBrowserController::GetState(sal_uInt16 nId) const
break; // no datasource -> no edit mode
sal_Int32 nDataSourcePrivileges = ::comphelper::getINT32(xDataSourceSet->getPropertyValue(PROPERTY_PRIVILEGES));
- bool bInsertAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::INSERT) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue("AllowInserts"));
- bool bUpdateAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::UPDATE) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue("AllowUpdates"));
- bool bDeleteAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::DELETE) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue("AllowDeletes"));
+ bool bInsertAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::INSERT) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue(u"AllowInserts"_ustr));
+ bool bUpdateAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::UPDATE) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue(u"AllowUpdates"_ustr));
+ bool bDeleteAllowedAndPossible = ((nDataSourcePrivileges & css::sdbcx::Privilege::DELETE) != 0) && ::comphelper::getBOOL(xDataSourceSet->getPropertyValue(u"AllowDeletes"_ustr));
if (!bInsertAllowedAndPossible && !bUpdateAllowedAndPossible && !bDeleteAllowedAndPossible)
break; // no insert/update/delete -> no edit mode
@@ -1609,7 +1578,7 @@ void SbaXDataBrowserController::applyParserOrder(const OUString& _rOldOrder,cons
bool bSuccess = false;
try
{
- xFormSet->setPropertyValue(PROPERTY_ORDER, makeAny(_xParser->getOrder()));
+ xFormSet->setPropertyValue(PROPERTY_ORDER, Any(_xParser->getOrder()));
bSuccess = reloadForm(m_xLoadable);
}
catch(Exception&)
@@ -1618,7 +1587,7 @@ void SbaXDataBrowserController::applyParserOrder(const OUString& _rOldOrder,cons
if (!bSuccess)
{
- xFormSet->setPropertyValue(PROPERTY_ORDER, makeAny(_rOldOrder));
+ xFormSet->setPropertyValue(PROPERTY_ORDER, Any(_rOldOrder));
try
{
@@ -1651,8 +1620,8 @@ void SbaXDataBrowserController::applyParserFilter(const OUString& _rOldFilter, b
try
{
FormErrorHelper aError(this);
- xFormSet->setPropertyValue(PROPERTY_FILTER, makeAny(_xParser->getFilter()));
- xFormSet->setPropertyValue(PROPERTY_HAVING_CLAUSE, makeAny(_xParser->getHavingClause()));
+ xFormSet->setPropertyValue(PROPERTY_FILTER, Any(_xParser->getFilter()));
+ xFormSet->setPropertyValue(PROPERTY_HAVING_CLAUSE, Any(_xParser->getHavingClause()));
xFormSet->setPropertyValue(PROPERTY_APPLYFILTER, css::uno::Any(true));
bSuccess = reloadForm(m_xLoadable);
@@ -1663,8 +1632,8 @@ void SbaXDataBrowserController::applyParserFilter(const OUString& _rOldFilter, b
if (!bSuccess)
{
- xFormSet->setPropertyValue(PROPERTY_FILTER, makeAny(_rOldFilter));
- xFormSet->setPropertyValue(PROPERTY_HAVING_CLAUSE, makeAny(_sOldHaving));
+ xFormSet->setPropertyValue(PROPERTY_FILTER, Any(_rOldFilter));
+ xFormSet->setPropertyValue(PROPERTY_HAVING_CLAUSE, Any(_sOldHaving));
xFormSet->setPropertyValue(PROPERTY_APPLYFILTER, css::uno::Any(_bOldFilterApplied));
try
@@ -1791,7 +1760,7 @@ void SbaXDataBrowserController::ExecuteFilterSortCrit(bool bFilter)
void SbaXDataBrowserController::ExecuteSearch()
{
// calculate the control source of the active field
- Reference< css::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xGrid(getBrowserView()->getGridControl());
OSL_ENSURE(xGrid.is(), "SbaXDataBrowserController::ExecuteSearch : the control should have a css::form::XGrid interface !");
Reference< css::form::XGridPeer > xGridPeer(getBrowserView()->getGridControl()->getPeer(), UNO_QUERY);
@@ -1815,9 +1784,9 @@ void SbaXDataBrowserController::ExecuteSearch()
// prohibit the synchronization of the grid's display with the cursor's position
Reference< XPropertySet > xModelSet(getControlModel(), UNO_QUERY);
OSL_ENSURE(xModelSet.is(), "SbaXDataBrowserController::ExecuteSearch : no model set ?!");
- xModelSet->setPropertyValue("DisplayIsSynchron", css::uno::Any(false));
- xModelSet->setPropertyValue("AlwaysShowCursor", css::uno::Any(true));
- xModelSet->setPropertyValue("CursorColor", makeAny(COL_LIGHTRED));
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, css::uno::Any(false));
+ xModelSet->setPropertyValue(u"AlwaysShowCursor"_ustr, css::uno::Any(true));
+ xModelSet->setPropertyValue(u"CursorColor"_ustr, Any(COL_LIGHTRED));
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
VclPtr<AbstractFmSearchDialog> pDialog;
@@ -1831,9 +1800,9 @@ void SbaXDataBrowserController::ExecuteSearch()
pDialog.disposeAndClear();
// restore the grid's normal operating state
- xModelSet->setPropertyValue("DisplayIsSynchron", css::uno::Any(true));
- xModelSet->setPropertyValue("AlwaysShowCursor", css::uno::Any(false));
- xModelSet->setPropertyValue("CursorColor", Any());
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, css::uno::Any(true));
+ xModelSet->setPropertyValue(u"AlwaysShowCursor"_ustr, css::uno::Any(false));
+ xModelSet->setPropertyValue(u"CursorColor"_ustr, Any());
}
void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< PropertyValue >& _rArgs)
@@ -1967,12 +1936,23 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property
Reference< XSingleSelectQueryComposer > xParser = createParser_nothrow();
const OUString sOldSort = xParser->getOrder();
bool bParserSuccess = false;
- HANDLE_SQL_ERRORS(
- xParser->setOrder(OUString()); xParser->appendOrderByColumn(xField, bSortUp),
- bParserSuccess,
- DBA_RES(SBA_BROWSER_SETTING_ORDER),
- "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !"
- )
+ try
+ {
+ xParser->setOrder(OUString());
+ xParser->appendOrderByColumn(xField, bSortUp);
+ bParserSuccess = true;
+ }
+ catch(SQLException& e)
+ {
+ SQLException aError = ::dbtools::prependErrorInfo(e, *this, DBA_RES(SBA_BROWSER_SETTING_ORDER));
+ css::sdb::SQLErrorEvent aEvent;
+ aEvent.Reason <<= aError;
+ errorOccured(aEvent);
+ }
+ catch(Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess", "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !");
+ }
if (bParserSuccess)
applyParserOrder(sOldSort,xParser);
@@ -2004,8 +1984,22 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property
// -> completely overwrite it, else append one
if (!bApplied)
{
- DO_SAFE( xParser->setFilter( OUString()), "SbaXDataBrowserController::Execute : caught an exception while resetting unapplied filter !" );
- DO_SAFE( xParser->setHavingClause(OUString()), "SbaXDataBrowserController::Execute : caught an exception while resetting unapplied HAVING clause !" );
+ try
+ {
+ xParser->setFilter(OUString());
+ }
+ catch(Exception&)
+ {
+ SAL_WARN("dbaccess.ui", "SbaXDataBrowserController::Execute : caught an exception while resetting unapplied filter !");
+ }
+ try
+ {
+ xParser->setHavingClause(OUString());
+ }
+ catch(Exception&)
+ {
+ SAL_WARN("dbaccess.ui", "SbaXDataBrowserController::Execute : caught an exception while resetting unapplied HAVING clause !");
+ }
}
bool bParserSuccess = false;
@@ -2014,21 +2008,43 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property
if ( bHaving )
{
- HANDLE_SQL_ERRORS(
- xParser->appendHavingClauseByColumn(xField,true,nOp),
- bParserSuccess,
- DBA_RES(SBA_BROWSER_SETTING_FILTER),
- "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !"
- )
+ try
+ {
+ bParserSuccess = false;
+ xParser->appendHavingClauseByColumn(xField,true,nOp);
+ bParserSuccess = true;
+ }
+ catch(SQLException& e)
+ {
+ SQLException aError = ::dbtools::prependErrorInfo(e, *this, DBA_RES(SBA_BROWSER_SETTING_FILTER));
+ css::sdb::SQLErrorEvent aEvent;
+ aEvent.Reason <<= aError;
+ errorOccured(aEvent);
+ }
+ catch(Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess", "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !");
+ }
}
else
{
- HANDLE_SQL_ERRORS(
- xParser->appendFilterByColumn(xField,true,nOp),
- bParserSuccess,
- DBA_RES(SBA_BROWSER_SETTING_FILTER),
- "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !"
- )
+ try
+ {
+ bParserSuccess = false;
+ xParser->appendFilterByColumn(xField,true,nOp);
+ bParserSuccess = true;
+ }
+ catch(SQLException& e)
+ {
+ SQLException aError = ::dbtools::prependErrorInfo(e, *this, DBA_RES(SBA_BROWSER_SETTING_FILTER));
+ css::sdb::SQLErrorEvent aEvent;
+ aEvent.Reason <<= aError;
+ errorOccured(aEvent);
+ }
+ catch(Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess", "SbaXDataBrowserController::Execute : caught an exception while composing the new filter !");
+ }
}
if (bParserSuccess)
@@ -2059,9 +2075,9 @@ void SbaXDataBrowserController::Execute(sal_uInt16 nId, const Sequence< Property
Reference< XPropertySet > xSet(getRowSet(), UNO_QUERY);
if ( xSet.is() )
{
- xSet->setPropertyValue(PROPERTY_FILTER,makeAny(OUString()));
- xSet->setPropertyValue(PROPERTY_HAVING_CLAUSE,makeAny(OUString()));
- xSet->setPropertyValue(PROPERTY_ORDER,makeAny(OUString()));
+ xSet->setPropertyValue(PROPERTY_FILTER,Any(OUString()));
+ xSet->setPropertyValue(PROPERTY_HAVING_CLAUSE,Any(OUString()));
+ xSet->setPropertyValue(PROPERTY_ORDER,Any(OUString()));
}
try
{
@@ -2131,8 +2147,8 @@ bool SbaXDataBrowserController::SaveModified(bool bAskFor)
{
getBrowserView()->getVclControl()->GrabFocus();
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), "dbaccess/ui/savemodifieddialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQry(xBuilder->weld_message_dialog("SaveModifiedDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), u"dbaccess/ui/savemodifieddialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQry(xBuilder->weld_message_dialog(u"SaveModifiedDialog"_ustr));
switch (xQry->run())
{
case RET_NO:
@@ -2179,16 +2195,12 @@ bool SbaXDataBrowserController::CommitCurrent()
if (!getBrowserView())
return true;
- Reference< css::awt::XControl > xActiveControl(getBrowserView()->getGridControl());
- Reference< css::form::XBoundControl > xLockingTest(xActiveControl, UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xActiveControl(getBrowserView()->getGridControl());
+ Reference< css::form::XBoundControl > xLockingTest(static_cast<cppu::OWeakObject*>(xActiveControl.get()), UNO_QUERY);
bool bControlIsLocked = xLockingTest.is() && xLockingTest->getLock();
if (xActiveControl.is() && !bControlIsLocked)
{
- // At first check Control if it supports the IFace
- Reference< css::form::XBoundComponent > xBoundControl(xActiveControl, UNO_QUERY);
- if (!xBoundControl.is())
- xBoundControl.set(xActiveControl->getModel(), UNO_QUERY);
- if (xBoundControl.is() && !xBoundControl->commit())
+ if (!xActiveControl->commit())
return false;
}
return true;
@@ -2260,7 +2272,7 @@ Reference< XPropertySet > SbaXDataBrowserController::getBoundField() const
Reference< XPropertySet > xEmptyReturn;
// get the current column from the grid
- Reference< css::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xGrid(getBrowserView()->getGridControl());
if (!xGrid.is())
return xEmptyReturn;
sal_uInt16 nViewPos = xGrid->getCurrentColumnPosition();
@@ -2280,7 +2292,7 @@ Reference< XPropertySet > SbaXDataBrowserController::getBoundField() const
IMPL_LINK(SbaXDataBrowserController, OnSearchContextRequest, FmSearchContext&, rContext, sal_uInt32)
{
- Reference< css::container::XIndexAccess > xPeerContainer(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xPeerContainer(getBrowserView()->getGridControl());
// check all grid columns for their control source
Reference< css::container::XIndexAccess > xModelColumns(getFormComponent(), UNO_QUERY);
@@ -2335,9 +2347,9 @@ IMPL_LINK(SbaXDataBrowserController, OnFoundData, FmFoundRecordInformation&, rIn
// let the grid sync its display with the cursor
Reference< XPropertySet > xModelSet(getControlModel(), UNO_QUERY);
OSL_ENSURE(xModelSet.is(), "SbaXDataBrowserController::OnFoundData : no model set ?!");
- Any aOld = xModelSet->getPropertyValue("DisplayIsSynchron");
- xModelSet->setPropertyValue("DisplayIsSynchron", css::uno::Any(true));
- xModelSet->setPropertyValue("DisplayIsSynchron", aOld);
+ Any aOld = xModelSet->getPropertyValue(u"DisplayIsSynchron"_ustr);
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, css::uno::Any(true));
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, aOld);
// and move to the field
Reference< css::container::XIndexAccess > aColumnControls(getBrowserView()->getGridControl()->getPeer(), UNO_QUERY);
@@ -2355,7 +2367,7 @@ IMPL_LINK(SbaXDataBrowserController, OnFoundData, FmFoundRecordInformation&, rIn
}
}
- Reference< css::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xGrid(getBrowserView()->getGridControl());
xGrid->setCurrentColumnPosition(nViewPos); //TODO: sal_Int32 -> sal_Int16!
}
@@ -2379,9 +2391,9 @@ IMPL_LINK(SbaXDataBrowserController, OnCanceledNotFound, FmFoundRecordInformatio
// let the grid sync its display with the cursor
Reference< XPropertySet > xModelSet(getControlModel(), UNO_QUERY);
OSL_ENSURE(xModelSet.is(), "SbaXDataBrowserController::OnCanceledNotFound : no model set ?!");
- Any aOld = xModelSet->getPropertyValue("DisplayIsSynchron");
- xModelSet->setPropertyValue("DisplayIsSynchron", css::uno::Any(true));
- xModelSet->setPropertyValue("DisplayIsSynchron", aOld);
+ Any aOld = xModelSet->getPropertyValue(u"DisplayIsSynchron"_ustr);
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, css::uno::Any(true));
+ xModelSet->setPropertyValue(u"DisplayIsSynchron"_ustr, aOld);
}
catch( const Exception& )
{
@@ -2540,7 +2552,7 @@ bool SbaXDataBrowserController::isValidCursor() const
sal_Int16 SbaXDataBrowserController::getCurrentColumnPosition() const
{
- Reference< css::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xGrid(getBrowserView()->getGridControl());
sal_Int16 nViewPos = -1;
try
{
@@ -2553,7 +2565,7 @@ sal_Int16 SbaXDataBrowserController::getCurrentColumnPosition() const
void SbaXDataBrowserController::setCurrentColumnPosition( sal_Int16 _nPos )
{
- Reference< css::form::XGrid > xGrid(getBrowserView()->getGridControl(), UNO_QUERY);
+ rtl::Reference< SbaXGridControl > xGrid(getBrowserView()->getGridControl());
try
{
if ( -1 != _nPos )
diff --git a/dbaccess/source/ui/browser/brwview.cxx b/dbaccess/source/ui/browser/brwview.cxx
index 258c3966cee9..6a15ce0fca39 100644
--- a/dbaccess/source/ui/browser/brwview.cxx
+++ b/dbaccess/source/ui/browser/brwview.cxx
@@ -21,7 +21,6 @@
#include <sbagrid.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <comphelper/types.hxx>
-#include <vcl/fixed.hxx>
#include <vcl/split.hxx>
#include <strings.hxx>
#include <com/sun/star/form/XLoadable.hpp>
@@ -33,7 +32,6 @@
using namespace dbaui;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::form;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
@@ -45,7 +43,7 @@ namespace
{
bool bGrabFocus = false;
SbaGridControl* pVclControl = _pView->getVclControl();
- const Reference< css::awt::XControl >& xGrid = _pView->getGridControl();
+ const rtl::Reference< SbaXGridControl > xGrid = _pView->getGridControl();
if (pVclControl && xGrid.is())
{
bGrabFocus = true;
@@ -71,7 +69,6 @@ UnoDataBrowserView::UnoDataBrowserView( vcl::Window* pParent,
,m_pTreeView(nullptr)
,m_pSplitter(nullptr)
,m_pVclControl(nullptr)
- ,m_pStatus(nullptr)
{
}
@@ -90,10 +87,8 @@ void UnoDataBrowserView::Construct(const Reference< css::awt::XControlModel >& x
OSL_ENSURE(m_xGrid.is(), "UnoDataBrowserView::Construct : could not create a grid control !");
// in design mode (for the moment)
m_xGrid->setDesignMode(true);
-
- Reference< css::awt::XWindow > xGridWindow(m_xGrid, UNO_QUERY);
- xGridWindow->setVisible(true);
- xGridWindow->setEnable(true);
+ m_xGrid->setVisible(true);
+ m_xGrid->setEnable(true);
// introduce the model to the grid
m_xGrid->setModel(xModel);
@@ -124,8 +119,6 @@ void UnoDataBrowserView::dispose()
m_pSplitter.disposeAndClear();
setTreeView(nullptr);
- m_pStatus.disposeAndClear();
-
try
{
::comphelper::disposeComponent(m_xGrid);
@@ -133,8 +126,8 @@ void UnoDataBrowserView::dispose()
}
catch(const Exception&)
{}
- m_pTreeView.clear();
- m_pVclControl.clear();
+ m_pTreeView.reset();
+ m_pVclControl.reset();
ODataView::dispose();
}
@@ -167,10 +160,11 @@ void UnoDataBrowserView::showStatus( const OUString& _rStatus )
hideStatus();
else
{
- if (!m_pStatus)
- m_pStatus = VclPtr<FixedText>::Create(this);
- m_pStatus->SetText(_rStatus);
- m_pStatus->Show();
+ if (!m_pTreeView)
+ return;
+ weld::Label& rLabel = m_pTreeView->GetStatusBar();
+ rLabel.set_label(_rStatus);
+ rLabel.show();
Resize();
PaintImmediately();
}
@@ -178,10 +172,15 @@ void UnoDataBrowserView::showStatus( const OUString& _rStatus )
void UnoDataBrowserView::hideStatus()
{
- if (!m_pStatus || !m_pStatus->IsVisible())
+ if (!m_pTreeView)
+ return;
+ weld::Label& rLabel = m_pTreeView->GetStatusBar();
+ if (!rLabel.get_visible())
+ {
// nothing to do
return;
- m_pStatus->Hide();
+ }
+ rLabel.hide();
Resize();
PaintImmediately();
}
@@ -211,20 +210,12 @@ void UnoDataBrowserView::resizeDocumentView(tools::Rectangle& _rPlayground)
Point aTreeViewPos( aPlaygroundPos );
Size aTreeViewSize( aSplitPos.X(), aPlaygroundSize.Height() );
- // the status pos and size
- if (m_pStatus && m_pStatus->IsVisible())
- {
- Size aStatusSize(aPlaygroundPos.X(), GetTextHeight() + 2);
- aStatusSize = LogicToPixel(aStatusSize, MapMode(MapUnit::MapAppFont));
- aStatusSize.setWidth( aTreeViewSize.Width() - 2 - 2 );
-
- Point aStatusPos( aPlaygroundPos.X() + 2, aTreeViewPos.Y() + aTreeViewSize.Height() - aStatusSize.Height() );
- m_pStatus->SetPosSizePixel( aStatusPos, aStatusSize );
- aTreeViewSize.AdjustHeight( -(aStatusSize.Height()) );
- }
-
// set the size of treelistbox
m_pTreeView->SetPosSizePixel( aTreeViewPos, aTreeViewSize );
+ // Call this to trigger InterimItemWindow::Layout immediately, and
+ // not later on idle so the statusbar will be shown to explain
+ // a long delay on opening databases
+ m_pTreeView->Resize();
//set the size of the splitter
m_pSplitter->SetPosSizePixel( aSplitPos, Size( aSplitSize.Width(), aPlaygroundSize.Height() ) );
@@ -232,9 +223,8 @@ void UnoDataBrowserView::resizeDocumentView(tools::Rectangle& _rPlayground)
}
// set the size of grid control
- Reference< css::awt::XWindow > xGridAsWindow(m_xGrid, UNO_QUERY);
- if (xGridAsWindow.is())
- xGridAsWindow->setPosSize( aSplitPos.X() + aSplitSize.Width(), aPlaygroundPos.Y(),
+ if (m_xGrid.is())
+ m_xGrid->setPosSize( aSplitPos.X() + aSplitSize.Width(), aPlaygroundPos.Y(),
aPlaygroundSize.Width() - aSplitSize.Width() - aSplitPos.X(), aPlaygroundSize.Height(), css::awt::PosSize::POSSIZE);
// just for completeness: there is no space left, we occupied it all ...
@@ -257,11 +247,11 @@ SbaGridControl* UnoDataBrowserView::getVclControl() const
Reference< css::awt::XWindowPeer > xPeer = m_xGrid->getPeer();
if ( xPeer.is() )
{
- SbaXGridPeer* pPeer = comphelper::getUnoTunnelImplementation<SbaXGridPeer>(xPeer);
+ SbaXGridPeer* pPeer = dynamic_cast<SbaXGridPeer*>(xPeer.get());
UnoDataBrowserView* pTHIS = const_cast<UnoDataBrowserView*>(this);
if ( pPeer )
{
- m_pVclControl = static_cast<SbaGridControl*>(pPeer->GetWindow().get());
+ m_pVclControl = static_cast<SbaGridControl*>(pPeer->GetWindow());
pTHIS->startComponentListening(VCLUnoHelper::GetInterface(m_pVclControl));
}
}
@@ -298,7 +288,7 @@ void UnoDataBrowserView::_disposing( const css::lang::EventObject& /*_rSource*/
bool UnoDataBrowserView::PreNotify( NotifyEvent& rNEvt )
{
bool bDone = false;
- if(rNEvt.GetType() == MouseNotifyEvent::KEYINPUT)
+ if(rNEvt.GetType() == NotifyEventType::KEYINPUT)
{
bool bGrabAllowed = isGrabVclControlFocusAllowed(this);
if ( bGrabAllowed )
diff --git a/dbaccess/source/ui/browser/dataview.cxx b/dbaccess/source/ui/browser/dataview.cxx
index b48a3f0adb17..11f9a91df015 100644
--- a/dbaccess/source/ui/browser/dataview.cxx
+++ b/dbaccess/source/ui/browser/dataview.cxx
@@ -23,16 +23,14 @@
#include <comphelper/namedvaluecollection.hxx>
#include <dbaccess/IController.hxx>
#include <svtools/acceleratorexecute.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/event.hxx>
#include <vcl/settings.hxx>
namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::frame;
ODataView::ODataView( vcl::Window* pParent,
@@ -70,8 +68,8 @@ namespace dbaui
{
// draw the background
{
- rRenderContext.Push(PushFlags::LINECOLOR | PushFlags::FILLCOLOR);
- rRenderContext.SetLineColor(COL_TRANSPARENT);
+ rRenderContext.Push(vcl::PushFlags::LINECOLOR | vcl::PushFlags::FILLCOLOR);
+ rRenderContext.SetLineColor();
rRenderContext.SetFillColor(GetSettings().GetStyleSettings().GetFaceColor());
rRenderContext.DrawRect(_rRect);
rRenderContext.Pop();
@@ -98,7 +96,7 @@ namespace dbaui
bool bHandled = false;
switch ( _rNEvt.GetType() )
{
- case MouseNotifyEvent::KEYINPUT:
+ case NotifyEventType::KEYINPUT:
{
const KeyEvent* pKeyEvent = _rNEvt.GetKeyEvent();
const vcl::KeyCode& aKeyCode = pKeyEvent->GetKeyCode();
@@ -107,9 +105,9 @@ namespace dbaui
return true;
[[fallthrough]];
}
- case MouseNotifyEvent::KEYUP:
- case MouseNotifyEvent::MOUSEBUTTONDOWN:
- case MouseNotifyEvent::MOUSEBUTTONUP:
+ case NotifyEventType::KEYUP:
+ case NotifyEventType::MOUSEBUTTONDOWN:
+ case NotifyEventType::MOUSEBUTTONUP:
bHandled = m_xController->interceptUserInput( _rNEvt );
break;
default:
@@ -133,7 +131,7 @@ namespace dbaui
if ( xModel.is() )
{
::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
- aArgs.remove( "Hidden" );
+ aArgs.remove( u"Hidden"_ustr );
xModel->attachResource( xModel->getURL(), aArgs.getPropertyValues() );
}
}
diff --git a/dbaccess/source/ui/browser/dbexchange.cxx b/dbaccess/source/ui/browser/dbexchange.cxx
index d9358ec776ad..dc318dc0f61c 100644
--- a/dbaccess/source/ui/browser/dbexchange.cxx
+++ b/dbaccess/source/ui/browser/dbexchange.cxx
@@ -140,14 +140,14 @@ namespace dbaui
osl_atomic_decrement( &m_refCount );
}
- bool ODataClipboard::WriteObject( ::tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& /*rFlavor*/ )
+ bool ODataClipboard::WriteObject( SvStream& rOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& /*rFlavor*/ )
{
if (nUserObjectId == FORMAT_OBJECT_ID_RTF || nUserObjectId == FORMAT_OBJECT_ID_HTML )
{
ODatabaseImportExport* pExport = static_cast<ODatabaseImportExport*>(pUserObject);
- if ( pExport && rxOStm.is() )
+ if ( pExport )
{
- pExport->setStream(rxOStm.get());
+ pExport->setStream(&rOStm);
return pExport->Write();
}
}
diff --git a/dbaccess/source/ui/browser/dbloader.cxx b/dbaccess/source/ui/browser/dbloader.cxx
index 4f85ca5bc2bc..ba4e206d446c 100644
--- a/dbaccess/source/ui/browser/dbloader.cxx
+++ b/dbaccess/source/ui/browser/dbloader.cxx
@@ -26,21 +26,19 @@
#include <com/sun/star/frame/XFrameLoader.hpp>
#include <com/sun/star/frame/XLoadEventListener.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/sdb/ReportDesign.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/frame/XModule.hpp>
#include <com/sun/star/sdbc/XDataSource.hpp>
#include <comphelper/namedvaluecollection.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/types.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/urlobj.hxx>
+#include <unotools/fcm.hxx>
#include <vcl/svapp.hxx>
using namespace ::com::sun::star;
@@ -94,7 +92,7 @@ org_openoffice_comp_dbu_DBContentLoader_get_implementation(
// XServiceInfo
OUString SAL_CALL DBContentLoader::getImplementationName()
{
- return "org.openoffice.comp.dbu.DBContentLoader";
+ return u"org.openoffice.comp.dbu.DBContentLoader"_ustr;
}
// XServiceInfo
@@ -106,7 +104,7 @@ sal_Bool SAL_CALL DBContentLoader::supportsService(const OUString& ServiceName)
// XServiceInfo
Sequence< OUString > SAL_CALL DBContentLoader::getSupportedServiceNames()
{
- return { "com.sun.star.frame.FrameLoader", "com.sun.star.sdb.ContentLoader" };
+ return { u"com.sun.star.frame.FrameLoader"_ustr, u"com.sun.star.sdb.ContentLoader"_ustr };
}
void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OUString& rURL,
@@ -116,22 +114,17 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
m_xListener = rListener;
m_aArgs = rArgs;
- static const struct ServiceNameToImplName
+ static constexpr struct ServiceNameToImplName
{
- const char* pAsciiServiceName;
- const char* pAsciiImplementationName;
- ServiceNameToImplName( const char* _pService, const char* _pImpl )
- :pAsciiServiceName( _pService )
- ,pAsciiImplementationName( _pImpl )
- {
- }
+ OUString sServiceName;
+ OUString aAsciiImplementationName;
} aImplementations[] = {
- ServiceNameToImplName( URL_COMPONENT_FORMGRIDVIEW, "org.openoffice.comp.dbu.OFormGridView" ),
- ServiceNameToImplName( URL_COMPONENT_DATASOURCEBROWSER, "org.openoffice.comp.dbu.ODatasourceBrowser" ),
- ServiceNameToImplName( URL_COMPONENT_QUERYDESIGN, "org.openoffice.comp.dbu.OQueryDesign" ),
- ServiceNameToImplName( URL_COMPONENT_TABLEDESIGN, "org.openoffice.comp.dbu.OTableDesign" ),
- ServiceNameToImplName( URL_COMPONENT_RELATIONDESIGN, "org.openoffice.comp.dbu.ORelationDesign" ),
- ServiceNameToImplName( URL_COMPONENT_VIEWDESIGN, "org.openoffice.comp.dbu.OViewDesign" )
+ { URL_COMPONENT_FORMGRIDVIEW, u"org.openoffice.comp.dbu.OFormGridView"_ustr },
+ { URL_COMPONENT_DATASOURCEBROWSER, u"org.openoffice.comp.dbu.ODatasourceBrowser"_ustr },
+ { URL_COMPONENT_QUERYDESIGN, u"org.openoffice.comp.dbu.OQueryDesign"_ustr },
+ { URL_COMPONENT_TABLEDESIGN, u"org.openoffice.comp.dbu.OTableDesign"_ustr },
+ { URL_COMPONENT_RELATIONDESIGN, u"org.openoffice.comp.dbu.ORelationDesign"_ustr },
+ { URL_COMPONENT_VIEWDESIGN, u"org.openoffice.comp.dbu.OViewDesign"_ustr }
};
INetURLObject aParser( rURL );
@@ -140,10 +133,10 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
const OUString sComponentURL( aParser.GetMainURL( INetURLObject::DecodeMechanism::ToIUri ) );
for (const ServiceNameToImplName& aImplementation : aImplementations)
{
- if ( sComponentURL.equalsAscii( aImplementation.pAsciiServiceName ) )
+ if ( sComponentURL == aImplementation.sServiceName )
{
xController.set( m_xContext->getServiceManager()->
- createInstanceWithContext( OUString::createFromAscii( aImplementation.pAsciiImplementationName ), m_xContext), UNO_QUERY_THROW );
+ createInstanceWithContext( aImplementation.aAsciiImplementationName, m_xContext), UNO_QUERY_THROW );
break;
}
}
@@ -155,7 +148,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
if ( sComponentURL == URL_COMPONENT_DATASOURCEBROWSER )
{
- bool bDisableBrowser = !aLoadArgs.getOrDefault( "ShowTreeViewButton", true ) // compatibility name
+ bool bDisableBrowser = !aLoadArgs.getOrDefault( u"ShowTreeViewButton"_ustr, true ) // compatibility name
|| !aLoadArgs.getOrDefault( PROPERTY_ENABLE_BROWSER, true );
if ( bDisableBrowser )
@@ -163,7 +156,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
try
{
Reference< XModule > xModule( xController, UNO_QUERY_THROW );
- xModule->setIdentifier( "com.sun.star.sdb.TableDataView" );
+ xModule->setIdentifier( u"com.sun.star.sdb.TableDataView"_ustr );
}
catch( const Exception& )
{
@@ -174,20 +167,18 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
if ( sComponentURL == URL_COMPONENT_REPORTDESIGN )
{
- bool bPreview = aLoadArgs.getOrDefault( "Preview", false );
+ bool bPreview = aLoadArgs.getOrDefault( u"Preview"_ustr, false );
if ( bPreview )
{ // report designs cannot be previewed
if ( rListener.is() )
rListener->loadCancelled( this );
return;
}
- Reference< XModel > xReportModel( aLoadArgs.getOrDefault( "Model", Reference< XModel >() ) );
+ Reference< XModel > xReportModel( aLoadArgs.getOrDefault( u"Model"_ustr, Reference< XModel >() ) );
if ( xReportModel.is() )
{
xController.set( ReportDesign::create( m_xContext ) );
- xController->attachModel( xReportModel );
- xReportModel->connectController( xController.get() );
- xReportModel->setCurrentController( xController.get() );
+ utl::ConnectModelController(xReportModel, xController);
}
}
@@ -195,9 +186,9 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
Reference< XModel > xDatabaseDocument;
if ( bSuccess )
{
- Reference< XDataSource > xDataSource ( aLoadArgs.getOrDefault( "DataSource", Reference< XDataSource >() ) );
- OUString sDataSourceName( aLoadArgs.getOrDefault( "DataSourceName", OUString() ) );
- Reference< XConnection > xConnection ( aLoadArgs.getOrDefault( "ActiveConnection", Reference< XConnection >() ) );
+ Reference< XDataSource > xDataSource ( aLoadArgs.getOrDefault( u"DataSource"_ustr, Reference< XDataSource >() ) );
+ OUString sDataSourceName( aLoadArgs.getOrDefault( u"DataSourceName"_ustr, OUString() ) );
+ Reference< XConnection > xConnection ( aLoadArgs.getOrDefault( u"ActiveConnection"_ustr, Reference< XConnection >() ) );
if ( xDataSource.is() )
{
xDatabaseDocument.set( getDataSourceOrModel( xDataSource ), UNO_QUERY );
@@ -224,17 +215,13 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
try
{
Reference<XInitialization > xIni(xController,UNO_QUERY);
- PropertyValue aFrame("Frame",0,makeAny(rFrame),PropertyState_DIRECT_VALUE);
+ PropertyValue aFrame(u"Frame"_ustr,0,Any(rFrame),PropertyState_DIRECT_VALUE);
Sequence< Any > aInitArgs(m_aArgs.getLength()+1);
Any* pBegin = aInitArgs.getArray();
- Any* pEnd = pBegin + aInitArgs.getLength();
*pBegin <<= aFrame;
- const PropertyValue* pIter = m_aArgs.getConstArray();
- for(++pBegin;pBegin != pEnd;++pBegin,++pIter)
- {
- *pBegin <<= *pIter;
- }
+ std::transform(m_aArgs.begin(), m_aArgs.end(), ++pBegin,
+ [](auto& val) { return Any(val); });
xIni->initialize(aInitArgs);
}
@@ -258,7 +245,7 @@ void SAL_CALL DBContentLoader::load(const Reference< XFrame > & rFrame, const OU
{
if ( xController.is() && rFrame.is() )
{
- rFrame->setComponent( xController->getComponentWindow(), xController.get() );
+ rFrame->setComponent( xController->getComponentWindow(), xController );
xController->attachFrame(rFrame);
}
diff --git a/dbaccess/source/ui/browser/dbtreemodel.hxx b/dbaccess/source/ui/browser/dbtreemodel.hxx
index 2ea11b900975..55b1a3cffcc9 100644
--- a/dbaccess/source/ui/browser/dbtreemodel.hxx
+++ b/dbaccess/source/ui/browser/dbtreemodel.hxx
@@ -29,11 +29,6 @@
// tables holds the nameaccess for the tables
// table holds the table
-#define CONTAINER_QUERIES sal_uLong( 0 )
-#define CONTAINER_TABLES sal_uLong( 1 )
-
-namespace com::sun::star::lang { class XMultiServiceFactory; }
-
namespace dbaui
{
struct DBTreeListUserData
diff --git a/dbaccess/source/ui/browser/dsEntriesNoExp.cxx b/dbaccess/source/ui/browser/dsEntriesNoExp.cxx
index d98f9dedadc2..f2c4dc949c64 100644
--- a/dbaccess/source/ui/browser/dsEntriesNoExp.cxx
+++ b/dbaccess/source/ui/browser/dsEntriesNoExp.cxx
@@ -23,14 +23,11 @@
#include <unodatbr.hxx>
#include <browserids.hxx>
-#include <imageprovider.hxx>
#include <osl/diagnose.h>
#include <dbtreelistbox.hxx>
#include "dbtreemodel.hxx"
using namespace ::com::sun::star::frame;
-using namespace ::dbtools;
-using namespace ::svx;
namespace dbaui
{
@@ -56,59 +53,9 @@ OUString SbaTableQueryBrowser::GetEntryText(const weld::TreeIter& rEntry) const
SbaTableQueryBrowser::EntryType SbaTableQueryBrowser::getEntryType(const weld::TreeIter& rEntry) const
{
- std::unique_ptr<weld::TreeIter> xRootEntry = m_pTreeView->GetRootLevelParent(&rEntry);
- weld::TreeView& rTreeView = m_pTreeView->GetWidget();
-
- if (rTreeView.iter_compare(*xRootEntry, rEntry) == 0)
- return etDatasource;
-
- std::unique_ptr<weld::TreeIter> xEntryParent(rTreeView.make_iterator(&rEntry));
- if (!rTreeView.iter_parent(*xEntryParent))
- xEntryParent.reset();
-
- std::unique_ptr<weld::TreeIter> xTables;
- std::unique_ptr<weld::TreeIter> xQueries;
-
- std::unique_ptr<weld::TreeIter> xContainer = rTreeView.make_iterator(xRootEntry.get());
- if (rTreeView.iter_children(*xContainer))
- {
- // 1st child is queries
- xQueries = rTreeView.make_iterator(xContainer.get());
-
- if (rTreeView.iter_next_sibling(*xContainer))
- {
- // 2nd child is tables
- xTables = rTreeView.make_iterator(xContainer.get());
- }
- }
-
- if (xTables && rTreeView.iter_compare(*xTables, rEntry) == 0)
- return etTableContainer;
-
- if (xQueries && rTreeView.iter_compare(*xQueries, rEntry) == 0)
- return etQueryContainer;
-
- if (xTables && xEntryParent && rTreeView.iter_compare(*xTables, *xEntryParent) == 0)
- return etTableOrView;
-
- if (xQueries && xEntryParent)
- {
- if (rTreeView.iter_compare(*xQueries, *xEntryParent) == 0)
- {
- DBTreeListUserData* pEntryData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rEntry).toUInt64());
- if (pEntryData)
- return pEntryData->eType;
- return etQuery;
- }
-
- while (rTreeView.iter_compare(*xEntryParent, *xQueries) != 0)
- {
- if (!rTreeView.iter_parent(*xEntryParent))
- return etUnknown;
- }
- }
-
- return etQueryContainer;
+ const weld::TreeView& rTreeView = m_pTreeView->GetWidget();
+ DBTreeListUserData* pEntryData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rEntry));
+ return pEntryData ? pEntryData->eType : etUnknown;
}
void SbaTableQueryBrowser::select(const weld::TreeIter* pEntry, bool bSelect)
@@ -159,28 +106,28 @@ void SbaTableQueryBrowser::describeSupportedFeatures()
{
SbaXDataBrowserController::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:Title", ID_BROWSER_TITLE );
+ implDescribeSupportedFeature( u".uno:Title"_ustr, ID_BROWSER_TITLE );
if ( !m_bShowMenu )
{
- implDescribeSupportedFeature( ".uno:DSBEditDB", ID_TREE_EDIT_DATABASE );
- implDescribeSupportedFeature( ".uno:DSBCloseConnection", ID_TREE_CLOSE_CONN );
- implDescribeSupportedFeature( ".uno:DSBAdministrate", ID_TREE_ADMINISTRATE );
+ implDescribeSupportedFeature( u".uno:DSBEditDB"_ustr, ID_TREE_EDIT_DATABASE );
+ implDescribeSupportedFeature( u".uno:DSBCloseConnection"_ustr, ID_TREE_CLOSE_CONN );
+ implDescribeSupportedFeature( u".uno:DSBAdministrate"_ustr, ID_TREE_ADMINISTRATE );
- implDescribeSupportedFeature( ".uno:DSBrowserExplorer", ID_BROWSER_EXPLORER, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DSBrowserExplorer"_ustr, ID_BROWSER_EXPLORER, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DSBFormLetter", ID_BROWSER_FORMLETTER, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DSBInsertColumns", ID_BROWSER_INSERTCOLUMNS, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DSBInsertContent", ID_BROWSER_INSERTCONTENT, CommandGroup::INSERT );
- implDescribeSupportedFeature( ".uno:DSBDocumentDataSource", ID_BROWSER_DOCUMENT_DATASOURCE, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DSBFormLetter"_ustr, ID_BROWSER_FORMLETTER, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:DSBInsertColumns"_ustr, ID_BROWSER_INSERTCOLUMNS, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DSBInsertContent"_ustr, ID_BROWSER_INSERTCONTENT, CommandGroup::INSERT );
+ implDescribeSupportedFeature( u".uno:DSBDocumentDataSource"_ustr, ID_BROWSER_DOCUMENT_DATASOURCE, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DataSourceBrowser/FormLetter", ID_BROWSER_FORMLETTER );
- implDescribeSupportedFeature( ".uno:DataSourceBrowser/InsertColumns", ID_BROWSER_INSERTCOLUMNS );
- implDescribeSupportedFeature( ".uno:DataSourceBrowser/InsertContent", ID_BROWSER_INSERTCONTENT );
- implDescribeSupportedFeature( ".uno:DataSourceBrowser/DocumentDataSource", ID_BROWSER_DOCUMENT_DATASOURCE );
+ implDescribeSupportedFeature( u".uno:DataSourceBrowser/FormLetter"_ustr, ID_BROWSER_FORMLETTER );
+ implDescribeSupportedFeature( u".uno:DataSourceBrowser/InsertColumns"_ustr, ID_BROWSER_INSERTCOLUMNS );
+ implDescribeSupportedFeature( u".uno:DataSourceBrowser/InsertContent"_ustr, ID_BROWSER_INSERTCONTENT );
+ implDescribeSupportedFeature( u".uno:DataSourceBrowser/DocumentDataSource"_ustr, ID_BROWSER_DOCUMENT_DATASOURCE );
}
- implDescribeSupportedFeature( ".uno:CloseWin", ID_BROWSER_CLOSE, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DBRebuildData", ID_BROWSER_REFRESH_REBUILD, CommandGroup::DATA );
+ implDescribeSupportedFeature( u".uno:CloseWin"_ustr, ID_BROWSER_CLOSE, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:DBRebuildData"_ustr, ID_BROWSER_REFRESH_REBUILD, CommandGroup::DATA );
}
sal_Int32 SbaTableQueryBrowser::getDatabaseObjectType( EntryType _eType )
diff --git a/dbaccess/source/ui/browser/dsbrowserDnD.cxx b/dbaccess/source/ui/browser/dsbrowserDnD.cxx
index 7d51a5abf8fb..774f43b4c7a4 100644
--- a/dbaccess/source/ui/browser/dsbrowserDnD.cxx
+++ b/dbaccess/source/ui/browser/dsbrowserDnD.cxx
@@ -31,7 +31,7 @@
#include <connectivity/dbtools.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <svx/dataaccessdescriptor.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <vcl/svapp.hxx>
@@ -43,16 +43,8 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::sdbcx;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::util;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::container;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::form;
- using namespace ::com::sun::star::io;
- using namespace ::com::sun::star::i18n;
- using namespace ::com::sun::star::task;
using namespace ::com::sun::star::datatransfer;
using namespace ::dbtools;
using namespace ::svx;
@@ -232,7 +224,7 @@ namespace dbaui
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
rTreeView.all_foreach([this, &rTreeView](weld::TreeIter& rEntryLoop){
// clear the user data of the tree model
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rEntryLoop).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rEntryLoop));
if (pData)
{
rTreeView.set_id(rEntryLoop, OUString());
diff --git a/dbaccess/source/ui/browser/exsrcbrw.cxx b/dbaccess/source/ui/browser/exsrcbrw.cxx
index 966ab8b90859..ffcf40e3c91d 100644
--- a/dbaccess/source/ui/browser/exsrcbrw.cxx
+++ b/dbaccess/source/ui/browser/exsrcbrw.cxx
@@ -23,14 +23,12 @@
#include <com/sun/star/form/XLoadable.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <formadapter.hxx>
-#include <comphelper/processfactory.hxx>
#include <strings.hxx>
#include <o3tl/any.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <sal/log.hxx>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::beans;
@@ -62,7 +60,6 @@ Any SAL_CALL SbaExternalSourceBrowser::queryInterface(const Type& _rType)
SbaExternalSourceBrowser::SbaExternalSourceBrowser(const Reference< css::uno::XComponentContext >& _rM)
:SbaXDataBrowserController(_rM)
,m_aModifyListeners(getMutex())
- ,m_pDataSourceImpl(nullptr)
,m_bInQueryDispatch( false )
{
@@ -74,12 +71,12 @@ SbaExternalSourceBrowser::~SbaExternalSourceBrowser()
css::uno::Sequence<OUString> SAL_CALL SbaExternalSourceBrowser::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.FormGridView" };
+ return { u"com.sun.star.sdb.FormGridView"_ustr };
}
OUString SAL_CALL SbaExternalSourceBrowser::getImplementationName()
{
- return "org.openoffice.comp.dbu.OFormGridView";
+ return u"org.openoffice.comp.dbu.OFormGridView"_ustr;
}
Reference< XRowSet > SbaExternalSourceBrowser::CreateForm()
@@ -106,9 +103,7 @@ void SbaExternalSourceBrowser::modified(const css::lang::EventObject& aEvent)
// multiplex this event to all my listeners
css::lang::EventObject aEvt(*this);
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aModifyListeners);
- while (aIt.hasMoreElements())
- static_cast< css::util::XModifyListener*>(aIt.next())->modified(aEvt);
+ m_aModifyListeners.notifyEach( &css::util::XModifyListener::modified, aEvt );
}
void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, const Sequence< css::beans::PropertyValue>& aArgs)
@@ -162,7 +157,7 @@ void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, con
// set its properties
if (xNewColProperties.is())
{
- for (const css::beans::PropertyValue& rControlProp : std::as_const(aControlProps))
+ for (const css::beans::PropertyValue& rControlProp : aControlProps)
{
try
{
@@ -185,7 +180,7 @@ void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, con
nControlPos = 0;
// append the column
- xColContainer->insertByIndex(nControlPos, makeAny(xNewCol));
+ xColContainer->insertByIndex(nControlPos, Any(xNewCol));
}
else if ( aURL.Complete == ".uno:FormSlots/ClearView" )
{
diff --git a/dbaccess/source/ui/browser/formadapter.cxx b/dbaccess/source/ui/browser/formadapter.cxx
index 9620d5840a34..e0288c51dc38 100644
--- a/dbaccess/source/ui/browser/formadapter.cxx
+++ b/dbaccess/source/ui/browser/formadapter.cxx
@@ -89,13 +89,42 @@ Any SAL_CALL SbaXFormAdapter::queryInterface(const Type& _rType)
void SbaXFormAdapter::StopListening()
{
// log off all our multiplexers
- STOP_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, css::form::XLoadable, m_xMainForm);
- STOP_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, css::sdbc::XRowSet, m_xMainForm);
- STOP_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, css::sdb::XRowSetApproveBroadcaster, m_xMainForm);
- STOP_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, css::sdb::XSQLErrorBroadcaster, m_xMainForm);
- STOP_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, css::form::XSubmit, m_xMainForm);
- STOP_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, css::form::XReset, m_xMainForm);
-
+ if (m_aLoadListeners.getLength())
+ {
+ css::uno::Reference< css::form::XLoadable > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeLoadListener(&m_aLoadListeners);
+ }
+ if (m_aRowSetListeners.getLength())
+ {
+ css::uno::Reference< css::sdbc::XRowSet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeRowSetListener(&m_aRowSetListeners);
+ }
+ if (m_aRowSetApproveListeners.getLength())
+ {
+ css::uno::Reference< css::sdb::XRowSetApproveBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeRowSetApproveListener(&m_aRowSetApproveListeners);
+ }
+ if (m_aErrorListeners.getLength())
+ {
+ css::uno::Reference< css::sdb::XSQLErrorBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeSQLErrorListener(&m_aErrorListeners);
+ }
+ if (m_aSubmitListeners.getLength())
+ {
+ css::uno::Reference< css::form::XSubmit > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeSubmitListener(&m_aSubmitListeners);
+ }
+ if (m_aResetListeners.getLength())
+ {
+ css::uno::Reference< css::form::XReset > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeResetListener(&m_aResetListeners);
+ }
if (m_aParameterListeners.getLength())
{
Reference< css::form::XDatabaseParameterBroadcaster > xBroadcaster(m_xMainForm, UNO_QUERY);
@@ -103,8 +132,20 @@ void SbaXFormAdapter::StopListening()
xBroadcaster->removeParameterListener(&m_aParameterListeners);
}
- STOP_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
- STOP_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
+ if (m_aPropertyChangeListeners.getOverallLen())
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removePropertyChangeListener(OUString(), &m_aPropertyChangeListeners);
+ }
+
+ if (m_aVetoablePropertyChangeListeners.getOverallLen())
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeVetoableChangeListener(OUString(), &m_aVetoablePropertyChangeListeners);
+ }
+
if (m_aPropertiesChangeListeners.getLength())
{
Reference< css::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY);
@@ -121,12 +162,42 @@ void SbaXFormAdapter::StopListening()
void SbaXFormAdapter::StartListening()
{
// log off all our multiplexers
- START_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, css::form::XLoadable, m_xMainForm);
- START_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, css::sdbc::XRowSet, m_xMainForm);
- START_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, css::sdb::XRowSetApproveBroadcaster, m_xMainForm);
- START_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, css::sdb::XSQLErrorBroadcaster, m_xMainForm);
- START_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, css::form::XSubmit, m_xMainForm);
- START_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, css::form::XReset, m_xMainForm);
+ if (m_aLoadListeners.getLength())
+ {
+ css::uno::Reference< css::form::XLoadable > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addLoadListener(&m_aLoadListeners);
+ }
+ if (m_aRowSetListeners.getLength())
+ {
+ css::uno::Reference< css::sdbc::XRowSet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addRowSetListener(&m_aRowSetListeners);
+ }
+ if (m_aRowSetApproveListeners.getLength())
+ {
+ css::uno::Reference< css::sdb::XRowSetApproveBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addRowSetApproveListener(&m_aRowSetApproveListeners);
+ }
+ if (m_aErrorListeners.getLength())
+ {
+ css::uno::Reference< css::sdb::XSQLErrorBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addSQLErrorListener(&m_aErrorListeners);
+ }
+ if (m_aSubmitListeners.getLength())
+ {
+ css::uno::Reference< css::form::XSubmit > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addSubmitListener(&m_aSubmitListeners);
+ }
+ if (m_aResetListeners.getLength())
+ {
+ css::uno::Reference< css::form::XReset > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addResetListener(&m_aResetListeners);
+ }
if (m_aParameterListeners.getLength())
{
@@ -135,13 +206,25 @@ void SbaXFormAdapter::StartListening()
xBroadcaster->addParameterListener(&m_aParameterListeners);
}
- START_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
- START_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
+ if (m_aPropertyChangeListeners.getOverallLen())
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addPropertyChangeListener(OUString(), &m_aPropertyChangeListeners);
+ }
+
+ if (m_aVetoablePropertyChangeListeners.getOverallLen())
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addVetoableChangeListener(OUString(), &m_aVetoablePropertyChangeListeners);
+ }
+
if (m_aPropertiesChangeListeners.getLength())
{
Reference< css::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY);
if (xBroadcaster.is())
- xBroadcaster->addPropertiesChangeListener(css::uno::Sequence<OUString>{""}, &m_aPropertiesChangeListeners);
+ xBroadcaster->addPropertiesChangeListener(css::uno::Sequence<OUString>{u""_ustr}, &m_aPropertiesChangeListeners);
}
// log off ourself
@@ -166,9 +249,7 @@ void SbaXFormAdapter::AttachForm(const Reference< css::sdbc::XRowSet >& xNewMast
if (xLoadable->isLoaded())
{
css::lang::EventObject aEvt(*this);
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aLoadListeners);
- while (aIt.hasMoreElements())
- static_cast< css::form::XLoadListener*>(aIt.next())->unloaded(aEvt);
+ m_aLoadListeners.notifyEach( &css::form::XLoadListener::unloaded, aEvt );
}
}
@@ -184,9 +265,7 @@ void SbaXFormAdapter::AttachForm(const Reference< css::sdbc::XRowSet >& xNewMast
if (xLoadable->isLoaded())
{
css::lang::EventObject aEvt(*this);
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aLoadListeners);
- while (aIt.hasMoreElements())
- static_cast< css::form::XLoadListener*>(aIt.next())->loaded(aEvt);
+ m_aLoadListeners.notifyEach( &css::form::XLoadListener::loaded, aEvt );
}
// TODO : perhaps _all_ of our listeners should be notified about our new state
@@ -218,8 +297,6 @@ sal_Int32 SAL_CALL SbaXFormAdapter::findColumn(const OUString& columnName)
return xIface->findColumn(columnName);
::dbtools::throwInvalidColumnException( columnName, *this );
- assert(false);
- return 0; // Never reached
}
// css::sdbcx::XColumnsSupplier
@@ -736,7 +813,26 @@ void SAL_CALL SbaXFormAdapter::execute()
m_xMainForm->execute();
}
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdbc, RowSetListener, m_aRowSetListeners, css::sdbc::XRowSet, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addRowSetListener(const css::uno::Reference< css::sdbc::XRowSetListener >& l)
+{
+ m_aRowSetListeners.addInterface(l);
+ if (m_aRowSetListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdbc::XRowSet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addRowSetListener(&m_aRowSetListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeRowSetListener(const css::uno::Reference< css::sdbc::XRowSetListener >& l)
+{
+ if (m_aRowSetListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdbc::XRowSet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeRowSetListener(&m_aRowSetListeners);
+ }
+ m_aRowSetListeners.removeInterface(l);
+}
// css::sdbcx::XDeleteRows
Sequence<sal_Int32> SAL_CALL SbaXFormAdapter::deleteRows(const Sequence< Any >& rows)
@@ -764,10 +860,48 @@ void SAL_CALL SbaXFormAdapter::clearWarnings()
}
// css::sdb::XRowSetApproveBroadcaster
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, RowSetApproveListener, m_aRowSetApproveListeners, css::sdb::XRowSetApproveBroadcaster, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addRowSetApproveListener(const css::uno::Reference< css::sdb::XRowSetApproveListener >& l)
+{
+ m_aRowSetApproveListeners.addInterface(l);
+ if (m_aRowSetApproveListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdb::XRowSetApproveBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addRowSetApproveListener(&m_aRowSetApproveListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeRowSetApproveListener(const css::uno::Reference< css::sdb::XRowSetApproveListener >& l)
+{
+ if (m_aRowSetApproveListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdb::XRowSetApproveBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeRowSetApproveListener(&m_aRowSetApproveListeners);
+ }
+ m_aRowSetApproveListeners.removeInterface(l);
+}
// css::sdbc::XSQLErrorBroadcaster
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, SQLErrorListener, m_aErrorListeners, css::sdb::XSQLErrorBroadcaster, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addSQLErrorListener(const css::uno::Reference< css::sdb::XSQLErrorListener >& l)
+{
+ m_aErrorListeners.addInterface(l);
+ if (m_aErrorListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdb::XSQLErrorBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addSQLErrorListener(&m_aErrorListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeSQLErrorListener(const css::uno::Reference< css::sdb::XSQLErrorListener >& l)
+{
+ if (m_aErrorListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::sdb::XSQLErrorBroadcaster > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeSQLErrorListener(&m_aErrorListeners);
+ }
+ m_aErrorListeners.removeInterface(l);
+}
// css::sdb::XResultSetAccess
Reference< css::sdbc::XResultSet > SAL_CALL SbaXFormAdapter::createResultSet()
@@ -808,7 +942,26 @@ sal_Bool SAL_CALL SbaXFormAdapter::isLoaded()
return false;
}
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, LoadListener, m_aLoadListeners, css::form::XLoadable, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addLoadListener(const css::uno::Reference< css::form::XLoadListener>& l)
+{
+ m_aLoadListeners.addInterface(l);
+ if (m_aLoadListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XLoadable > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addLoadListener(&m_aLoadListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeLoadListener(const css::uno::Reference< css::form::XLoadListener >& l)
+{
+ if (m_aLoadListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XLoadable > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeLoadListener(&m_aLoadListeners);
+ }
+ m_aLoadListeners.removeInterface(l);
+}
// css::sdbc::XParameters
void SAL_CALL SbaXFormAdapter::setNull(sal_Int32 parameterIndex, sal_Int32 sqlType)
@@ -1014,7 +1167,26 @@ void SAL_CALL SbaXFormAdapter::submit(const Reference< css::awt::XControl >& aCo
xSubmit->submit(aControl, aMouseEvt);
}
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, SubmitListener, m_aSubmitListeners, css::form::XSubmit, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addSubmitListener(const css::uno::Reference< css::form::XSubmitListener >& l)
+{
+ m_aSubmitListeners.addInterface(l);
+ if (m_aSubmitListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XSubmit > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addSubmitListener(&m_aSubmitListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeSubmitListener(const css::uno::Reference< css::form::XSubmitListener >& l)
+{
+ if (m_aSubmitListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XSubmit > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeSubmitListener(&m_aSubmitListeners);
+ }
+ m_aSubmitListeners.removeInterface(l);
+}
// css::awt::XTabControllerModel
sal_Bool SAL_CALL SbaXFormAdapter::getGroupControl()
@@ -1099,6 +1271,8 @@ void SAL_CALL SbaXFormAdapter::dispose()
xComp->dispose();
}
m_aChildren.clear();
+ m_xMainForm.clear();
+ m_xParent.clear();
}
void SAL_CALL SbaXFormAdapter::addEventListener(const Reference< css::lang::XEventListener >& xListener)
@@ -1119,7 +1293,7 @@ void SAL_CALL SbaXFormAdapter::setFastPropertyValue(sal_Int32 nHandle, const Any
if (m_nNamePropHandle == nHandle)
{
- if (aValue.getValueType().getTypeClass() != TypeClass_STRING)
+ if (aValue.getValueTypeClass() != TypeClass_STRING)
{
throw css::lang::IllegalArgumentException();
}
@@ -1134,9 +1308,8 @@ void SAL_CALL SbaXFormAdapter::setFastPropertyValue(sal_Int32 nHandle, const Any
aValue >>= m_sName;
- ::cppu::OInterfaceIteratorHelper aIt(*m_aPropertyChangeListeners.getContainer(PROPERTY_NAME));
- while (aIt.hasMoreElements())
- static_cast< css::beans::XPropertyChangeListener*>(aIt.next())->propertyChange(aEvt);
+ m_aPropertyChangeListeners.getContainer(PROPERTY_NAME)->notifyEach(
+ &XPropertyChangeListener::propertyChange, aEvt );
return;
}
@@ -1150,7 +1323,7 @@ Any SAL_CALL SbaXFormAdapter::getFastPropertyValue(sal_Int32 nHandle)
OSL_ENSURE(xSet.is(), "SAL_CALL SbaXFormAdapter::getFastPropertyValue : have no master form !");
if (m_nNamePropHandle == nHandle)
- return makeAny(m_sName);
+ return Any(m_sName);
return xSet->getFastPropertyValue(nHandle);
}
@@ -1163,7 +1336,7 @@ OUString SAL_CALL SbaXFormAdapter::getName()
void SAL_CALL SbaXFormAdapter::setName(const OUString& aName)
{
- setPropertyValue(PROPERTY_NAME, makeAny(aName));
+ setPropertyValue(PROPERTY_NAME, Any(aName));
}
// css::io::XPersistObject
@@ -1227,13 +1400,14 @@ Sequence< Any > SAL_CALL SbaXFormAdapter::getPropertyValues(const Sequence< OUSt
return Sequence< Any>(aPropertyNames.getLength());
Sequence< Any> aReturn = xSet->getPropertyValues(aPropertyNames);
+ auto aReturnRange = asNonConstRange(aReturn);
// search for (and fake) the NAME property
OSL_ENSURE(aReturn.getLength() == aPropertyNames.getLength(), "SAL_CALL SbaXFormAdapter::getPropertyValues : the main form returned an invalid-length sequence !");
for (sal_Int32 i=0; i<aPropertyNames.getLength(); ++i)
if (aPropertyNames[i] == PROPERTY_NAME)
{
- aReturn[i] <<= m_sName;
+ aReturnRange[i] <<= m_sName;
break;
}
@@ -1248,7 +1422,7 @@ void SAL_CALL SbaXFormAdapter::addPropertiesChangeListener(const Sequence< OUStr
{
Reference< css::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY);
if (xBroadcaster.is())
- xBroadcaster->addPropertiesChangeListener(Sequence< OUString>{""}, &m_aPropertiesChangeListeners);
+ xBroadcaster->addPropertiesChangeListener(Sequence< OUString>{u""_ustr}, &m_aPropertiesChangeListeners);
}
}
@@ -1297,14 +1471,54 @@ Any SAL_CALL SbaXFormAdapter::getPropertyValue(const OUString& PropertyName)
return xSet->getPropertyValue(PropertyName);
}
-IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, PropertyChangeListener, m_aPropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
-IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, VetoableChangeListener, m_aVetoablePropertyChangeListeners, css::beans::XPropertySet, m_xMainForm);
+void SAL_CALL SbaXFormAdapter::addPropertyChangeListener(const OUString& rName, const css::uno::Reference< css::beans::XPropertyChangeListener>& l )
+{
+ m_aPropertyChangeListeners.addInterface(rName, l);
+ if (m_aPropertyChangeListeners.getOverallLen() == 1)
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addPropertyChangeListener(OUString(), &m_aPropertyChangeListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removePropertyChangeListener(const OUString& rName, const css::uno::Reference< css::beans::XPropertyChangeListener>& l )
+{
+ if (m_aPropertyChangeListeners.getOverallLen() == 1)
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removePropertyChangeListener(OUString(), &m_aPropertyChangeListeners);
+ }
+ m_aPropertyChangeListeners.removeInterface(rName, l);
+}
+
+void SAL_CALL SbaXFormAdapter::addVetoableChangeListener(const OUString& rName, const css::uno::Reference< css::beans::XVetoableChangeListener>& l )
+{
+ m_aVetoablePropertyChangeListeners.addInterface(rName, l);
+ if (m_aVetoablePropertyChangeListeners.getOverallLen() == 1)
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addVetoableChangeListener(OUString(), &m_aVetoablePropertyChangeListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeVetoableChangeListener(const OUString& rName, const css::uno::Reference< css::beans::XVetoableChangeListener>& l )
+{
+ if (m_aVetoablePropertyChangeListeners.getOverallLen() == 1)
+ {
+ css::uno::Reference< css::beans::XPropertySet > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeVetoableChangeListener(OUString(), &m_aVetoablePropertyChangeListeners);
+ }
+ m_aVetoablePropertyChangeListeners.removeInterface(rName, l);
+}
+
// css::util::XCancellable
void SAL_CALL SbaXFormAdapter::cancel()
{
Reference< css::util::XCancellable > xCancel(m_xMainForm, UNO_QUERY);
- if (xCancel.is())
+ if (!xCancel.is())
return;
xCancel->cancel();
}
@@ -1326,7 +1540,7 @@ Sequence< css::beans::PropertyState> SAL_CALL SbaXFormAdapter::getPropertyStates
// set them all to DEFAULT
Sequence< css::beans::PropertyState> aReturn(aPropertyName.getLength());
- for (css::beans::PropertyState& rState : aReturn)
+ for (css::beans::PropertyState& rState : asNonConstRange(aReturn))
rState = css::beans::PropertyState_DEFAULT_VALUE;
return aReturn;
}
@@ -1354,13 +1568,32 @@ void SAL_CALL SbaXFormAdapter::reset()
xReset->reset();
}
-IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, ResetListener, m_aResetListeners, css::form::XReset, m_xMainForm)
+void SAL_CALL SbaXFormAdapter::addResetListener(const css::uno::Reference< css::form::XResetListener >& l)
+{
+ m_aResetListeners.addInterface(l);
+ if (m_aResetListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XReset > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->addResetListener(&m_aResetListeners);
+ }
+}
+void SAL_CALL SbaXFormAdapter::removeResetListener(const css::uno::Reference< css::form::XResetListener >& l)
+{
+ if (m_aResetListeners.getLength() == 1)
+ {
+ css::uno::Reference< css::form::XReset > xBroadcaster(m_xMainForm, css::uno::UNO_QUERY);
+ if (xBroadcaster.is())
+ xBroadcaster->removeResetListener(&m_aResetListeners);
+ }
+ m_aResetListeners.removeInterface(l);
+}
// css::container::XNameContainer
void SbaXFormAdapter::implInsert(const Any& aElement, sal_Int32 nIndex, const OUString* pNewElName)
{
// extract the form component
- if (aElement.getValueType().getTypeClass() != TypeClass_INTERFACE)
+ if (aElement.getValueTypeClass() != TypeClass_INTERFACE)
{
throw css::lang::IllegalArgumentException();
}
@@ -1376,12 +1609,12 @@ void SbaXFormAdapter::implInsert(const Any& aElement, sal_Int32 nIndex, const OU
if (!xElementSet.is())
{
throw css::lang::IllegalArgumentException();
- }
+ }
OUString sName;
try
{
if (pNewElName)
- xElementSet->setPropertyValue(PROPERTY_NAME, makeAny(*pNewElName));
+ xElementSet->setPropertyValue(PROPERTY_NAME, Any(*pNewElName));
xElementSet->getPropertyValue(PROPERTY_NAME) >>= sName;
}
@@ -1411,9 +1644,7 @@ void SbaXFormAdapter::implInsert(const Any& aElement, sal_Int32 nIndex, const OU
aEvt.Source = *this;
aEvt.Accessor <<= nIndex;
aEvt.Element <<= xElement;
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aContainerListeners);
- while (aIt.hasMoreElements())
- static_cast< css::container::XContainerListener*>(aIt.next())->elementInserted(aEvt);
+ m_aContainerListeners.notifyEach( &XContainerListener::elementInserted, aEvt );
}
sal_Int32 SbaXFormAdapter::implGetPos(const OUString& rName)
@@ -1462,7 +1693,7 @@ Any SAL_CALL SbaXFormAdapter::getByName(const OUString& aName)
{
throw css::container::NoSuchElementException();
}
- return makeAny(m_aChildren[nPos]);
+ return Any(m_aChildren[nPos]);
}
Sequence< OUString > SAL_CALL SbaXFormAdapter::getElementNames()
@@ -1516,10 +1747,7 @@ void SAL_CALL SbaXFormAdapter::removeByIndex(sal_Int32 _rIndex)
css::container::ContainerEvent aEvt;
aEvt.Source = *this;
aEvt.Element <<= xAffected;
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aContainerListeners);
- while (aIt.hasMoreElements())
- static_cast< css::container::XContainerListener*>(aIt.next())->elementRemoved(aEvt);
-
+ m_aContainerListeners.notifyEach( &XContainerListener::elementRemoved, aEvt );
}
// css::container::XIndexReplace
@@ -1529,7 +1757,7 @@ void SAL_CALL SbaXFormAdapter::replaceByIndex(sal_Int32 _rIndex, const Any& Elem
throw css::lang::IndexOutOfBoundsException();
// extract the form component
- if (Element.getValueType().getTypeClass() != TypeClass_INTERFACE)
+ if (Element.getValueTypeClass() != TypeClass_INTERFACE)
{
throw css::lang::IllegalArgumentException();
}
@@ -1545,7 +1773,7 @@ void SAL_CALL SbaXFormAdapter::replaceByIndex(sal_Int32 _rIndex, const Any& Elem
if (!xElementSet.is())
{
throw css::lang::IllegalArgumentException();
- }
+ }
OUString sName;
try
{
@@ -1579,9 +1807,7 @@ void SAL_CALL SbaXFormAdapter::replaceByIndex(sal_Int32 _rIndex, const Any& Elem
aEvt.Element <<= xElement;
aEvt.ReplacedElement <<= xOld;
- ::comphelper::OInterfaceIteratorHelper2 aIt(m_aContainerListeners);
- while (aIt.hasMoreElements())
- static_cast< css::container::XContainerListener*>(aIt.next())->elementReplaced(aEvt);
+ m_aContainerListeners.notifyEach( &XContainerListener::elementReplaced, aEvt );
}
// css::container::XIndexAccess
@@ -1596,7 +1822,7 @@ Any SAL_CALL SbaXFormAdapter::getByIndex(sal_Int32 _rIndex)
throw css::lang::IndexOutOfBoundsException();
Reference< css::form::XFormComponent > xElement = *(m_aChildren.begin() + _rIndex);
- return makeAny(xElement);
+ return Any(xElement);
}
// css::container::XContainer
diff --git a/dbaccess/source/ui/browser/genericcontroller.cxx b/dbaccess/source/ui/browser/genericcontroller.cxx
index 4c12a3ae7b51..77aaafdbadfb 100644
--- a/dbaccess/source/ui/browser/genericcontroller.cxx
+++ b/dbaccess/source/ui/browser/genericcontroller.cxx
@@ -18,13 +18,12 @@
*/
#include <dbaccess/genericcontroller.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
#include <browserids.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <dbaccess/dataview.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <vcl/stdtext.hxx>
#include <framework/titlehelper.hxx>
@@ -38,7 +37,6 @@
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/ui/XSidebarProvider.hpp>
-#include <sfx2/userinputinterception.hxx>
#include <datasourceconnector.hxx>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
@@ -58,7 +56,6 @@ using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::frame::status;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::task;
@@ -67,45 +64,22 @@ using namespace ::com::sun::star::ui;
using namespace ::dbtools;
using namespace ::comphelper;
-#define ALL_FEATURES -1
-#define FIRST_USER_DEFINED_FEATURE ( std::numeric_limits< sal_uInt16 >::max() - 1000 )
-#define LAST_USER_DEFINED_FEATURE ( std::numeric_limits< sal_uInt16 >::max() )
+constexpr auto ALL_FEATURES = -1;
typedef std::unordered_map< sal_Int16, sal_Int16 > CommandHashMap;
namespace dbaui
{
-namespace {
-
-// UserDefinedFeatures
-class UserDefinedFeatures
-{
-public:
- explicit UserDefinedFeatures( const Reference< XController >& _rxController );
-
- void execute( const URL& _rFeatureURL, const Sequence< PropertyValue>& _rArgs );
-
-private:
- css::uno::WeakReference< XController > m_aController;
-};
-
-}
-
-UserDefinedFeatures::UserDefinedFeatures( const Reference< XController >& _rxController )
- :m_aController( _rxController )
-{
-}
-
-void UserDefinedFeatures::execute( const URL& _rFeatureURL, const Sequence< PropertyValue>& _rArgs )
+void OGenericUnoController::executeUserDefinedFeatures( const URL& _rFeatureURL, const Sequence< PropertyValue>& _rArgs )
{
try
{
- Reference< XController > xController( Reference< XController >(m_aController), UNO_SET_THROW );
+ Reference< XController > xController( getXController(), UNO_SET_THROW );
Reference< XDispatchProvider > xDispatchProvider( xController->getFrame(), UNO_QUERY_THROW );
Reference< XDispatch > xDispatch( xDispatchProvider->queryDispatch(
_rFeatureURL,
- "_self",
+ u"_self"_ustr,
FrameSearchFlag::AUTO
) );
@@ -124,22 +98,10 @@ void UserDefinedFeatures::execute( const URL& _rFeatureURL, const Sequence< Prop
}
}
-// OGenericUnoController_Data
-struct OGenericUnoController_Data
-{
- ::sfx2::UserInputInterception m_aUserInputInterception;
- UserDefinedFeatures m_aUserDefinedFeatures;
-
- OGenericUnoController_Data( OGenericUnoController& _rController, ::osl::Mutex& _rMutex )
- :m_aUserInputInterception( _rController, _rMutex )
- ,m_aUserDefinedFeatures( _rController.getXController() )
- {
- }
-};
-
// OGenericUnoController
OGenericUnoController::OGenericUnoController(const Reference< XComponentContext >& _rM)
:OGenericUnoController_Base( getMutex() )
+ ,m_aUserInputInterception(*this, getMutex())
,m_pView(nullptr)
#ifdef DBG_UTIL
,m_bDescribingSupportedFeatures( false )
@@ -153,12 +115,6 @@ OGenericUnoController::OGenericUnoController(const Reference< XComponentContext
,m_bCurrentlyModified(false)
,m_bExternalTitle(false)
{
- osl_atomic_increment( &m_refCount );
- {
- m_pData.reset( new OGenericUnoController_Data( *this, getMutex() ) );
- }
- osl_atomic_decrement( &m_refCount );
-
try
{
@@ -198,7 +154,7 @@ bool OGenericUnoController::Construct(vcl::Window* /*pParent*/)
{
SAL_WARN("dbaccess.ui","OGenericUnoController::Construct: could not create (or start listening at) the database context!");
// at least notify the user. Though the whole component does not make any sense without the database context ...
- ShowServiceNotAvailableError(getFrameWeld(), "com.sun.star.sdb.DatabaseContext", true);
+ ShowServiceNotAvailableError(getFrameWeld(), u"com.sun.star.sdb.DatabaseContext", true);
}
return true;
@@ -210,7 +166,7 @@ IMPL_LINK_NOARG(OGenericUnoController, OnAsyncInvalidateAll, void*, void)
InvalidateFeature_Impl();
}
-void OGenericUnoController::impl_initialize()
+void OGenericUnoController::impl_initialize(const ::comphelper::NamedValueCollection& /*rArguments*/)
{
}
@@ -219,49 +175,46 @@ void SAL_CALL OGenericUnoController::initialize( const Sequence< Any >& aArgumen
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
- Reference< XWindow > xParent;
Reference< XFrame > xFrame;
- PropertyValue aValue;
- const Any* pIter = aArguments.getConstArray();
- const Any* pEnd = pIter + aArguments.getLength();
-
- for ( ; pIter != pEnd; ++pIter )
+ for (auto& arg : aArguments)
{
- if ( ( *pIter >>= aValue ) && aValue.Name == "Frame" )
+ PropertyValue aValue;
+ if (arg >>= aValue)
{
- xFrame.set(aValue.Value,UNO_QUERY_THROW);
- }
- else if ( ( *pIter >>= aValue ) && aValue.Name == "Preview" )
- {
- aValue.Value >>= m_bPreview;
- m_bReadOnly = true;
+ if (aValue.Name == "Frame")
+ {
+ xFrame.set(aValue.Value, UNO_QUERY_THROW);
+ }
+ else if (aValue.Name == "Preview")
+ {
+ aValue.Value >>= m_bPreview;
+ m_bReadOnly = true;
+ }
}
}
try
{
if ( !xFrame.is() )
- throw IllegalArgumentException("need a frame", *this, 1 );
+ throw IllegalArgumentException(u"need a frame"_ustr, *this, 1 );
- xParent = xFrame->getContainerWindow();
- VCLXWindow* pParentComponent = comphelper::getUnoTunnelImplementation<VCLXWindow>(xParent);
- VclPtr< vcl::Window > pParentWin = pParentComponent ? pParentComponent->GetWindow() : VclPtr< vcl::Window >();
+ Reference<XWindow> xParent = xFrame->getContainerWindow();
+ VclPtr<vcl::Window> pParentWin = VCLUnoHelper::GetWindow(xParent);
if (!pParentWin)
{
- throw IllegalArgumentException("Parent window is null", *this, 1 );
+ throw IllegalArgumentException(u"Parent window is null"_ustr, *this, 1 );
}
- m_aInitParameters.assign( aArguments );
Construct( pParentWin );
ODataView* pView = getView();
if ( !pView )
- throw RuntimeException("unable to create a view", *this );
+ throw RuntimeException(u"unable to create a view"_ustr, *this );
if ( m_bReadOnly || m_bPreview )
pView->EnableInput( false );
- impl_initialize();
+ impl_initialize(::comphelper::NamedValueCollection(aArguments));
}
catch(Exception&)
{
@@ -271,12 +224,12 @@ void SAL_CALL OGenericUnoController::initialize( const Sequence< Any >& aArgumen
}
}
-void SAL_CALL OGenericUnoController::acquire( ) throw ()
+void SAL_CALL OGenericUnoController::acquire( ) noexcept
{
OGenericUnoController_Base::acquire();
}
-void SAL_CALL OGenericUnoController::release( ) throw ()
+void SAL_CALL OGenericUnoController::release( ) noexcept
{
OGenericUnoController_Base::release();
}
@@ -328,7 +281,7 @@ Reference<XSidebarProvider> SAL_CALL OGenericUnoController::getSidebar()
OUString SAL_CALL OGenericUnoController::getViewControllerName()
{
- return "Default";
+ return u"Default"_ustr;
}
Sequence< PropertyValue > SAL_CALL OGenericUnoController::getCreationArguments()
@@ -375,11 +328,11 @@ namespace
// #i68216# is the bug which requests to fix the code in Draw which relies on
// framework's implementation details
if ( !!_rFeatureState.sTitle )
- _out_rStates.push_back( makeAny( *_rFeatureState.sTitle ) );
- if ( !!_rFeatureState.bChecked )
- _out_rStates.push_back( makeAny( *_rFeatureState.bChecked ) );
- if ( !!_rFeatureState.bInvisible )
- _out_rStates.push_back( makeAny( Visibility( !*_rFeatureState.bInvisible ) ) );
+ _out_rStates.push_back( Any( *_rFeatureState.sTitle ) );
+ if ( _rFeatureState.bChecked.has_value() )
+ _out_rStates.push_back( Any( *_rFeatureState.bChecked ) );
+ if ( _rFeatureState.bInvisible.has_value() )
+ _out_rStates.push_back( Any( Visibility( !*_rFeatureState.bInvisible ) ) );
if ( _rFeatureState.aValue.hasValue() )
_out_rStates.push_back( _rFeatureState.aValue );
if ( _out_rStates.empty() )
@@ -434,7 +387,7 @@ void OGenericUnoController::ImplBroadcastFeatureState(const OUString& _rFeature,
// it is possible that listeners are registered or revoked while
// we are notifying them, so we must use a copy of m_arrStatusListener, not
// m_arrStatusListener itself
- Dispatch aNotifyLoop( m_arrStatusListener );
+ std::vector<DispatchTarget> aNotifyLoop( m_arrStatusListener );
for (auto const& elem : aNotifyLoop)
{
@@ -461,15 +414,10 @@ bool OGenericUnoController::isFeatureSupported( sal_Int32 _nId )
void OGenericUnoController::InvalidateFeature_Impl()
{
-#ifdef DBG_UTIL
- static sal_Int32 s_nRecursions = 0;
- ++s_nRecursions;
-#endif
-
bool bEmpty = true;
FeatureListener aNextFeature;
{
- ::osl::MutexGuard aGuard( m_aFeatureMutex);
+ std::unique_lock aGuard( m_aFeatureMutex);
bEmpty = m_aFeaturesToInvalidate.empty();
if (!bEmpty)
aNextFeature = m_aFeaturesToInvalidate.front();
@@ -502,16 +450,12 @@ void OGenericUnoController::InvalidateFeature_Impl()
ImplBroadcastFeatureState( aFeaturePos->first, aNextFeature.xListener, aNextFeature.bForceBroadcast );
}
- ::osl::MutexGuard aGuard( m_aFeatureMutex);
+ std::unique_lock aGuard( m_aFeatureMutex);
m_aFeaturesToInvalidate.pop_front();
bEmpty = m_aFeaturesToInvalidate.empty();
if (!bEmpty)
aNextFeature = m_aFeaturesToInvalidate.front();
}
-
-#ifdef DBG_UTIL
- --s_nRecursions;
-#endif
}
void OGenericUnoController::ImplInvalidateFeature( sal_Int32 _nId, const Reference< XStatusListener >& _xListener, bool _bForceBroadcast )
@@ -535,7 +479,7 @@ void OGenericUnoController::ImplInvalidateFeature( sal_Int32 _nId, const Referen
bool bWasEmpty;
{
- ::osl::MutexGuard aGuard( m_aFeatureMutex );
+ std::unique_lock aGuard( m_aFeatureMutex );
bWasEmpty = m_aFeaturesToInvalidate.empty();
m_aFeaturesToInvalidate.push_back( aListener );
}
@@ -561,7 +505,7 @@ void OGenericUnoController::InvalidateAll_Impl()
ImplBroadcastFeatureState( supportedFeature.first, nullptr, true );
{
- ::osl::MutexGuard aGuard( m_aFeatureMutex);
+ std::unique_lock aGuard( m_aFeatureMutex);
OSL_ENSURE(m_aFeaturesToInvalidate.size(), "OGenericUnoController::InvalidateAll_Impl: to be called from within InvalidateFeature_Impl only!");
m_aFeaturesToInvalidate.pop_front();
if(!m_aFeaturesToInvalidate.empty())
@@ -598,19 +542,13 @@ Reference< XDispatch > OGenericUnoController::queryDispatch(const URL& aURL, co
Sequence< Reference< XDispatch > > OGenericUnoController::queryDispatches(const Sequence< DispatchDescriptor >& aDescripts)
{
- Sequence< Reference< XDispatch > > aReturn;
- sal_Int32 nLen = aDescripts.getLength();
- if ( nLen )
+ Sequence< Reference< XDispatch > > aReturn(aDescripts.getLength());
+ if (aDescripts.hasElements())
{
- aReturn.realloc( nLen );
- Reference< XDispatch >* pReturn = aReturn.getArray();
- const Reference< XDispatch >* pReturnEnd = aReturn.getArray() + nLen;
- const DispatchDescriptor* pDescripts = aDescripts.getConstArray();
-
- for ( ; pReturn != pReturnEnd; ++ pReturn, ++pDescripts )
- {
- *pReturn = queryDispatch( pDescripts->FeatureURL, pDescripts->FrameName, pDescripts->SearchFlags );
- }
+ std::transform(aDescripts.begin(), aDescripts.end(), aReturn.getArray(),
+ [this](auto& desc) {
+ return queryDispatch(desc.FeatureURL, desc.FrameName, desc.SearchFlags);
+ });
}
return aReturn;
@@ -667,14 +605,12 @@ void OGenericUnoController::removeStatusListener(const Reference< XStatusListene
{
if (_rURL.Complete.isEmpty())
{
- m_arrStatusListener.erase(std::remove_if(m_arrStatusListener.begin(), m_arrStatusListener.end(),
- [&aListener](const DispatchTarget& rCurrent) { return rCurrent.xListener == aListener; }),
- m_arrStatusListener.end());
+ std::erase_if(m_arrStatusListener, [&aListener](const DispatchTarget& rCurrent) { return rCurrent.xListener == aListener; });
}
else
{
// remove the listener only for the given URL
- Dispatch::iterator iterSearch = std::find_if(m_arrStatusListener.begin(), m_arrStatusListener.end(),
+ auto iterSearch = std::find_if(m_arrStatusListener.begin(), m_arrStatusListener.end(),
[&aListener, &_rURL](const DispatchTarget& rCurrent) {
return (rCurrent.xListener == aListener) && (rCurrent.aURL.Complete == _rURL.Complete); });
if (iterSearch != m_arrStatusListener.end())
@@ -688,18 +624,14 @@ void OGenericUnoController::removeStatusListener(const Reference< XStatusListene
SupportedFeatures::const_iterator aIter = m_aSupportedFeatures.find(_rURL.Complete);
if (aIter != m_aSupportedFeatures.end())
{ // clear the cache for that feature
- StateCache::const_iterator aCachePos = m_aStateCache.find( aIter->second.nFeatureId );
+ auto aCachePos = m_aStateCache.find( aIter->second.nFeatureId );
if ( aCachePos != m_aStateCache.end() )
m_aStateCache.erase( aCachePos );
}
// now remove the listener from the deque
- ::osl::MutexGuard aGuard( m_aFeatureMutex );
- m_aFeaturesToInvalidate.erase(
- std::remove_if( m_aFeaturesToInvalidate.begin(),
- m_aFeaturesToInvalidate.end(),
- FindFeatureListener(aListener))
- ,m_aFeaturesToInvalidate.end());
+ std::unique_lock aGuard( m_aFeatureMutex );
+ std::erase_if( m_aFeaturesToInvalidate, FindFeatureListener(aListener));
}
void OGenericUnoController::releaseNumberForComponent()
@@ -721,7 +653,7 @@ void OGenericUnoController::disposing()
{
EventObject aDisposeEvent;
aDisposeEvent.Source = static_cast<XWeak*>(this);
- Dispatch aStatusListener = m_arrStatusListener;
+ std::vector<DispatchTarget> aStatusListener = m_arrStatusListener;
for (auto const& statusListener : aStatusListener)
{
statusListener.xListener->disposing(aDisposeEvent);
@@ -731,7 +663,7 @@ void OGenericUnoController::disposing()
m_xDatabaseContext = nullptr;
{
- ::osl::MutexGuard aGuard( m_aFeatureMutex);
+ std::unique_lock aGuard( m_aFeatureMutex);
m_aAsyncInvalidateAll.CancelCall();
m_aFeaturesToInvalidate.clear();
}
@@ -747,7 +679,6 @@ void OGenericUnoController::disposing()
m_xSlaveDispatcher = nullptr;
m_xTitleHelper.clear();
m_xUrlTransformer.clear();
- m_aInitParameters.clear();
}
void SAL_CALL OGenericUnoController::addEventListener( const Reference< XEventListener >& xListener )
@@ -769,16 +700,17 @@ void OGenericUnoController::frameAction(const FrameActionEvent& aEvent)
m_aCurrentFrame.frameAction( aEvent.Action );
}
-void OGenericUnoController::implDescribeSupportedFeature( const char* _pAsciiCommandURL,
+void OGenericUnoController::implDescribeSupportedFeature( const OUString& _rCommandURL,
sal_uInt16 _nFeatureId, sal_Int16 _nCommandGroup )
{
#ifdef DBG_UTIL
OSL_ENSURE( m_bDescribingSupportedFeatures, "OGenericUnoController::implDescribeSupportedFeature: bad timing for this call!" );
#endif
- OSL_PRECOND( _nFeatureId < FIRST_USER_DEFINED_FEATURE, "OGenericUnoController::implDescribeSupportedFeature: invalid feature id!" );
+ OSL_PRECOND( _nFeatureId < ( std::numeric_limits< sal_uInt16 >::max() - 1000 ), // FIRST_USER_DEFINED_FEATURE
+ "OGenericUnoController::implDescribeSupportedFeature: invalid feature id!" );
ControllerFeature aFeature;
- aFeature.Command = OUString::createFromAscii( _pAsciiCommandURL );
+ aFeature.Command = _rCommandURL;
aFeature.nFeatureId = _nFeatureId;
aFeature.GroupId = _nCommandGroup;
@@ -792,11 +724,11 @@ void OGenericUnoController::implDescribeSupportedFeature( const char* _pAsciiCom
void OGenericUnoController::describeSupportedFeatures()
{
// add all supported features
- implDescribeSupportedFeature( ".uno:Copy", ID_BROWSER_COPY, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Cut", ID_BROWSER_CUT, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Paste", ID_BROWSER_PASTE, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:ClipboardFormatItems", ID_BROWSER_CLIPBOARD_FORMAT_ITEMS );
- implDescribeSupportedFeature( ".uno:DSBEditDoc", ID_BROWSER_EDITDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:Copy"_ustr, ID_BROWSER_COPY, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Cut"_ustr, ID_BROWSER_CUT, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Paste"_ustr, ID_BROWSER_PASTE, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:ClipboardFormatItems"_ustr, ID_BROWSER_CLIPBOARD_FORMAT_ITEMS );
+ implDescribeSupportedFeature( u".uno:DSBEditDoc"_ustr, ID_BROWSER_EDITDOC, CommandGroup::DOCUMENT );
}
FeatureState OGenericUnoController::GetState( sal_uInt16 _nId ) const
@@ -828,7 +760,7 @@ void OGenericUnoController::Execute( sal_uInt16 _nId, const Sequence< PropertyVa
// user defined features can be handled by dispatch interceptors resp. protocol handlers only.
// So, we need to do a queryDispatch, and dispatch the URL
- m_pData->m_aUserDefinedFeatures.execute( getURLForId( _nId ), _rArgs );
+ executeUserDefinedFeatures( getURLForId( _nId ), _rArgs );
}
URL OGenericUnoController::getURLForId(sal_Int32 _nId) const
@@ -853,7 +785,11 @@ URL OGenericUnoController::getURLForId(sal_Int32 _nId) const
bool OGenericUnoController::isUserDefinedFeature( const sal_uInt16 _nFeatureId )
{
- return ( _nFeatureId >= FIRST_USER_DEFINED_FEATURE ) && ( _nFeatureId < LAST_USER_DEFINED_FEATURE );
+ return
+ (_nFeatureId >= ( std::numeric_limits< sal_uInt16 >::max() - 1000 )) // test if >= FIRST_USER_DEFINED_FEATURE
+ &&
+ ( _nFeatureId < (std::numeric_limits< sal_uInt16 >::max())) // test if < LAST_USER_DEFINED_FEATURE
+ ;
}
bool OGenericUnoController::isUserDefinedFeature( const OUString& _rFeatureURL ) const
@@ -932,7 +868,7 @@ Reference< XLayoutManager > OGenericUnoController::getLayoutManager(const Refere
{
try
{
- xLayoutManager.set(xPropSet->getPropertyValue("LayoutManager"),UNO_QUERY);
+ xLayoutManager.set(xPropSet->getPropertyValue(u"LayoutManager"_ustr),UNO_QUERY);
}
catch ( Exception& )
{
@@ -947,8 +883,8 @@ void OGenericUnoController::loadMenu(const Reference< XFrame >& _xFrame)
if ( xLayoutManager.is() )
{
xLayoutManager->lock();
- xLayoutManager->createElement( "private:resource/menubar/menubar" );
- xLayoutManager->createElement( "private:resource/toolbar/toolbar" );
+ xLayoutManager->createElement( u"private:resource/menubar/menubar"_ustr );
+ xLayoutManager->createElement( u"private:resource/toolbar/toolbar"_ustr );
xLayoutManager->unlock();
xLayoutManager->doLayout();
}
@@ -1059,21 +995,16 @@ Reference< awt::XWindow> OGenericUnoController::getTopMostContainerWindow() cons
return xWindow;
}
-Reference< XTitle > OGenericUnoController::impl_getTitleHelper_throw()
+Reference< XTitle > OGenericUnoController::impl_getTitleHelper_throw(bool bCreateIfNecessary)
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
- if ( ! m_xTitleHelper.is ())
+ if (!m_xTitleHelper.is() && bCreateIfNecessary)
{
Reference< XUntitledNumbers > xUntitledProvider(getPrivateModel(), UNO_QUERY );
- Reference< XController > xThis(static_cast< XController* >(this), UNO_QUERY_THROW);
- ::framework::TitleHelper* pHelper = new ::framework::TitleHelper( m_xContext );
- m_xTitleHelper.set( static_cast< ::cppu::OWeakObject* >(pHelper), UNO_QUERY_THROW);
-
- pHelper->setOwner (xThis );
- pHelper->connectWithUntitledNumbers (xUntitledProvider);
+ m_xTitleHelper = new ::framework::TitleHelper( m_xContext, Reference< XController >(this), xUntitledProvider );
}
return m_xTitleHelper;
@@ -1107,7 +1038,7 @@ void SAL_CALL OGenericUnoController::addTitleChangeListener(const Reference< XTi
void SAL_CALL OGenericUnoController::removeTitleChangeListener(const Reference< XTitleChangeListener >& xListener)
{
- Reference< XTitleChangeBroadcaster > xBroadcaster(impl_getTitleHelper_throw(), UNO_QUERY);
+ Reference< XTitleChangeBroadcaster > xBroadcaster(impl_getTitleHelper_throw(false), UNO_QUERY);
if (xBroadcaster.is ())
xBroadcaster->removeTitleChangeListener (xListener);
}
@@ -1116,23 +1047,23 @@ void SAL_CALL OGenericUnoController::removeTitleChangeListener(const Reference<
void SAL_CALL OGenericUnoController::addKeyHandler( const Reference< XKeyHandler >& _rxHandler )
{
if ( _rxHandler.is() )
- m_pData->m_aUserInputInterception.addKeyHandler( _rxHandler );
+ m_aUserInputInterception.addKeyHandler( _rxHandler );
}
void SAL_CALL OGenericUnoController::removeKeyHandler( const Reference< XKeyHandler >& _rxHandler )
{
- m_pData->m_aUserInputInterception.removeKeyHandler( _rxHandler );
+ m_aUserInputInterception.removeKeyHandler( _rxHandler );
}
void SAL_CALL OGenericUnoController::addMouseClickHandler( const Reference< XMouseClickHandler >& _rxHandler )
{
if ( _rxHandler.is() )
- m_pData->m_aUserInputInterception.addMouseClickHandler( _rxHandler );
+ m_aUserInputInterception.addMouseClickHandler( _rxHandler );
}
void SAL_CALL OGenericUnoController::removeMouseClickHandler( const Reference< XMouseClickHandler >& _rxHandler )
{
- m_pData->m_aUserInputInterception.removeMouseClickHandler( _rxHandler );
+ m_aUserInputInterception.removeMouseClickHandler( _rxHandler );
}
void OGenericUnoController::executeChecked(sal_uInt16 _nCommandId, const Sequence< PropertyValue >& aArgs)
@@ -1158,14 +1089,14 @@ Reference< XController > OGenericUnoController::getXController()
bool OGenericUnoController::interceptUserInput( const NotifyEvent& _rEvent )
{
- return m_pData->m_aUserInputInterception.handleNotifyEvent( _rEvent );
+ return m_aUserInputInterception.handleNotifyEvent( _rEvent );
}
bool OGenericUnoController::isCommandChecked(sal_uInt16 _nCommandId) const
{
FeatureState aState = GetState( _nCommandId );
- return aState.bChecked && *aState.bChecked;
+ return aState.bChecked.has_value() && *aState.bChecked;
}
bool OGenericUnoController::isCommandEnabled( const OUString& _rCompleteCommandURL ) const
@@ -1219,6 +1150,11 @@ void SAL_CALL OGenericUnoController::dispose()
{
SolarMutexGuard aSolarGuard;
OGenericUnoController_Base::dispose();
+ m_xUrlTransformer.clear();
+ m_xSlaveDispatcher.clear();
+ m_xMasterDispatcher.clear();
+ m_xDatabaseContext.clear();
+ m_xTitleHelper.clear();
}
weld::Window* OGenericUnoController::getFrameWeld() const
diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index 5e986fbb38e6..58017ff4c24c 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -18,7 +18,6 @@
*/
#include <core_resource.hxx>
-#include <helpids.h>
#include <sot/exchange.hxx>
@@ -34,26 +33,22 @@
#include <com/sun/star/view/XSelectionSupplier.hpp>
#include <com/sun/star/awt/XTextComponent.hpp>
#include <com/sun/star/sdbc/XResultSetUpdate.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <svl/numuno.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/svapp.hxx>
-#include <svl/zforlist.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <connectivity/dbtools.hxx>
-#include <comphelper/processfactory.hxx>
+#include <comphelper/propertyvalue.hxx>
#include <comphelper/types.hxx>
#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
-#include <browserids.hxx>
#include <strings.hrc>
#include <strings.hxx>
#include <dbexchange.hxx>
-#include <TableRowExchange.hxx>
-#include <TableRow.hxx>
#include <svtools/stringtransfer.hxx>
#include <UITools.hxx>
#include <TokenWriter.hxx>
@@ -64,12 +59,10 @@ using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::datatransfer;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::view;
using namespace ::com::sun::star::form;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::util;
@@ -87,8 +80,8 @@ com_sun_star_comp_dbu_SbaXGridControl_get_implementation(
css::uno::Sequence<OUString> SAL_CALL SbaXGridControl::getSupportedServiceNames()
{
- return { "com.sun.star.form.control.InteractionGridControl", "com.sun.star.form.control.GridControl",
- "com.sun.star.awt.UnoControl" };
+ return { u"com.sun.star.form.control.InteractionGridControl"_ustr, u"com.sun.star.form.control.GridControl"_ustr,
+ u"com.sun.star.awt.UnoControl"_ustr };
}
@@ -96,7 +89,7 @@ css::uno::Sequence<OUString> SAL_CALL SbaXGridControl::getSupportedServiceNames(
OUString SAL_CALL SbaXGridControl::getImplementationName()
{
- return "com.sun.star.comp.dbu.SbaXGridControl";
+ return u"com.sun.star.comp.dbu.SbaXGridControl"_ustr;
}
SbaXGridControl::SbaXGridControl(const Reference< XComponentContext >& _rM)
@@ -108,9 +101,9 @@ SbaXGridControl::~SbaXGridControl()
{
}
-FmXGridPeer* SbaXGridControl::imp_CreatePeer(vcl::Window* pParent)
+rtl::Reference<FmXGridPeer> SbaXGridControl::imp_CreatePeer(vcl::Window* pParent)
{
- FmXGridPeer* pReturn = new SbaXGridPeer(m_xContext);
+ rtl::Reference<FmXGridPeer> pReturn = new SbaXGridPeer(m_xContext);
// translate properties into WinBits
WinBits nStyle = WB_TABSTOP;
@@ -132,9 +125,9 @@ FmXGridPeer* SbaXGridControl::imp_CreatePeer(vcl::Window* pParent)
return pReturn;
}
-Any SAL_CALL SbaXGridControl::queryInterface(const Type& _rType)
+Any SAL_CALL SbaXGridControl::queryAggregation(const Type& _rType)
{
- Any aRet = FmXGridControl::queryInterface(_rType);
+ Any aRet = FmXGridControl::queryAggregation(_rType);
return aRet.hasValue() ? aRet : ::cppu::queryInterface(_rType,static_cast<css::frame::XDispatch*>(this));
}
@@ -163,7 +156,7 @@ void SAL_CALL SbaXGridControl::createPeer(const Reference< css::awt::XToolkit >
for (auto const& elem : m_aStatusMultiplexer)
{
if (elem.second.is() && elem.second->getLength())
- xDisp->addStatusListener(elem.second.get(), elem.first);
+ xDisp->addStatusListener(elem.second, elem.first);
}
}
@@ -192,7 +185,7 @@ void SAL_CALL SbaXGridControl::addStatusListener( const Reference< XStatusListen
if ( 1 == xMultiplexer->getLength() )
{ // the first external listener for this URL
Reference< XDispatch > xDisp( getPeer(), UNO_QUERY );
- xDisp->addStatusListener( xMultiplexer.get(), _rURL );
+ xDisp->addStatusListener( xMultiplexer, _rURL );
}
else
{ // already have other listeners for this URL
@@ -214,7 +207,7 @@ void SAL_CALL SbaXGridControl::removeStatusListener(const Reference< css::frame:
if (getPeer().is() && xMultiplexer->getLength() == 1)
{
Reference< css::frame::XDispatch > xDisp(getPeer(), UNO_QUERY);
- xDisp->removeStatusListener(xMultiplexer.get(), _rURL);
+ xDisp->removeStatusListener(xMultiplexer, _rURL);
}
xMultiplexer->removeInterface( _rxListener );
}
@@ -242,7 +235,6 @@ void SAL_CALL SbaXGridControl::dispose()
// SbaXGridPeer
SbaXGridPeer::SbaXGridPeer(const Reference< XComponentContext >& _rM)
: FmXGridPeer(_rM)
-,m_aStatusListeners(m_aMutex)
{
}
@@ -252,10 +244,11 @@ SbaXGridPeer::~SbaXGridPeer()
void SAL_CALL SbaXGridPeer::dispose()
{
- EventObject aEvt(*this);
-
- m_aStatusListeners.disposeAndClear(aEvt);
-
+ {
+ std::unique_lock g(m_aMutex);
+ EventObject aEvt(*this);
+ m_aStatusListeners.disposeAndClear(g, aEvt);
+ }
FmXGridPeer::dispose();
}
@@ -280,13 +273,13 @@ void SbaXGridPeer::NotifyStatusChanged(const css::util::URL& _rUrl, const Refere
xControl->statusChanged(aEvt);
else
{
- ::cppu::OInterfaceContainerHelper * pIter = m_aStatusListeners.getContainer(_rUrl);
+ std::unique_lock g(m_aMutex);
+ ::comphelper::OInterfaceContainerHelper4<css::frame::XStatusListener> * pIter
+ = m_aStatusListeners.getContainer(g, _rUrl);
if (pIter)
{
- ::cppu::OInterfaceIteratorHelper aListIter(*pIter);
- while (aListIter.hasMoreElements())
- static_cast< css::frame::XStatusListener*>(aListIter.next())->statusChanged(aEvt);
+ pIter->notifyEach( g, &XStatusListener::statusChanged, aEvt );
}
}
}
@@ -445,19 +438,24 @@ void SAL_CALL SbaXGridPeer::dispatch(const URL& aURL, const Sequence< PropertyVa
void SAL_CALL SbaXGridPeer::addStatusListener(const Reference< css::frame::XStatusListener > & xControl, const css::util::URL& aURL)
{
- ::cppu::OInterfaceContainerHelper* pCont = m_aStatusListeners.getContainer(aURL);
- if (!pCont)
- m_aStatusListeners.addInterface(aURL,xControl);
- else
- pCont->addInterface(xControl);
+ {
+ std::unique_lock g(m_aMutex);
+ ::comphelper::OInterfaceContainerHelper4< css::frame::XStatusListener >* pCont
+ = m_aStatusListeners.getContainer(g, aURL);
+ if (!pCont)
+ m_aStatusListeners.addInterface(g, aURL,xControl);
+ else
+ pCont->addInterface(g, xControl);
+ }
NotifyStatusChanged(aURL, xControl);
}
void SAL_CALL SbaXGridPeer::removeStatusListener(const Reference< css::frame::XStatusListener > & xControl, const css::util::URL& aURL)
{
- ::cppu::OInterfaceContainerHelper* pCont = m_aStatusListeners.getContainer(aURL);
+ std::unique_lock g(m_aMutex);
+ ::comphelper::OInterfaceContainerHelper4< css::frame::XStatusListener >* pCont = m_aStatusListeners.getContainer(g, aURL);
if ( pCont )
- pCont->removeInterface(xControl);
+ pCont->removeInterface(g, xControl);
}
Sequence< Type > SAL_CALL SbaXGridPeer::getTypes()
@@ -467,8 +465,6 @@ Sequence< Type > SAL_CALL SbaXGridPeer::getTypes()
Sequence { cppu::UnoType<css::frame::XDispatch>::get() });
}
-UNO3_GETIMPLEMENTATION2_IMPL(SbaXGridPeer, FmXGridPeer);
-
VclPtr<FmGridControl> SbaXGridPeer::imp_CreateControl(vcl::Window* pParent, WinBits nStyle)
{
return VclPtr<SbaGridControl>::Create( m_xContext, pParent, this, nStyle);
@@ -523,7 +519,7 @@ void SbaGridHeader::ImplStartColumnDrag(sal_Int8 _nAction, const Point& _rMouseP
tools::Rectangle aColRect = GetItemRect(nId);
aColRect.AdjustLeft(nId ? 3 : 0 ); // the handle col (nId == 0) does not have a left margin for resizing
aColRect.AdjustRight( -3 );
- bResizingCol = !aColRect.IsInside(_rMousePos);
+ bResizingCol = !aColRect.Contains(_rMousePos);
}
if (bResizingCol)
return;
@@ -544,26 +540,21 @@ void SbaGridHeader::ImplStartColumnDrag(sal_Int8 _nAction, const Point& _rMouseP
);
}
-void SbaGridHeader::PreExecuteColumnContextMenu(sal_uInt16 nColId, PopupMenu& rMenu)
+void SbaGridHeader::PreExecuteColumnContextMenu(sal_uInt16 nColId, weld::Menu& rMenu,
+ weld::Menu& rInsertMenu, weld::Menu& rChangeMenu,
+ weld::Menu& rShowMenu)
{
- FmGridHeader::PreExecuteColumnContextMenu(nColId, rMenu);
+ FmGridHeader::PreExecuteColumnContextMenu(nColId, rMenu, rInsertMenu, rChangeMenu, rShowMenu);
// some items are valid only if the db isn't readonly
bool bDBIsReadOnly = static_cast<SbaGridControl*>(GetParent())->IsReadOnlyDB();
if (bDBIsReadOnly)
{
- rMenu.EnableItem(rMenu.GetItemId("hide"), false);
- PopupMenu* pShowColsMenu = rMenu.GetPopupMenu(rMenu.GetItemId("show"));
- if (pShowColsMenu)
- {
- // at most 16 items which mean "show column <name>"
- for (sal_uInt16 i=1; i<16; ++i)
- pShowColsMenu->EnableItem(i, false);
- // "show cols/more..." and "show cols/all"
- pShowColsMenu->EnableItem(pShowColsMenu->GetItemId("more"), false);
- pShowColsMenu->EnableItem(pShowColsMenu->GetItemId("all"), false);
- }
+ rMenu.set_visible(u"hide"_ustr, false);
+ rMenu.set_sensitive(u"hide"_ustr, false);
+ rMenu.set_visible(u"show"_ustr, false);
+ rMenu.set_sensitive(u"show"_ustr, false);
}
// prepend some new items
@@ -589,45 +580,25 @@ void SbaGridHeader::PreExecuteColumnContextMenu(sal_uInt16 nColId, PopupMenu& rM
case DataType::REF:
break;
default:
- rMenu.InsertItem(ID_BROWSER_COLATTRSET, DBA_RES(RID_STR_COLUMN_FORMAT), MenuItemBits::NONE, OString(), nPos++);
- rMenu.SetHelpId(ID_BROWSER_COLATTRSET, HID_BROWSER_COLUMNFORMAT);
- rMenu.InsertSeparator(OString(), nPos++);
+ rMenu.insert(nPos++, u"colattrset"_ustr, DBA_RES(RID_STR_COLUMN_FORMAT),
+ nullptr, nullptr, nullptr, TRISTATE_INDET);
+ rMenu.insert_separator(nPos++, u"separator1"_ustr);
}
}
- rMenu.InsertItem(ID_BROWSER_COLWIDTH, DBA_RES(RID_STR_COLUMN_WIDTH), MenuItemBits::NONE, OString(), nPos++);
- rMenu.SetHelpId(ID_BROWSER_COLWIDTH, HID_BROWSER_COLUMNWIDTH);
- rMenu.InsertSeparator(OString(), nPos++);
+ rMenu.insert(nPos++, u"colwidth"_ustr, DBA_RES(RID_STR_COLUMN_WIDTH),
+ nullptr, nullptr, nullptr, TRISTATE_INDET);
+ rMenu.insert_separator(nPos++, u"separator2"_ustr);
}
-void SbaGridHeader::PostExecuteColumnContextMenu(sal_uInt16 nColId, const PopupMenu& rMenu, sal_uInt16 nExecutionResult)
+void SbaGridHeader::PostExecuteColumnContextMenu(sal_uInt16 nColId, const weld::Menu& rMenu, const OUString& rExecutionResult)
{
- switch (nExecutionResult)
- {
- case ID_BROWSER_COLWIDTH:
- static_cast<SbaGridControl*>(GetParent())->SetColWidth(nColId);
- break;
-
- case ID_BROWSER_COLATTRSET:
- static_cast<SbaGridControl*>(GetParent())->SetColAttrs(nColId);
- break;
- case ID_BROWSER_COLUMNINFO:
- {
- sal_uInt16 nModelPos = static_cast<SbaGridControl*>(GetParent())->GetModelColumnPos(nColId);
- Reference< XPropertySet > xField = static_cast<SbaGridControl*>(GetParent())->getField(nModelPos);
-
- if(!xField.is())
- break;
- std::vector< std::shared_ptr<OTableRow> > vClipboardList;
- // send it to the clipboard
- vClipboardList.push_back(std::make_shared<OTableRow>(xField));
- rtl::Reference<OTableRowExchange> pData = new OTableRowExchange(vClipboardList);
- pData->CopyToClipboard(GetParent());
- }
- break;
-
- default: FmGridHeader::PostExecuteColumnContextMenu(nColId, rMenu, nExecutionResult);
- }
+ if (rExecutionResult == "colwidth")
+ static_cast<SbaGridControl*>(GetParent())->SetColWidth(nColId);
+ else if (rExecutionResult == "colattrset")
+ static_cast<SbaGridControl*>(GetParent())->SetColAttrs(nColId);
+ else
+ FmGridHeader::PostExecuteColumnContextMenu(nColId, rMenu, rExecutionResult);
}
// SbaGridControl
@@ -658,7 +629,7 @@ VclPtr<BrowserHeader> SbaGridControl::imp_CreateHeaderBar(BrowseBox* pParent)
return VclPtr<SbaGridHeader>::Create(pParent);
}
-CellController* SbaGridControl::GetController(tools::Long nRow, sal_uInt16 nCol)
+CellController* SbaGridControl::GetController(sal_Int32 nRow, sal_uInt16 nCol)
{
if ( m_bActivatingForDrop )
return nullptr;
@@ -666,26 +637,26 @@ CellController* SbaGridControl::GetController(tools::Long nRow, sal_uInt16 nCol)
return FmGridControl::GetController(nRow, nCol);
}
-void SbaGridControl::PreExecuteRowContextMenu(sal_uInt16 nRow, PopupMenu& rMenu)
+void SbaGridControl::PreExecuteRowContextMenu(weld::Menu& rMenu)
{
- FmGridControl::PreExecuteRowContextMenu(nRow, rMenu);
+ FmGridControl::PreExecuteRowContextMenu(rMenu);
sal_uInt16 nPos = 0;
if (!IsReadOnlyDB())
{
- rMenu.InsertItem(ID_BROWSER_TABLEATTR, DBA_RES(RID_STR_TABLE_FORMAT), MenuItemBits::NONE, OString(), nPos++);
- rMenu.SetHelpId(ID_BROWSER_TABLEATTR, HID_BROWSER_TABLEFORMAT);
-
- rMenu.InsertItem(ID_BROWSER_ROWHEIGHT, DBA_RES(RID_STR_ROW_HEIGHT), MenuItemBits::NONE, OString(), nPos++);
- rMenu.SetHelpId(ID_BROWSER_ROWHEIGHT, HID_BROWSER_ROWHEIGHT);
- rMenu.InsertSeparator(OString(), nPos++);
+ rMenu.insert(nPos++, u"tableattr"_ustr, DBA_RES(RID_STR_TABLE_FORMAT),
+ nullptr, nullptr, nullptr, TRISTATE_INDET);
+ rMenu.insert(nPos++, u"rowheight"_ustr, DBA_RES(RID_STR_ROW_HEIGHT),
+ nullptr, nullptr, nullptr, TRISTATE_INDET);
+ rMenu.insert_separator(nPos++, u"separator1"_ustr);
}
if ( GetSelectRowCount() > 0 )
{
- rMenu.InsertItem(ID_BROWSER_COPY, DBA_RES(RID_STR_COPY), MenuItemBits::NONE, OString(), nPos++);
- rMenu.InsertSeparator(OString(), nPos++);
+ rMenu.insert(nPos++, u"copy"_ustr, DBA_RES(RID_STR_COPY),
+ nullptr, nullptr, nullptr, TRISTATE_INDET);
+ rMenu.insert_separator(nPos++, u"separator2"_ustr);
}
}
@@ -693,7 +664,7 @@ SvNumberFormatter* SbaGridControl::GetDatasourceFormatter()
{
Reference< css::util::XNumberFormatsSupplier > xSupplier = ::dbtools::getNumberFormats(::dbtools::getConnection(Reference< XRowSet > (getDataSource(),UNO_QUERY)), true, getContext());
- SvNumberFormatsSupplierObj* pSupplierImpl = comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>( xSupplier );
+ SvNumberFormatsSupplierObj* pSupplierImpl = comphelper::getFromUnoTunnel<SvNumberFormatsSupplierObj>( xSupplier );
if ( !pSupplierImpl )
return nullptr;
@@ -771,7 +742,7 @@ void SbaGridControl::SetRowHeight()
}
catch(Exception&)
{
- OSL_FAIL("setPropertyValue: PROPERTY_ROW_HEIGHT throws an exception");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "setPropertyValue: PROPERTY_ROW_HEIGHT throws an exception");
}
}
@@ -803,15 +774,11 @@ void SbaGridControl::SetBrowserAttrs()
try
{
Reference< XComponentContext > xContext = getContext();
- css::beans::PropertyValue aArg;
- css::uno::Sequence<css::uno::Any> aArguments(2);
- aArg.Name = "IntrospectedObject";
- aArg.Value <<= xGridModel;
- aArguments[0] <<= aArg;
- aArg.Name = "ParentWindow";
- aArg.Value <<= VCLUnoHelper::GetInterface(this);
- aArguments[1] <<= aArg;
- Reference<XExecutableDialog> xExecute(xContext->getServiceManager()->createInstanceWithArgumentsAndContext("com.sun.star.form.ControlFontDialog",
+ css::uno::Sequence<css::uno::Any> aArguments{
+ Any(comphelper::makePropertyValue(u"IntrospectedObject"_ustr, xGridModel)),
+ Any(comphelper::makePropertyValue(u"ParentWindow"_ustr, VCLUnoHelper::GetInterface(this)))
+ };
+ Reference<XExecutableDialog> xExecute(xContext->getServiceManager()->createInstanceWithArgumentsAndContext(u"com.sun.star.form.ControlFontDialog"_ustr,
aArguments, xContext), css::uno::UNO_QUERY_THROW);
xExecute->execute();
}
@@ -821,24 +788,16 @@ void SbaGridControl::SetBrowserAttrs()
}
}
-void SbaGridControl::PostExecuteRowContextMenu(sal_uInt16 nRow, const PopupMenu& rMenu, sal_uInt16 nExecutionResult)
+void SbaGridControl::PostExecuteRowContextMenu(const OUString& rExecutionResult)
{
- switch (nExecutionResult)
- {
- case ID_BROWSER_TABLEATTR:
- SetBrowserAttrs();
- break;
- case ID_BROWSER_ROWHEIGHT:
- SetRowHeight();
- break;
- case ID_BROWSER_COPY:
- CopySelectedRowsToClipboard();
- break;
-
- default:
- FmGridControl::PostExecuteRowContextMenu(nRow, rMenu, nExecutionResult);
- break;
- }
+ if (rExecutionResult == "tableattr")
+ SetBrowserAttrs();
+ else if (rExecutionResult == "rowheight")
+ SetRowHeight();
+ else if (rExecutionResult == "copy")
+ CopySelectedRowsToClipboard();
+ else
+ FmGridControl::PostExecuteRowContextMenu(rExecutionResult);
}
void SbaGridControl::Select()
@@ -850,7 +809,7 @@ void SbaGridControl::Select()
m_pMasterListener->SelectionChanged();
}
-void SbaGridControl::ActivateCell(tools::Long nRow, sal_uInt16 nCol, bool bSetCellFocus /*= sal_True*/ )
+void SbaGridControl::ActivateCell(sal_Int32 nRow, sal_uInt16 nCol, bool bSetCellFocus /*= sal_True*/ )
{
FmGridControl::ActivateCell(nRow, nCol, bSetCellFocus);
if (m_pMasterListener)
@@ -937,9 +896,9 @@ bool SbaGridControl::IsReadOnlyDB() const
void SbaGridControl::MouseButtonDown( const BrowserMouseEvent& rMEvt)
{
- tools::Long nRow = GetRowAtYPosPixel(rMEvt.GetPosPixel().Y());
+ sal_Int32 nRow = GetRowAtYPosPixel(rMEvt.GetPosPixel().Y());
sal_uInt16 nColPos = GetColumnAtXPosPixel(rMEvt.GetPosPixel().X());
- sal_uInt16 nViewPos = (nColPos == BROWSER_INVALIDID) ? sal_uInt16(-1) : nColPos-1;
+ sal_uInt16 nViewPos = (nColPos == BROWSER_INVALIDID) ? sal_uInt16(-1) : sal_uInt16(nColPos - 1);
// 'the handle column' and 'no valid column' will both result in a view position of -1 !
bool bHitEmptySpace = (nRow > GetRowCount()) || (nViewPos == sal_uInt16(-1));
@@ -963,16 +922,16 @@ void SbaGridControl::StartDrag( sal_Int8 _nAction, const Point& _rPosPixel )
// (Yes, this is controller (not view) functionality. But collecting and evaluating all the
// information necessary via UNO would be quite difficult (if not impossible) so
// my laziness says 'do it here'...)
- tools::Long nRow = GetRowAtYPosPixel(_rPosPixel.Y());
+ sal_Int32 nRow = GetRowAtYPosPixel(_rPosPixel.Y());
sal_uInt16 nColPos = GetColumnAtXPosPixel(_rPosPixel.X());
- sal_uInt16 nViewPos = (nColPos == BROWSER_INVALIDID) ? sal_uInt16(-1) : nColPos-1;
+ sal_uInt16 nViewPos = (nColPos == BROWSER_INVALIDID) ? sal_uInt16(-1) : sal_uInt16(nColPos-1);
// 'the handle column' and 'no valid column' will both result in a view position of -1 !
bool bCurrentRowVirtual = IsCurrentAppending() && IsModified();
// the current row doesn't really exist: the user's appending a new one and already has entered some data,
// so the row contains data which has no counter part within the data source
- tools::Long nCorrectRowCount = GetRowCount();
+ sal_Int32 nCorrectRowCount = GetRowCount();
if (GetOptions() & DbGridControlOptions::Insert)
--nCorrectRowCount; // there is an empty row for inserting records
if (bCurrentRowVirtual)
@@ -1047,6 +1006,7 @@ void SbaGridControl::DoColumnDrag(sal_uInt16 nColumnPos)
{
Reference< XPropertySet > xDataSource = getDataSource();
OSL_ENSURE(xDataSource.is(), "SbaGridControl::DoColumnDrag : invalid data source !");
+ ::dbtools::ensureRowSetConnection(Reference< XRowSet >(getDataSource(),UNO_QUERY), getContext(), nullptr);
Reference< XPropertySet > xAffectedCol;
Reference< XPropertySet > xAffectedField;
@@ -1096,8 +1056,7 @@ void SbaGridControl::implTransferSelectedRows( sal_Int16 nRowPos, bool _bTrueIfC
// collect the affected rows
if ((GetSelectRowCount() == 0) && (nRowPos >= 0))
{
- aSelectedRows.realloc( 1 );
- aSelectedRows[0] <<= static_cast<sal_Int32>(nRowPos + 1);
+ aSelectedRows = { Any(static_cast<sal_Int32>(nRowPos + 1)) };
bSelectionBookmarks = false;
}
else if ( !IsAllSelected() && GetSelectRowCount() )
@@ -1129,12 +1088,12 @@ void SbaGridControl::DoFieldDrag(sal_uInt16 nColumnPos, sal_Int16 nRowPos)
try
{
OUString sCellText;
- Reference< XGridFieldDataSupplier > xFieldData(static_cast< XGridPeer* >(GetPeer()), UNO_QUERY);
+ Reference< XGridFieldDataSupplier > xFieldData(GetPeer());
Sequence<sal_Bool> aSupportingText = xFieldData->queryFieldDataType(cppu::UnoType<decltype(sCellText)>::get());
- if (aSupportingText.getConstArray()[nColumnPos])
+ if (aSupportingText[nColumnPos])
{
Sequence< Any> aCellContents = xFieldData->queryFieldData(nRowPos, cppu::UnoType<decltype(sCellText)>::get());
- sCellText = ::comphelper::getString(aCellContents.getConstArray()[nColumnPos]);
+ sCellText = ::comphelper::getString(aCellContents[nColumnPos]);
::svt::OStringTransfer::StartStringDrag(sCellText, this, DND_ACTION_COPY);
}
}
@@ -1175,82 +1134,83 @@ sal_Int8 SbaGridControl::AcceptDrop( const BrowserAcceptDropEvent& rEvt )
if (!::dbtools::getConnection(Reference< XRowSet > (getDataSource(),UNO_QUERY)).is())
return nAction;
- if ( IsDropFormatSupported( SotClipboardFormatId::STRING ) ) do
- { // odd construction, but spares us a lot of (explicit ;) goto's
+ if ( IsDropFormatSupported( SotClipboardFormatId::STRING ) )
+ do
+ { // odd construction, but spares us a lot of (explicit ;) goto's
- if (!GetEmptyRow().is())
- // without an empty row we're not in update mode
- break;
+ if (!GetEmptyRow().is())
+ // without an empty row we're not in update mode
+ break;
- const tools::Long nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(), false);
- const sal_uInt16 nCol = GetColumnId(GetColumnAtXPosPixel(rEvt.maPosPixel.X()));
+ const sal_Int32 nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(), false);
+ const sal_uInt16 nCol = GetColumnId(GetColumnAtXPosPixel(rEvt.maPosPixel.X()));
- tools::Long nCorrectRowCount = GetRowCount();
- if (GetOptions() & DbGridControlOptions::Insert)
- --nCorrectRowCount; // there is an empty row for inserting records
- if (IsCurrentAppending())
- --nCorrectRowCount; // the current data record doesn't really exist, we are appending a new one
+ sal_Int32 nCorrectRowCount = GetRowCount();
+ if (GetOptions() & DbGridControlOptions::Insert)
+ --nCorrectRowCount; // there is an empty row for inserting records
+ if (IsCurrentAppending())
+ --nCorrectRowCount; // the current data record doesn't really exist, we are appending a new one
- if ( (nCol == BROWSER_INVALIDID) || (nRow >= nCorrectRowCount) || (nCol == 0) )
- // no valid cell under the mouse cursor
- break;
+ if ( (nCol == BROWSER_INVALIDID) || (nRow >= nCorrectRowCount) || (nCol == 0) )
+ // no valid cell under the mouse cursor
+ break;
- tools::Rectangle aRect = GetCellRect(nRow, nCol, false);
- if (!aRect.IsInside(rEvt.maPosPixel))
- // not dropped within a cell (a cell isn't as wide as the column - the are small spaces)
- break;
+ tools::Rectangle aRect = GetCellRect(nRow, nCol, false);
+ if (!aRect.Contains(rEvt.maPosPixel))
+ // not dropped within a cell (a cell isn't as wide as the column - the are small spaces)
+ break;
- if ((IsModified() || (GetCurrentRow().is() && GetCurrentRow()->IsModified())) && (GetCurrentPos() != nRow))
- // there is a current and modified row or cell and he text is to be dropped into another one
- break;
+ if ((IsModified() || (GetCurrentRow().is() && GetCurrentRow()->IsModified())) && (GetCurrentPos() != nRow))
+ // there is a current and modified row or cell and he text is to be dropped into another one
+ break;
- CellControllerRef xCurrentController = Controller();
- if (xCurrentController.is() && xCurrentController->IsValueChangedFromSaved() && ((nRow != GetCurRow()) || (nCol != GetCurColumnId())))
- // the current controller is modified and the user wants to drop in another cell -> no chance
- // (when leaving the modified cell an error may occur - this is deadly while dragging)
- break;
+ CellControllerRef xCurrentController = Controller();
+ if (xCurrentController.is() && xCurrentController->IsValueChangedFromSaved() && ((nRow != GetCurRow()) || (nCol != GetCurColumnId())))
+ // the current controller is modified and the user wants to drop in another cell -> no chance
+ // (when leaving the modified cell an error may occur - this is deadly while dragging)
+ break;
- Reference< XPropertySet > xField = getField(GetModelColumnPos(nCol));
- if (!xField.is())
- // the column is not valid bound (for instance a binary field)
- break;
+ Reference< XPropertySet > xField = getField(GetModelColumnPos(nCol));
+ if (!xField.is())
+ // the column is not valid bound (for instance a binary field)
+ break;
- try
- {
- if (::comphelper::getBOOL(xField->getPropertyValue(PROPERTY_ISREADONLY)))
+ try
+ {
+ if (::comphelper::getBOOL(xField->getPropertyValue(PROPERTY_ISREADONLY)))
+ break;
+ }
+ catch (const Exception& )
+ {
+ // assume RO
break;
- }
- catch (const Exception& )
- {
- // assume RO
- break;
- }
+ }
- try
- {
- // assume that text can be dropped into a field if the column has a css::awt::XTextComponent interface
- Reference< XIndexAccess > xColumnControls(static_cast<css::form::XGridPeer*>(GetPeer()), UNO_QUERY);
- if (xColumnControls.is())
+ try
{
- Reference< css::awt::XTextComponent > xColControl(
- xColumnControls->getByIndex(GetViewColumnPos(nCol)),
- css::uno::UNO_QUERY);
- if (xColControl.is())
+ // assume that text can be dropped into a field if the column has a css::awt::XTextComponent interface
+ Reference< XIndexAccess > xColumnControls(GetPeer());
+ if (xColumnControls.is())
{
- m_bActivatingForDrop = true;
- GoToRowColumnId(nRow, nCol);
- m_bActivatingForDrop = false;
-
- nAction = DND_ACTION_COPY;
+ Reference< css::awt::XTextComponent > xColControl(
+ xColumnControls->getByIndex(GetViewColumnPos(nCol)),
+ css::uno::UNO_QUERY);
+ if (xColControl.is())
+ {
+ m_bActivatingForDrop = true;
+ GoToRowColumnId(nRow, nCol);
+ m_bActivatingForDrop = false;
+
+ nAction = DND_ACTION_COPY;
+ }
}
}
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
- } while (false);
+ } while (false);
if(nAction != DND_ACTION_COPY && GetEmptyRow().is())
{
@@ -1275,10 +1235,10 @@ sal_Int8 SbaGridControl::ExecuteDrop( const BrowserExecuteDropEvent& rEvt )
if ( IsDropFormatSupported( SotClipboardFormatId::STRING ) )
{
- tools::Long nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(), false);
+ sal_Int32 nRow = GetRowAtYPosPixel(rEvt.maPosPixel.Y(), false);
sal_uInt16 nCol = GetColumnAtXPosPixel(rEvt.maPosPixel.X());
- tools::Long nCorrectRowCount = GetRowCount();
+ sal_Int32 nCorrectRowCount = GetRowCount();
if (GetOptions() & DbGridControlOptions::Insert)
--nCorrectRowCount; // there is an empty row for inserting records
if (IsCurrentAppending())
@@ -1389,10 +1349,10 @@ IMPL_LINK_NOARG(SbaGridControl, AsynchDropEvent, void*, void)
m_aDataDescriptor.clear();
}
-OUString SbaGridControl::GetAccessibleObjectDescription( ::vcl::AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition) const
+OUString SbaGridControl::GetAccessibleObjectDescription( AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition) const
{
OUString sRet;
- if ( ::vcl::BBTYPE_BROWSEBOX == eObjType )
+ if ( AccessibleBrowseBoxObjType::BrowseBox == eObjType )
{
SolarMutexGuard aGuard;
sRet = DBA_RES(STR_DATASOURCE_GRIDCONTROL_DESC);
diff --git a/dbaccess/source/ui/browser/sbamultiplex.cxx b/dbaccess/source/ui/browser/sbamultiplex.cxx
index 68673fd06ff2..8bf7ed747c03 100644
--- a/dbaccess/source/ui/browser/sbamultiplex.cxx
+++ b/dbaccess/source/ui/browser/sbamultiplex.cxx
@@ -18,79 +18,511 @@
*/
#include <sbamultiplex.hxx>
+#include <cppuhelper/queryinterface.hxx>
+
using namespace dbaui;
// the listener multiplexers
// XStatusListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXStatusMultiplexer, css::frame::XStatusListener)
+SbaXStatusMultiplexer::SbaXStatusMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXStatusMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::frame::XStatusListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::frame::XStatusListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXStatusMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
void SAL_CALL SbaXStatusMultiplexer::statusChanged(const css::frame::FeatureStateEvent& e)
{
m_aLastKnownStatus = e;
m_aLastKnownStatus.Source = &m_rParent;
- ::comphelper::OInterfaceIteratorHelper2 aIt( *this );
- while ( aIt.hasMoreElements() )
- static_cast< css::frame::XStatusListener* >( aIt.next() )->statusChanged( m_aLastKnownStatus );
+ notifyEach( &XStatusListener::statusChanged, m_aLastKnownStatus );
}
// LoadListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXLoadMultiplexer, css::form::XLoadListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXLoadMultiplexer, css::form::XLoadListener, loaded, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXLoadMultiplexer, css::form::XLoadListener, unloaded, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXLoadMultiplexer, css::form::XLoadListener, unloading, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXLoadMultiplexer, css::form::XLoadListener, reloading, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXLoadMultiplexer, css::form::XLoadListener, reloaded, css::lang::EventObject)
+SbaXLoadMultiplexer::SbaXLoadMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXLoadMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::form::XLoadListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::form::XLoadListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXLoadMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+void SAL_CALL SbaXLoadMultiplexer::loaded(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XLoadListener::loaded, aMulti );
+}
+void SAL_CALL SbaXLoadMultiplexer::unloaded(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XLoadListener::unloaded, aMulti );
+}
+
+void SAL_CALL SbaXLoadMultiplexer::unloading(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XLoadListener::unloading, aMulti );
+}
+
+void SAL_CALL SbaXLoadMultiplexer::reloading(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XLoadListener::reloading, aMulti );
+}
+
+void SAL_CALL SbaXLoadMultiplexer::reloaded(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XLoadListener::reloaded, aMulti );
+}
+
// css::sdbc::XRowSetListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXRowSetMultiplexer, css::sdbc::XRowSetListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXRowSetMultiplexer, css::sdbc::XRowSetListener, cursorMoved, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXRowSetMultiplexer, css::sdbc::XRowSetListener, rowChanged, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXRowSetMultiplexer, css::sdbc::XRowSetListener, rowSetChanged, css::lang::EventObject)
+SbaXRowSetMultiplexer::SbaXRowSetMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXRowSetMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::sdbc::XRowSetListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::sdbc::XRowSetListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXRowSetMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+void SAL_CALL SbaXRowSetMultiplexer::cursorMoved(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XRowSetListener::cursorMoved, aMulti );
+}
+
+void SAL_CALL SbaXRowSetMultiplexer::rowChanged(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XRowSetListener::rowChanged, aMulti );
+}
+
+void SAL_CALL SbaXRowSetMultiplexer::rowSetChanged(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XRowSetListener::rowSetChanged, aMulti );
+}
// css::sdb::XRowSetApproveListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXRowSetApproveMultiplexer, css::sdb::XRowSetApproveListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXRowSetApproveMultiplexer, css::sdb::XRowSetApproveListener, approveCursorMove, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXRowSetApproveMultiplexer, css::sdb::XRowSetApproveListener, approveRowChange, css::sdb::RowChangeEvent)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXRowSetApproveMultiplexer, css::sdb::XRowSetApproveListener, approveRowSetChange, css::lang::EventObject)
+SbaXRowSetApproveMultiplexer::SbaXRowSetApproveMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXRowSetApproveMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::sdb::XRowSetApproveListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::sdb::XRowSetApproveListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXRowSetApproveMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+sal_Bool SAL_CALL SbaXRowSetApproveMultiplexer::approveCursorMove(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveCursorMove(aMulti);
+ return bResult;
+}
+
+sal_Bool SAL_CALL SbaXRowSetApproveMultiplexer::approveRowChange(const css::sdb::RowChangeEvent& e)
+{
+ css::sdb::RowChangeEvent aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveRowChange(aMulti);
+ return bResult;
+}
+
+sal_Bool SAL_CALL SbaXRowSetApproveMultiplexer::approveRowSetChange(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveRowSetChange(aMulti);
+ return bResult;
+}
// css::sdb::XSQLErrorListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXSQLErrorMultiplexer, css::sdb::XSQLErrorListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXSQLErrorMultiplexer, css::sdb::XSQLErrorListener, errorOccured, css::sdb::SQLErrorEvent)
+SbaXSQLErrorMultiplexer::SbaXSQLErrorMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXSQLErrorMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::sdb::XSQLErrorListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::sdb::XSQLErrorListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXSQLErrorMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+void SAL_CALL SbaXSQLErrorMultiplexer::errorOccured(const css::sdb::SQLErrorEvent& e)
+{
+ css::sdb::SQLErrorEvent aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XSQLErrorListener::errorOccured, aMulti );
+}
// css::form::XDatabaseParameterListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXParameterMultiplexer, css::form::XDatabaseParameterListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXParameterMultiplexer, css::form::XDatabaseParameterListener, approveParameter, css::form::DatabaseParameterEvent)
+SbaXParameterMultiplexer::SbaXParameterMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXParameterMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::form::XDatabaseParameterListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::form::XDatabaseParameterListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXParameterMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+sal_Bool SAL_CALL SbaXParameterMultiplexer::approveParameter(const css::form::DatabaseParameterEvent& e)
+{
+ css::form::DatabaseParameterEvent aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveParameter(aMulti);
+ return bResult;
+}
// css::form::XSubmitListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXSubmitMultiplexer, css::form::XSubmitListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXSubmitMultiplexer, css::form::XSubmitListener, approveSubmit, css::lang::EventObject)
+SbaXSubmitMultiplexer::SbaXSubmitMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXSubmitMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::form::XSubmitListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::form::XSubmitListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXSubmitMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+
+
+sal_Bool SAL_CALL SbaXSubmitMultiplexer::approveSubmit(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveSubmit(aMulti);
+ return bResult;
+}
// css::form::XResetListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXResetMultiplexer, css::form::XResetListener)
-IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(SbaXResetMultiplexer, css::form::XResetListener, approveReset, css::lang::EventObject)
-IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(SbaXResetMultiplexer, css::form::XResetListener, resetted, css::lang::EventObject)
+SbaXResetMultiplexer::SbaXResetMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXResetMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::form::XResetListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::form::XResetListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXResetMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
+
+sal_Bool SAL_CALL SbaXResetMultiplexer::approveReset(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ ::comphelper::OInterfaceIteratorHelper3 aIt(*this);
+ bool bResult = true;
+ while (bResult && aIt.hasMoreElements())
+ bResult = aIt.next()->approveReset(aMulti);
+ return bResult;
+}
+
+void SAL_CALL SbaXResetMultiplexer::resetted(const css::lang::EventObject& e)
+{
+ css::lang::EventObject aMulti(e);
+ aMulti.Source = &m_rParent;
+ notifyEach( &XResetListener::resetted, aMulti );
+}
// css::beans::XPropertyChangeListener
-IMPLEMENT_PROPERTY_MULTIPLEXER(SbaXPropertyChangeMultiplexer, css::beans::XPropertyChangeListener, propertyChange, css::beans::PropertyChangeEvent)
+SbaXPropertyChangeMultiplexer::SbaXPropertyChangeMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,m_aListeners(rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXPropertyChangeMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::beans::XPropertyChangeListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::beans::XPropertyChangeListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXPropertyChangeMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+void SAL_CALL SbaXPropertyChangeMultiplexer::propertyChange(const css::beans::PropertyChangeEvent& e)
+{
+ ::comphelper::OInterfaceContainerHelper3<XPropertyChangeListener>* pListeners = m_aListeners.getContainer(e.PropertyName);
+ if (pListeners)
+ Notify(*pListeners, e);
+
+ /* do the notification for the unspecialized listeners, too */
+ pListeners = m_aListeners.getContainer(OUString());
+ if (pListeners)
+ Notify(*pListeners, e);
+}
+
+void SbaXPropertyChangeMultiplexer::addInterface(const OUString& rName,
+ const css::uno::Reference< css::beans::XPropertyChangeListener > & rListener)
+{
+ m_aListeners.addInterface(rName, rListener);
+}
+
+void SbaXPropertyChangeMultiplexer::removeInterface(const OUString& rName,
+ const css::uno::Reference< css::beans::XPropertyChangeListener > & rListener)
+{
+ m_aListeners.removeInterface(rName, rListener);
+}
+
+void SbaXPropertyChangeMultiplexer::disposeAndClear()
+{
+ css::lang::EventObject aEvt(m_rParent);
+ m_aListeners.disposeAndClear(aEvt);
+}
+
+sal_Int32 SbaXPropertyChangeMultiplexer::getOverallLen() const
+{
+ sal_Int32 nLen = 0;
+ const std::vector< OUString > aContained = m_aListeners.getContainedTypes();
+ for ( OUString const & s : aContained)
+ {
+ ::comphelper::OInterfaceContainerHelper3<XPropertyChangeListener>* pListeners = m_aListeners.getContainer(s);
+ if (!pListeners)
+ continue;
+ nLen += pListeners->getLength();
+ }
+ return nLen;
+}
+
+void SbaXPropertyChangeMultiplexer::Notify(::comphelper::OInterfaceContainerHelper3<XPropertyChangeListener>& rListeners, const css::beans::PropertyChangeEvent& e)
+{
+ css::beans::PropertyChangeEvent aMulti(e);
+ aMulti.Source = &m_rParent;
+ rListeners.notifyEach( &XPropertyChangeListener::propertyChange, aMulti );
+}
// css::beans::XVetoableChangeListener
-IMPLEMENT_PROPERTY_MULTIPLEXER(SbaXVetoableChangeMultiplexer, css::beans::XVetoableChangeListener, vetoableChange, css::beans::PropertyChangeEvent)
+SbaXVetoableChangeMultiplexer::SbaXVetoableChangeMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,m_aListeners(rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXVetoableChangeMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::beans::XVetoableChangeListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::beans::XVetoableChangeListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXVetoableChangeMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+void SAL_CALL SbaXVetoableChangeMultiplexer::vetoableChange(const css::beans::PropertyChangeEvent& e)
+{
+ ::comphelper::OInterfaceContainerHelper3<css::beans::XVetoableChangeListener>* pListeners = m_aListeners.getContainer(e.PropertyName);
+ if (pListeners)
+ Notify(*pListeners, e);
+
+ /* do the notification for the unspecialized listeners, too */
+ pListeners = m_aListeners.getContainer(OUString());
+ if (pListeners)
+ Notify(*pListeners, e);
+}
+
+void SbaXVetoableChangeMultiplexer::addInterface(const OUString& rName,
+ const css::uno::Reference< css::beans::XVetoableChangeListener > & rListener)
+{
+ m_aListeners.addInterface(rName, rListener);
+}
+
+void SbaXVetoableChangeMultiplexer::removeInterface(const OUString& rName,
+ const css::uno::Reference< css::beans::XVetoableChangeListener > & rListener)
+{
+ m_aListeners.removeInterface(rName, rListener);
+}
+
+void SbaXVetoableChangeMultiplexer::disposeAndClear()
+{
+ css::lang::EventObject aEvt(m_rParent);
+ m_aListeners.disposeAndClear(aEvt);
+}
+
+sal_Int32 SbaXVetoableChangeMultiplexer::getOverallLen() const
+{
+ sal_Int32 nLen = 0;
+ const std::vector< OUString > aContained = m_aListeners.getContainedTypes();
+ for ( OUString const & s : aContained)
+ {
+ ::comphelper::OInterfaceContainerHelper3<XVetoableChangeListener>* pListeners = m_aListeners.getContainer(s);
+ if (!pListeners)
+ continue;
+ nLen += pListeners->getLength();
+ }
+ return nLen;
+}
+
+void SbaXVetoableChangeMultiplexer::Notify(::comphelper::OInterfaceContainerHelper3<XVetoableChangeListener>& rListeners, const css::beans::PropertyChangeEvent& e)
+{
+ css::beans::PropertyChangeEvent aMulti(e);
+ aMulti.Source = &m_rParent;
+ rListeners.notifyEach( &XVetoableChangeListener::vetoableChange, aMulti );
+}
// css::beans::XPropertiesChangeListener
-IMPLEMENT_LISTENER_MULTIPLEXER_CORE(SbaXPropertiesChangeMultiplexer, css::beans::XPropertiesChangeListener);
+SbaXPropertiesChangeMultiplexer::SbaXPropertiesChangeMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex)
+ :OSbaWeakSubObject(rSource)
+ ,OInterfaceContainerHelper3(_rMutex)
+{
+}
+
+css::uno::Any SAL_CALL SbaXPropertiesChangeMultiplexer::queryInterface(const css::uno::Type& _rType)
+{
+ css::uno::Any aReturn = OSbaWeakSubObject::queryInterface(_rType);
+ if (!aReturn.hasValue())
+ aReturn = ::cppu::queryInterface(_rType,
+ static_cast< css::beans::XPropertiesChangeListener* >(this),
+ static_cast< css::lang::XEventListener* >(static_cast< css::beans::XPropertiesChangeListener* >(this))
+ );
+
+ return aReturn;
+}
+void SAL_CALL SbaXPropertiesChangeMultiplexer::disposing(const css::lang::EventObject& )
+{
+}
+
void SbaXPropertiesChangeMultiplexer::propertiesChange(const css::uno::Sequence< css::beans::PropertyChangeEvent>& aEvts)
{
// the SbaXPropertiesChangeMultiplexer doesn't care about the property names a listener logs on for, it simply
// forwards _all_ changes to _all_ listeners
css::uno::Sequence< css::beans::PropertyChangeEvent> aMulti(aEvts);
- for (css::beans::PropertyChangeEvent & rEvent : aMulti)
+ for (css::beans::PropertyChangeEvent & rEvent : asNonConstRange(aMulti))
rEvent.Source = &m_rParent;
- ::comphelper::OInterfaceIteratorHelper2 aIt(*this);
- while (aIt.hasMoreElements())
- static_cast< css::beans::XPropertiesChangeListener*>(aIt.next())->propertiesChange(aMulti);
+ notifyEach( &css::beans::XPropertiesChangeListener::propertiesChange, aMulti );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx
index aa465eff620a..283f3680afd6 100644
--- a/dbaccess/source/ui/browser/unodatbr.cxx
+++ b/dbaccess/source/ui/browser/unodatbr.cxx
@@ -72,7 +72,6 @@
#include <com/sun/star/document/MacroExecMode.hpp>
#include <com/sun/star/ui/XContextMenuInterceptor.hpp>
-#include <comphelper/processfactory.hxx>
#include <comphelper/extract.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/types.hxx>
@@ -83,12 +82,13 @@
#include <svx/dataaccessdescriptor.hxx>
#include <svx/databaseregistrationui.hxx>
#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <sal/log.hxx>
#include <tools/multisel.hxx>
#include <tools/urlobj.hxx>
#include <unotools/confignode.hxx>
+#include <utility>
#include <vcl/split.hxx>
#include <vcl/svapp.hxx>
#include <vcl/toolbox.hxx>
@@ -111,7 +111,6 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::form;
-using namespace ::com::sun::star::io;
using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::view;
using namespace ::com::sun::star::datatransfer;
@@ -152,12 +151,12 @@ static void SafeRemovePropertyListener(const Reference< XPropertySet > & xSet, c
OUString SAL_CALL SbaTableQueryBrowser::getImplementationName()
{
- return "org.openoffice.comp.dbu.ODatasourceBrowser";
+ return u"org.openoffice.comp.dbu.ODatasourceBrowser"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL SbaTableQueryBrowser::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DataSourceBrowser" };
+ return { u"com.sun.star.sdb.DataSourceBrowser"_ustr };
}
SbaTableQueryBrowser::SbaTableQueryBrowser(const Reference< XComponentContext >& _rM)
@@ -193,9 +192,9 @@ Any SAL_CALL SbaTableQueryBrowser::queryInterface(const Type& _rType)
{
if ( _rType.equals( cppu::UnoType<XScriptInvocationContext>::get() ) )
{
- OSL_PRECOND( !!m_aDocScriptSupport, "SbaTableQueryBrowser::queryInterface: did not initialize this, yet!" );
- if ( !!m_aDocScriptSupport && *m_aDocScriptSupport )
- return makeAny( Reference< XScriptInvocationContext >( this ) );
+ OSL_PRECOND( m_aDocScriptSupport.has_value(), "SbaTableQueryBrowser::queryInterface: did not initialize this, yet!" );
+ if ( m_aDocScriptSupport.has_value() && *m_aDocScriptSupport )
+ return Any( Reference< XScriptInvocationContext >( this ) );
return Any();
}
@@ -212,13 +211,14 @@ Sequence< Type > SAL_CALL SbaTableQueryBrowser::getTypes( )
SbaTableQueryBrowser_Base::getTypes()
) );
- OSL_PRECOND( !!m_aDocScriptSupport, "SbaTableQueryBrowser::getTypes: did not initialize this, yet!" );
- if ( !m_aDocScriptSupport || !*m_aDocScriptSupport )
+ OSL_PRECOND( m_aDocScriptSupport.has_value(), "SbaTableQueryBrowser::getTypes: did not initialize this, yet!" );
+ if ( !m_aDocScriptSupport.has_value() || !*m_aDocScriptSupport )
{
- auto newEnd = std::remove_if( aTypes.begin(), aTypes.end(),
+ auto [begin, end] = asNonConstRange(aTypes);
+ auto newEnd = std::remove_if( begin, end,
[](const Type& type)
{ return type == cppu::UnoType<XScriptInvocationContext>::get(); } );
- aTypes.realloc( std::distance(aTypes.begin(), newEnd) );
+ aTypes.realloc( std::distance(begin, newEnd) );
}
return aTypes;
}
@@ -249,6 +249,11 @@ void SAL_CALL SbaTableQueryBrowser::disposing()
// remove ourself as status listener
implRemoveStatusListeners();
+ // check out from all the objects we are listening
+ // the frame
+ if (m_xCurrentFrameParent.is())
+ m_xCurrentFrameParent->removeFrameActionListener(static_cast<css::frame::XFrameActionListener*>(this));
+
// remove the container listener from the database context
try
{
@@ -260,10 +265,6 @@ void SAL_CALL SbaTableQueryBrowser::disposing()
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- // check out from all the objects we are listening
- // the frame
- if (m_xCurrentFrameParent.is())
- m_xCurrentFrameParent->removeFrameActionListener(static_cast<css::frame::XFrameActionListener*>(this));
SbaXDataBrowserController::disposing();
}
@@ -285,49 +286,49 @@ bool SbaTableQueryBrowser::Construct(vcl::Window* pParent)
{
SAL_WARN("dbaccess.ui", "SbaTableQueryBrowser::Construct: could not create (or start listening at) the database context!");
}
+
// some help ids
- if (getBrowserView() && getBrowserView()->getVclControl())
- {
+ if (!getBrowserView() || !getBrowserView()->getVclControl())
+ return true;
- // create controls and set sizes
- const tools::Long nFrameWidth = getBrowserView()->LogicToPixel(::Size(3, 0), MapMode(MapUnit::MapAppFont)).Width();
+ // create controls and set sizes
+ const tools::Long nFrameWidth = getBrowserView()->LogicToPixel(::Size(3, 0), MapMode(MapUnit::MapAppFont)).Width();
- m_pSplitter = VclPtr<Splitter>::Create(getBrowserView(),WB_HSCROLL);
- m_pSplitter->SetPosSizePixel( ::Point(0,0), ::Size(nFrameWidth,0) );
- m_pSplitter->SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetDialogColor() ) );
+ m_pSplitter = VclPtr<Splitter>::Create(getBrowserView(),WB_HSCROLL);
+ m_pSplitter->SetPosSizePixel( ::Point(0,0), ::Size(nFrameWidth,0) );
+ m_pSplitter->SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetDialogColor() ) );
- m_pTreeView = VclPtr<InterimDBTreeListBox>::Create(getBrowserView(), E_TABLE);
+ m_pTreeView = VclPtr<InterimDBTreeListBox>::Create(getBrowserView());
- weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- rTreeView.connect_expanding(LINK(this, SbaTableQueryBrowser, OnExpandEntry));
+ weld::TreeView& rTreeView = m_pTreeView->GetWidget();
+ rTreeView.connect_expanding(LINK(this, SbaTableQueryBrowser, OnExpandEntry));
- m_pTreeView->setCopyHandler(LINK(this, SbaTableQueryBrowser, OnCopyEntry));
+ m_pTreeView->setCopyHandler(LINK(this, SbaTableQueryBrowser, OnCopyEntry));
- m_pTreeView->setContextMenuProvider( this );
- m_pTreeView->setControlActionListener( this );
- m_pTreeView->SetHelpId(HID_CTL_TREEVIEW);
+ m_pTreeView->setContextMenuProvider( this );
+ m_pTreeView->setControlActionListener( this );
+ m_pTreeView->SetHelpId(HID_CTL_TREEVIEW);
- // a default pos for the splitter, so that the listbox is about 80 (logical) pixels wide
- m_pSplitter->SetSplitPosPixel(getBrowserView()->LogicToPixel(::Size(80, 0), MapMode(MapUnit::MapAppFont)).Width());
+ // a default pos for the splitter, so that the listbox is about 80 (logical) pixels wide
+ m_pSplitter->SetSplitPosPixel(getBrowserView()->LogicToPixel(::Size(80, 0), MapMode(MapUnit::MapAppFont)).Width());
- getBrowserView()->setSplitter(m_pSplitter);
- getBrowserView()->setTreeView(m_pTreeView);
+ getBrowserView()->setSplitter(m_pSplitter);
+ getBrowserView()->setTreeView(m_pTreeView);
- // fill view with data
- rTreeView.set_sort_order(true);
- rTreeView.set_sort_func([this](const weld::TreeIter& rLeft, const weld::TreeIter& rRight){
- return OnTreeEntryCompare(rLeft, rRight);
- });
- rTreeView.make_sorted();
- m_pTreeView->SetSelChangeHdl(LINK(this, SbaTableQueryBrowser, OnSelectionChange));
- m_pTreeView->show_container();
+ // fill view with data
+ rTreeView.set_sort_order(true);
+ rTreeView.set_sort_func([this](const weld::TreeIter& rLeft, const weld::TreeIter& rRight){
+ return OnTreeEntryCompare(rLeft, rRight);
+ });
+ rTreeView.make_sorted();
+ m_pTreeView->SetSelChangeHdl(LINK(this, SbaTableQueryBrowser, OnSelectionChange));
+ m_pTreeView->show_container();
- // TODO
- getBrowserView()->getVclControl()->SetHelpId(HID_CTL_TABBROWSER);
- if (getBrowserView()->getVclControl()->GetHeaderBar())
- getBrowserView()->getVclControl()->GetHeaderBar()->SetHelpId(HID_DATABROWSE_HEADER);
- InvalidateFeature(ID_BROWSER_EXPLORER);
- }
+ // TODO
+ getBrowserView()->getVclControl()->SetHelpId(HID_CTL_TABBROWSER);
+ if (getBrowserView()->getVclControl()->GetHeaderBar())
+ getBrowserView()->getVclControl()->GetHeaderBar()->SetHelpId(HID_DATABROWSE_HEADER);
+ InvalidateFeature(ID_BROWSER_EXPLORER);
return true;
}
@@ -415,8 +416,8 @@ void SbaTableQueryBrowser::impl_sanitizeRowSetClauses_nothrow()
if ( invalidColumn )
{
// reset the complete order statement at both the row set and the parser
- xRowSetProps->setPropertyValue( PROPERTY_ORDER, makeAny( OUString() ) );
- xComposer->setOrder( "" );
+ xRowSetProps->setPropertyValue( PROPERTY_ORDER, Any( OUString() ) );
+ xComposer->setOrder( u""_ustr );
}
// check if the columns participating in the filter refer to existing tables
@@ -468,7 +469,7 @@ bool SbaTableQueryBrowser::InitializeForm( const Reference< XPropertySet > & i_f
try
{
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed));
ENSURE_OR_RETURN_FALSE( pData, "SbaTableQueryBrowser::InitializeForm: No user data set at the currently displayed entry!" );
ENSURE_OR_RETURN_FALSE( pData->xObjectProperties.is(), "SbaTableQueryBrowser::InitializeForm: No table available!" );
@@ -478,16 +479,16 @@ bool SbaTableQueryBrowser::InitializeForm( const Reference< XPropertySet > & i_f
const OUString aTransferProperties[] =
{
- OUString(PROPERTY_APPLYFILTER),
- OUString(PROPERTY_FILTER),
- OUString(PROPERTY_HAVING_CLAUSE),
- OUString(PROPERTY_ORDER)
+ PROPERTY_APPLYFILTER,
+ PROPERTY_FILTER,
+ PROPERTY_HAVING_CLAUSE,
+ PROPERTY_ORDER
};
- for (const auto & aTransferPropertie : aTransferProperties)
+ for (const auto & aTransferProperty : aTransferProperties)
{
- if ( !xPSI->hasPropertyByName( aTransferPropertie ) )
+ if ( !xPSI->hasPropertyByName( aTransferProperty ) )
continue;
- aPropertyValues.put( aTransferPropertie, pData->xObjectProperties->getPropertyValue( aTransferPropertie ) );
+ aPropertyValues.put( aTransferProperty, pData->xObjectProperties->getPropertyValue( aTransferProperty ) );
}
std::vector< OUString > aNames( aPropertyValues.getNames() );
@@ -522,9 +523,9 @@ void SbaTableQueryBrowser::initializePreviewMode()
Reference< XPropertySet > xDataSourceSet(getRowSet(), UNO_QUERY);
if ( xDataSourceSet.is() )
{
- xDataSourceSet->setPropertyValue("AllowInserts",makeAny(false));
- xDataSourceSet->setPropertyValue("AllowUpdates",makeAny(false));
- xDataSourceSet->setPropertyValue("AllowDeletes",makeAny(false));
+ xDataSourceSet->setPropertyValue(u"AllowInserts"_ustr,Any(false));
+ xDataSourceSet->setPropertyValue(u"AllowUpdates"_ustr,Any(false));
+ xDataSourceSet->setPropertyValue(u"AllowDeletes"_ustr,Any(false));
}
}
@@ -545,10 +546,10 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
if (m_xCurrentlyDisplayed)
{
Sequence< OUString> aProperties(6 + ( m_bPreview ? 5 : 0 ));
- Sequence< Any> aValues(7 + ( m_bPreview ? 5 : 0 ));
+ Sequence< Any> aValues(6 + ( m_bPreview ? 5 : 0 ));
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed));
OSL_ENSURE( pData->xObjectProperties.is(), "SbaTableQueryBrowser::InitializeGridModel: No table available!" );
if ( !pData->xObjectProperties.is() )
return;
@@ -640,14 +641,14 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
case DataType::BOOLEAN:
{
aCurrentModelType = "CheckBox";
- aInitialValues.emplace_back( "VisualEffect", makeAny( VisualEffect::FLAT ) );
+ aInitialValues.emplace_back( "VisualEffect", Any( VisualEffect::FLAT ) );
sDefaultProperty = PROPERTY_DEFAULTSTATE;
sal_Int32 nNullable = ColumnValue::NULLABLE_UNKNOWN;
OSL_VERIFY( xColumn->getPropertyValue( PROPERTY_ISNULLABLE ) >>= nNullable );
aInitialValues.emplace_back(
"TriState",
- makeAny( ColumnValue::NO_NULLS != nNullable )
+ Any( ColumnValue::NO_NULLS != nNullable )
);
if ( ColumnValue::NO_NULLS == nNullable )
aDefault <<= sal_Int16(TRISTATE_FALSE);
@@ -656,7 +657,7 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
case DataType::LONGVARCHAR:
case DataType::CLOB:
- aInitialValues.emplace_back( "MultiLine", makeAny( true ) );
+ aInitialValues.emplace_back( "MultiLine", Any( true ) );
[[fallthrough]];
case DataType::BINARY:
case DataType::VARBINARY:
@@ -674,19 +675,19 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
sDefaultProperty = PROPERTY_EFFECTIVEDEFAULT;
if ( xSupplier.is() )
- aInitialValues.emplace_back( "FormatsSupplier", makeAny( xSupplier ) );
- aInitialValues.emplace_back( "TreatAsNumber", makeAny( bFormattedIsNumeric ) );
+ aInitialValues.emplace_back( "FormatsSupplier", Any( xSupplier ) );
+ aInitialValues.emplace_back( "TreatAsNumber", Any( bFormattedIsNumeric ) );
aCopyProperties.emplace_back(PROPERTY_FORMATKEY );
break;
}
- aInitialValues.emplace_back( PROPERTY_CONTROLSOURCE, makeAny( rName ) );
+ aInitialValues.emplace_back( PROPERTY_CONTROLSOURCE, Any( rName ) );
OUString sLabel;
xColumn->getPropertyValue(PROPERTY_LABEL) >>= sLabel;
if ( !sLabel.isEmpty() )
- aInitialValues.emplace_back( PROPERTY_LABEL, makeAny( sLabel ) );
+ aInitialValues.emplace_back( PROPERTY_LABEL, Any( sLabel ) );
else
- aInitialValues.emplace_back( PROPERTY_LABEL, makeAny( rName ) );
+ aInitialValues.emplace_back( PROPERTY_LABEL, Any( rName ) );
Reference< XPropertySet > xGridCol( xColFactory->createColumn( aCurrentModelType ), UNO_SET_THROW );
Reference< XPropertySetInfo > xGridColPSI( xGridCol->getPropertySetInfo(), UNO_SET_THROW );
@@ -733,7 +734,7 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
// don't allow the mouse to scroll in the cells
if ( xGridColPSI->hasPropertyByName( PROPERTY_MOUSE_WHEEL_BEHAVIOR ) )
- aInitialValues.emplace_back( PROPERTY_MOUSE_WHEEL_BEHAVIOR, makeAny( MouseWheelBehavior::SCROLL_DISABLED ) );
+ aInitialValues.emplace_back( PROPERTY_MOUSE_WHEEL_BEHAVIOR, Any( MouseWheelBehavior::SCROLL_DISABLED ) );
// now set all those values
for (auto const& property : aInitialValues)
@@ -743,7 +744,7 @@ void SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
for (auto const& copyPropertyName : aCopyProperties)
xGridCol->setPropertyValue( copyPropertyName, xColumn->getPropertyValue(copyPropertyName) );
- xColContainer->insertByName(rName, makeAny(xGridCol));
+ xColContainer->insertByName(rName, Any(xGridCol));
}
}
}
@@ -760,7 +761,7 @@ static Reference<XPropertySet> getColumnHelper(const weld::TreeView& rTreeView,
Reference<XPropertySet> xRet;
if (pCurrentlyDisplayed)
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*pCurrentlyDisplayed).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*pCurrentlyDisplayed));
Reference<XColumnsSupplier> xColumnsSup(pData->xObjectProperties,UNO_QUERY);
Reference<XNameAccess> xNames = xColumnsSup->getColumns();
OUString aName;
@@ -776,7 +777,7 @@ void SbaTableQueryBrowser::transferChangedControlProperty(const OUString& _rProp
if (m_xCurrentlyDisplayed)
{
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed));
Reference< XPropertySet > xObjectProps = pData->xObjectProperties;
OSL_ENSURE(xObjectProps.is(),"SbaTableQueryBrowser::transferChangedControlProperty: no table/query object!");
if (xObjectProps.is())
@@ -804,7 +805,7 @@ void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt)
if(xProp.is())
{
if(!evt.NewValue.hasValue())
- xProp->setPropertyValue(PROPERTY_WIDTH,makeAny(sal_Int32(227)));
+ xProp->setPropertyValue(PROPERTY_WIDTH,Any(sal_Int32(227)));
else
xProp->setPropertyValue(PROPERTY_WIDTH,evt.NewValue);
}
@@ -830,12 +831,12 @@ void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt)
{
sal_Int16 nAlign = 0;
if(evt.NewValue >>= nAlign)
- xProp->setPropertyValue(PROPERTY_ALIGN,makeAny(sal_Int32(nAlign)));
+ xProp->setPropertyValue(PROPERTY_ALIGN,Any(sal_Int32(nAlign)));
else
xProp->setPropertyValue(PROPERTY_ALIGN,evt.NewValue);
}
else
- xProp->setPropertyValue(PROPERTY_ALIGN,makeAny(css::awt::TextAlign::LEFT));
+ xProp->setPropertyValue(PROPERTY_ALIGN,Any(css::awt::TextAlign::LEFT));
}
}
catch( const Exception& )
@@ -861,12 +862,12 @@ void SbaTableQueryBrowser::propertyChange(const PropertyChangeEvent& evt)
{
if (m_xCurrentlyDisplayed)
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*m_xCurrentlyDisplayed));
OSL_ENSURE( pData->xObjectProperties.is(), "No table available!" );
bool bDefault = !evt.NewValue.hasValue();
if (bDefault)
- pData->xObjectProperties->setPropertyValue(PROPERTY_ROW_HEIGHT,makeAny(sal_Int32(45)));
+ pData->xObjectProperties->setPropertyValue(PROPERTY_ROW_HEIGHT,Any(sal_Int32(45)));
else
pData->xObjectProperties->setPropertyValue(PROPERTY_ROW_HEIGHT,evt.NewValue);
}
@@ -1036,7 +1037,7 @@ namespace
struct FilterByEntryDataId : public IEntryFilter
{
OUString sId;
- explicit FilterByEntryDataId( const OUString& _rId ) : sId( _rId ) { }
+ explicit FilterByEntryDataId( OUString _aId ) : sId(std::move( _aId )) { }
virtual ~FilterByEntryDataId() {}
@@ -1053,8 +1054,8 @@ namespace
OUString SbaTableQueryBrowser::getDataSourceAccessor(const weld::TreeIter& rDataSourceEntry) const
{
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rDataSourceEntry).toUInt64());
- OSL_ENSURE( pData, "SbaTableQueryBrowser::getDataSourceAccessor: invalid entry data!" );
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rDataSourceEntry));
+ assert(pData && "SbaTableQueryBrowser::getDataSourceAccessor: invalid entry data!");
OSL_ENSURE( pData->eType == etDatasource, "SbaTableQueryBrowser::getDataSourceAccessor: entry does not denote a data source!" );
return !pData->sAccessor.isEmpty() ? pData->sAccessor : GetEntryText(rDataSourceEntry);
}
@@ -1093,14 +1094,14 @@ std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::getObjectEntry(const OUStr
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- if (ppDataSourceEntry)
- {
- // (caller wants to have it...)
- *ppDataSourceEntry = rTreeView.make_iterator(xDataSource.get());
- }
-
if (xDataSource)
{
+ if (ppDataSourceEntry)
+ {
+ // (caller wants to have it...)
+ *ppDataSourceEntry = rTreeView.make_iterator(xDataSource.get());
+ }
+
// expand if required so
if (bExpandAncestors)
rTreeView.expand_row(*xDataSource);
@@ -1122,14 +1123,14 @@ std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::getObjectEntry(const OUStr
}
}
- if (ppContainerEntry)
- {
- // (caller wants to have it...)
- *ppContainerEntry = rTreeView.make_iterator(xCommandType.get());
- }
-
if (xCommandType)
{
+ if (ppContainerEntry)
+ {
+ // (caller wants to have it...)
+ *ppContainerEntry = rTreeView.make_iterator(xCommandType.get());
+ }
+
rTreeView.make_unsorted();
// expand if required so
@@ -1166,7 +1167,7 @@ std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::getObjectEntry(const OUStr
{
if (ensureEntryObject(*xObject))
{
- DBTreeListUserData* pParentData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xObject).toUInt64());
+ DBTreeListUserData* pParentData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xObject));
Reference< XNameAccess > xCollection( pParentData->xContainer, UNO_QUERY );
sal_Int32 nIndex2 = nIndex;
sPath = _rCommand.getToken( 0, '/', nIndex2 );
@@ -1183,7 +1184,7 @@ std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::getObjectEntry(const OUStr
{
pEntryData->eType = etQueryContainer;
}
- implAppendEntry(xObject.get(), sPath, pEntryData, pEntryData->eType);
+ implAppendEntry(xObject.get(), sPath, pEntryData);
}
}
}
@@ -1225,33 +1226,33 @@ void SbaTableQueryBrowser::connectExternalDispatches()
if ( m_aExternalFeatures.empty() )
{
- const char* pURLs[] = {
- ".uno:DataSourceBrowser/DocumentDataSource",
- ".uno:DataSourceBrowser/FormLetter",
- ".uno:DataSourceBrowser/InsertColumns",
- ".uno:DataSourceBrowser/InsertContent",
+ static constexpr OUString aURLs[] {
+ u".uno:DataSourceBrowser/DocumentDataSource"_ustr,
+ u".uno:DataSourceBrowser/FormLetter"_ustr,
+ u".uno:DataSourceBrowser/InsertColumns"_ustr,
+ u".uno:DataSourceBrowser/InsertContent"_ustr,
};
- const sal_uInt16 nIds[] = {
+ static constexpr sal_uInt16 nIds[] = {
ID_BROWSER_DOCUMENT_DATASOURCE,
ID_BROWSER_FORMLETTER,
ID_BROWSER_INSERTCOLUMNS,
ID_BROWSER_INSERTCONTENT
};
- for ( size_t i=0; i < SAL_N_ELEMENTS( pURLs ); ++i )
+ for ( size_t i=0; i < std::size( aURLs ); ++i )
{
URL aURL;
- aURL.Complete = OUString::createFromAscii( pURLs[i] );
+ aURL.Complete = aURLs[i];
if ( m_xUrlTransformer.is() )
m_xUrlTransformer->parseStrict( aURL );
- m_aExternalFeatures[ nIds[ i ] ] = ExternalFeature( aURL );
+ m_aExternalFeatures[ nIds[ i ] ] = ExternalFeature( std::move(aURL) );
}
}
for (auto & externalFeature : m_aExternalFeatures)
{
externalFeature.second.xDispatcher = xProvider->queryDispatch(
- externalFeature.second.aURL, "_parent", FrameSearchFlag::PARENT
+ externalFeature.second.aURL, u"_parent"_ustr, FrameSearchFlag::PARENT
);
if ( externalFeature.second.xDispatcher.get() == static_cast< XDispatch* >( this ) )
@@ -1291,8 +1292,8 @@ void SbaTableQueryBrowser::implCheckExternalSlot( sal_uInt16 _nId )
if ( pToolbox )
{
bool bHaveDispatcher = m_aExternalFeatures[ _nId ].xDispatcher.is();
- if ( bHaveDispatcher != pToolbox->IsItemVisible( _nId ) )
- bHaveDispatcher ? pToolbox->ShowItem( _nId ) : pToolbox->HideItem( _nId );
+ if ( bHaveDispatcher != pToolbox->IsItemVisible( ToolBoxItemId(_nId) ) )
+ bHaveDispatcher ? pToolbox->ShowItem( ToolBoxItemId(_nId) ) : pToolbox->HideItem( ToolBoxItemId(_nId) );
}
// and invalidate this feature in general
@@ -1344,7 +1345,7 @@ void SAL_CALL SbaTableQueryBrowser::disposing( const css::lang::EventObject& _rS
{
do
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xDSLoop).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xDSLoop));
if ( pData && pData->xConnection == xCon )
{
// we set the connection to null to avoid a second disposing of the connection
@@ -1458,7 +1459,7 @@ void SbaTableQueryBrowser::attachFrame(const Reference< css::frame::XFrame > & _
Reference< XFrame > xCurrentFrame( getFrame() );
if ( xCurrentFrame.is() )
{
- m_xCurrentFrameParent = xCurrentFrame->findFrame("_parent",FrameSearchFlag::PARENT);
+ m_xCurrentFrameParent = xCurrentFrame->findFrame(u"_parent"_ustr,FrameSearchFlag::PARENT);
if ( m_xCurrentFrameParent.is() )
m_xCurrentFrameParent->addFrameActionListener(static_cast<css::frame::XFrameActionListener*>(this));
@@ -1467,13 +1468,13 @@ void SbaTableQueryBrowser::attachFrame(const Reference< css::frame::XFrame > & _
{
Reference< XPropertySet > xFrameProps( m_aCurrentFrame.getFrame(), UNO_QUERY_THROW );
Reference< XLayoutManager > xLayouter(
- xFrameProps->getPropertyValue("LayoutManager"),
+ xFrameProps->getPropertyValue(u"LayoutManager"_ustr),
UNO_QUERY );
if ( xLayouter.is() )
{
Reference< XUIElement > xUI(
- xLayouter->getElement( "private:resource/toolbar/toolbar" ),
+ xLayouter->getElement( u"private:resource/toolbar/toolbar"_ustr ),
UNO_SET_THROW );
m_xMainToolbar.set(xUI->getRealInterface(), css::uno::UNO_QUERY);
OSL_ENSURE( m_xMainToolbar.is(), "SbaTableQueryBrowser::attachFrame: where's my toolbox?" );
@@ -1644,7 +1645,7 @@ FeatureState SbaTableQueryBrowser::GetState(sal_uInt16 nId) const
std::unique_ptr<weld::TreeIter> xDataSourceEntry = m_pTreeView->GetRootLevelParent(xCurrentEntry.get());
DBTreeListUserData* pDSData
= xDataSourceEntry
- ? reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xDataSourceEntry).toUInt64())
+ ? weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xDataSourceEntry))
: nullptr;
if ( nId == ID_TREE_CLOSE_CONN )
@@ -1654,9 +1655,9 @@ FeatureState SbaTableQueryBrowser::GetState(sal_uInt16 nId) const
else if ( nId == ID_TREE_EDIT_DATABASE )
{
::utl::OConfigurationTreeRoot aConfig( ::utl::OConfigurationTreeRoot::createWithComponentContext( getORB(),
- "/org.openoffice.Office.DataAccess/Policies/Features/Common" ) );
+ u"/org.openoffice.Office.DataAccess/Policies/Features/Common"_ustr ) );
bool bHaveEditDatabase( true );
- OSL_VERIFY( aConfig.getNodeValue( "EditDatabaseFromDataSourceView" ) >>= bHaveEditDatabase );
+ OSL_VERIFY( aConfig.getNodeValue( u"EditDatabaseFromDataSourceView"_ustr ) >>= bHaveEditDatabase );
aReturn.bEnabled = getORB().is() && xDataSourceEntry && bHaveEditDatabase;
}
else if ( nId == ID_BROWSER_COPY )
@@ -2033,7 +2034,7 @@ void SbaTableQueryBrowser::implAddDatasource(const OUString& _rDbName, OUString&
pDSData->eType = etDatasource;
pDSData->sAccessor = sDataSourceId;
pDSData->xConnection = _rxConnection;
- OUString sId(OUString::number(reinterpret_cast<sal_uInt64>(pDSData)));
+ OUString sId(weld::toId(pDSData));
std::unique_ptr<weld::TreeIter> xDatasourceEntry(rTreeView.make_iterator());
rTreeView.insert(nullptr, -1, &sDSDisplayName, &sId, nullptr, nullptr, false, xDatasourceEntry.get());
@@ -2044,7 +2045,7 @@ void SbaTableQueryBrowser::implAddDatasource(const OUString& _rDbName, OUString&
{
DBTreeListUserData* pQueriesData = new DBTreeListUserData;
pQueriesData->eType = etQueryContainer;
- sId = OUString::number(reinterpret_cast<sal_uInt64>(pQueriesData));
+ sId = weld::toId(pQueriesData);
std::unique_ptr<weld::TreeIter> xRet(rTreeView.make_iterator());
rTreeView.insert(xDatasourceEntry.get(), -1, &_rQueryName, &sId,
@@ -2057,7 +2058,7 @@ void SbaTableQueryBrowser::implAddDatasource(const OUString& _rDbName, OUString&
{
DBTreeListUserData* pTablesData = new DBTreeListUserData;
pTablesData->eType = etTableContainer;
- sId = OUString::number(reinterpret_cast<sal_uInt64>(pTablesData));
+ sId = weld::toId(pTablesData);
std::unique_ptr<weld::TreeIter> xRet(rTreeView.make_iterator());
rTreeView.insert(xDatasourceEntry.get(), -1, &_rTableName, &sId,
@@ -2088,7 +2089,7 @@ void SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xNameAcce
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
rTreeView.make_unsorted();
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rParent).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rParent));
if (pData) // don't ask if the nameaccess is already set see OnExpandEntry views and tables
pData->xContainer = _xNameAccess;
@@ -2107,7 +2108,7 @@ void SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xNameAcce
if ( xChild.is() )
pEntryData->eType = etQueryContainer;
}
- implAppendEntry(&rParent, rName, pEntryData, pEntryData->eType);
+ implAppendEntry(&rParent, rName, pEntryData);
}
}
}
@@ -2119,13 +2120,15 @@ void SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xNameAcce
rTreeView.make_sorted();
}
-std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::implAppendEntry(const weld::TreeIter* pParent, const OUString& rName, void* pUserData, EntryType eEntryType)
+std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::implAppendEntry(const weld::TreeIter* pParent, const OUString& rName, const DBTreeListUserData* pUserData)
{
+ EntryType eEntryType = pUserData->eType;
+
std::unique_ptr<ImageProvider> xImageProvider(getImageProviderFor(pParent));
OUString aImage = xImageProvider->getImageId(rName, getDatabaseObjectType(eEntryType));
- OUString sId(OUString::number(reinterpret_cast<sal_uInt64>(pUserData)));
+ OUString sId(weld::toId(pUserData));
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
std::unique_ptr<weld::TreeIter> xNewEntry(rTreeView.make_iterator());
rTreeView.insert(pParent, -1, &rName, &sId, nullptr, nullptr, eEntryType == etQueryContainer, xNewEntry.get());
@@ -2147,7 +2150,7 @@ IMPL_LINK(SbaTableQueryBrowser, OnExpandEntry, const weld::TreeIter&, rParent, b
std::unique_ptr<weld::TreeIter> xFirstParent = m_pTreeView->GetRootLevelParent(&rParent);
OSL_ENSURE(xFirstParent,"SbaTableQueryBrowser::OnExpandEntry: No rootlevelparent!");
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rParent).toInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rParent));
assert(pData && "SbaTableQueryBrowser::OnExpandEntry: No user data!");
if (etTableContainer == pData->eType)
@@ -2156,9 +2159,7 @@ IMPL_LINK(SbaTableQueryBrowser, OnExpandEntry, const weld::TreeIter&, rParent, b
// it could be that we already have a connection
SharedConnection xConnection;
- ensureConnection(xFirstParent.get(), xConnection);
-
- if ( xConnection.is() )
+ if (ensureConnection(xFirstParent.get(), xConnection) && xConnection.is())
{
SQLExceptionInfo aInfo;
try
@@ -2235,7 +2236,7 @@ IMPL_LINK(SbaTableQueryBrowser, OnExpandEntry, const weld::TreeIter&, rParent, b
// we have to expand the queries or bookmarks
if (ensureEntryObject(rParent))
{
- DBTreeListUserData* pParentData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rParent).toUInt64());
+ DBTreeListUserData* pParentData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rParent));
Reference< XNameAccess > xCollection( pParentData->xContainer, UNO_QUERY );
populateTree(xCollection, rParent, etQuery);
}
@@ -2249,8 +2250,8 @@ bool SbaTableQueryBrowser::ensureEntryObject(const weld::TreeIter& rEntry)
// the user data of the entry
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pEntryData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(rEntry).toUInt64());
- OSL_ENSURE(pEntryData,"ensureEntryObject: user data should already be set!");
+ DBTreeListUserData* pEntryData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(rEntry));
+ assert(pEntryData && "ensureEntryObject: user data should already be set!");
std::unique_ptr<weld::TreeIter> xDataSourceEntry = m_pTreeView->GetRootLevelParent(&rEntry);
@@ -2272,7 +2273,7 @@ bool SbaTableQueryBrowser::ensureEntryObject(const weld::TreeIter& rEntry)
if (rTreeView.iter_compare(*xParent, *xDataSourceEntry) != 0)
{
OUString aName(rTreeView.get_text(rEntry));
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xParent).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xParent));
try
{
Reference< XNameAccess > xNameAccess(pData->xContainer,UNO_QUERY);
@@ -2344,17 +2345,17 @@ bool SbaTableQueryBrowser::implLoadAnything(const OUString& _rDataSourceName, co
Reference<XPropertySet> xProp( getRowSet(), UNO_QUERY_THROW );
Reference< XLoadable > xLoadable( xProp, UNO_QUERY_THROW );
// the values allowing the RowSet to re-execute
- xProp->setPropertyValue(PROPERTY_DATASOURCENAME, makeAny(_rDataSourceName));
+ xProp->setPropertyValue(PROPERTY_DATASOURCENAME, Any(_rDataSourceName));
if(_rxConnection.is())
- xProp->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( _rxConnection.getTyped() ) );
+ xProp->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, Any( _rxConnection.getTyped() ) );
// set this _before_ setting the connection, else the rowset would rebuild it ...
- xProp->setPropertyValue(PROPERTY_COMMAND_TYPE, makeAny(nCommandType));
- xProp->setPropertyValue(PROPERTY_COMMAND, makeAny(_rCommand));
- xProp->setPropertyValue(PROPERTY_ESCAPE_PROCESSING, css::uno::makeAny(_bEscapeProcessing));
+ xProp->setPropertyValue(PROPERTY_COMMAND_TYPE, Any(nCommandType));
+ xProp->setPropertyValue(PROPERTY_COMMAND, Any(_rCommand));
+ xProp->setPropertyValue(PROPERTY_ESCAPE_PROCESSING, css::uno::Any(_bEscapeProcessing));
if ( m_bPreview )
{
- xProp->setPropertyValue(PROPERTY_FETCHDIRECTION, makeAny(FetchDirection::FORWARD));
+ xProp->setPropertyValue(PROPERTY_FETCHDIRECTION, Any(FetchDirection::FORWARD));
}
// the formatter depends on the data source we're working on, so rebuild it here ...
@@ -2424,45 +2425,45 @@ bool SbaTableQueryBrowser::implSelect(const OUString& _rDataSourceName, const OU
const SharedConnection& _rxConnection,
bool _bSelectDirect)
{
- if (_rDataSourceName.getLength() && _rCommand.getLength() && (-1 != nCommandType))
- {
- std::unique_ptr<weld::TreeIter> xDataSource;
- std::unique_ptr<weld::TreeIter> xCommandType;
- std::unique_ptr<weld::TreeIter> xCommand = getObjectEntry( _rDataSourceName, _rCommand, nCommandType, &xDataSource, &xCommandType, true, _rxConnection );
+ if (!_rDataSourceName.getLength() || !_rCommand.getLength() || (-1 == nCommandType))
+ return false;
- if (xCommand)
- {
- weld::TreeView& rTreeView = m_pTreeView->GetWidget();
+ std::unique_ptr<weld::TreeIter> xDataSource;
+ std::unique_ptr<weld::TreeIter> xCommandType;
+ std::unique_ptr<weld::TreeIter> xCommand = getObjectEntry( _rDataSourceName, _rCommand, nCommandType, &xDataSource, &xCommandType, true, _rxConnection );
- bool bSuccess = true;
- if ( _bSelectDirect )
- {
- bSuccess = implSelect(xCommand.get());
- }
- else
- {
- rTreeView.select(*xCommand);
- }
+ if (xCommand)
+ {
+ weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- if ( bSuccess )
- {
- rTreeView.scroll_to_row(*xCommand);
- rTreeView.set_cursor(*xCommand);
- }
+ bool bSuccess = true;
+ if ( _bSelectDirect )
+ {
+ bSuccess = implSelect(xCommand.get());
}
- else if (!xCommandType)
+ else
{
- if (m_xCurrentlyDisplayed)
- {
- // tell the old entry (if any) it has been deselected
- selectPath(m_xCurrentlyDisplayed.get(), false);
- m_xCurrentlyDisplayed.reset();
- }
+ rTreeView.select(*xCommand);
+ }
- // we have a command and need to display this in the rowset
- return implLoadAnything(_rDataSourceName, _rCommand, nCommandType, _bEscapeProcessing, _rxConnection);
+ if ( bSuccess )
+ {
+ rTreeView.scroll_to_row(*xCommand);
+ rTreeView.set_cursor(*xCommand);
}
}
+ else if (!xCommandType)
+ {
+ if (m_xCurrentlyDisplayed)
+ {
+ // tell the old entry (if any) it has been deselected
+ selectPath(m_xCurrentlyDisplayed.get(), false);
+ m_xCurrentlyDisplayed.reset();
+ }
+
+ // we have a command and need to display this in the rowset
+ return implLoadAnything(_rDataSourceName, _rCommand, nCommandType, _bEscapeProcessing, _rxConnection);
+ }
return false;
}
@@ -2475,15 +2476,15 @@ IMPL_LINK_NOARG(SbaTableQueryBrowser, OnSelectionChange, LinkParamNone*, void)
implSelect(xSelection.get());
}
-std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::implGetConnectionEntry(weld::TreeIter& rEntry) const
+std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::implGetConnectionEntry(const weld::TreeIter& rEntry) const
{
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
std::unique_ptr<weld::TreeIter> xCurrentEntry(rTreeView.make_iterator(&rEntry));
- DBTreeListUserData* pEntryData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xCurrentEntry).toInt64());
+ DBTreeListUserData* pEntryData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xCurrentEntry));
while (pEntryData->eType != etDatasource)
{
rTreeView.iter_parent(*xCurrentEntry);
- pEntryData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xCurrentEntry).toInt64());
+ pEntryData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xCurrentEntry));
}
return xCurrentEntry;
}
@@ -2494,7 +2495,7 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
return false;
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pEntryData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*pEntry).toUInt64());
+ DBTreeListUserData* pEntryData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*pEntry));
switch (pEntryData->eType)
{
case etTableOrView:
@@ -2510,11 +2511,11 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
// get the entry for the tables or queries
std::unique_ptr<weld::TreeIter> xContainer = rTreeView.make_iterator(pEntry);
rTreeView.iter_parent(*xContainer);
- DBTreeListUserData* pContainerData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xContainer).toUInt64());
+ DBTreeListUserData* pContainerData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xContainer));
// get the entry for the datasource
std::unique_ptr<weld::TreeIter> xConnection = implGetConnectionEntry(*xContainer);
- DBTreeListUserData* pConData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xConnection).toUInt64());
+ DBTreeListUserData* pConData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xConnection));
// reinitialize the rowset
// but first check if it is necessary
@@ -2537,8 +2538,7 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
{
while (rTreeView.iter_compare(*xNextTemp, *xConnection) != 0)
{
- sNameBuffer.insert(0,'/');
- sNameBuffer.insert(0, rTreeView.get_text(*xTemp));
+ sNameBuffer.insert(0, rTreeView.get_text(*xTemp) + "/");
rTreeView.copy_iterator(*xNextTemp, *xTemp);
if (!rTreeView.iter_parent(*xNextTemp))
break;
@@ -2575,7 +2575,7 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
selectPath(m_xCurrentlyDisplayed.get());
// get the name of the data source currently selected
- ensureConnection(m_xCurrentlyDisplayed.get(), pConData->xConnection);
+ (void)ensureConnection(m_xCurrentlyDisplayed.get(), pConData->xConnection);
if ( !pConData->xConnection.is() )
{
@@ -2621,7 +2621,7 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
bool bEscapeProcessing = true;
if(xNameAccess.is() && xNameAccess->hasByName(sSimpleName))
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*pEntry).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*pEntry));
if ( !pData->xObjectProperties.is() )
{
Reference<XInterface> xObject;
@@ -2653,7 +2653,7 @@ bool SbaTableQueryBrowser::implSelect(const weld::TreeIter* pEntry)
OUString sReplace = sSql.replaceFirst(sFilter, "");
xAnalyzer->setQuery(sReplace);
Reference<XSingleSelectQueryComposer> xComposer(xAnalyzer,UNO_QUERY);
- xComposer->setFilter("0=1");
+ xComposer->setFilter(u"0=1"_ustr);
aName = xAnalyzer->getQuery();
nCommandType = CommandType::COMMAND;
}
@@ -2722,14 +2722,14 @@ std::unique_ptr<weld::TreeIter> SbaTableQueryBrowser::getEntryFromContainer(cons
if (rTreeView.iter_children(*xContainer))
{
// 1st child is queries
- DBTreeListUserData* pQueriesData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xContainer).toUInt64());
+ DBTreeListUserData* pQueriesData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xContainer));
if (pQueriesData && pQueriesData->xContainer == rxNameAccess)
break;
if (rTreeView.iter_next_sibling(*xContainer))
{
// 2nd child is tables
- DBTreeListUserData* pTablesData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xContainer).toUInt64());
+ DBTreeListUserData* pTablesData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xContainer));
if (pTablesData && pTablesData->xContainer == rxNameAccess)
break;
}
@@ -2756,8 +2756,8 @@ void SAL_CALL SbaTableQueryBrowser::elementInserted(const ContainerEvent& rEvent
rTreeView.make_unsorted();
// insert the new entry into the tree
- DBTreeListUserData* pContainerData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xEntry).toUInt64());
- OSL_ENSURE(pContainerData, "elementInserted: There must be user data for this type!");
+ DBTreeListUserData* pContainerData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xEntry));
+ assert(pContainerData && "elementInserted: There must be user data for this type!");
DBTreeListUserData* pNewData = new DBTreeListUserData;
bool bIsTable = etTableContainer == pContainerData->eType;
@@ -2776,7 +2776,7 @@ void SAL_CALL SbaTableQueryBrowser::elementInserted(const ContainerEvent& rEvent
}
pNewData->eType = etQuery;
}
- implAppendEntry(xEntry.get(), ::comphelper::getString(rEvent.Accessor), pNewData, pNewData->eType);
+ implAppendEntry(xEntry.get(), ::comphelper::getString(rEvent.Accessor), pNewData);
rTreeView.make_sorted();
}
@@ -2784,7 +2784,7 @@ void SAL_CALL SbaTableQueryBrowser::elementInserted(const ContainerEvent& rEvent
SbaXDataBrowserController::elementInserted(rEvent);
}
-bool SbaTableQueryBrowser::isCurrentlyDisplayedChanged(const OUString& rName, const weld::TreeIter& rContainer)
+bool SbaTableQueryBrowser::isCurrentlyDisplayedChanged(std::u16string_view rName, const weld::TreeIter& rContainer)
{
if (!m_xCurrentlyDisplayed)
return false;
@@ -2821,7 +2821,7 @@ void SAL_CALL SbaTableQueryBrowser::elementRemoved( const ContainerEvent& _rEven
// unload
unloadAndCleanup( false ); // don't dispose the connection
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xTemp).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xTemp));
rTreeView.set_id(*xTemp, OUString());
delete pData; // the data could be null because we have a table which isn't correct
rTreeView.remove(*xTemp);
@@ -2836,7 +2836,7 @@ void SAL_CALL SbaTableQueryBrowser::elementRemoved( const ContainerEvent& _rEven
{
if (rTreeView.get_text(*xChild) == aName)
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xChild).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xChild));
rTreeView.set_id(*xChild, OUString());
delete pData;
rTreeView.remove(*xChild);
@@ -2861,7 +2861,7 @@ void SAL_CALL SbaTableQueryBrowser::elementReplaced( const ContainerEvent& _rEve
std::unique_ptr<weld::TreeIter> xContainer = getEntryFromContainer(xNames);
if (xContainer)
{
- // a table or query as been replaced
+ // a table or query has been replaced
OUString aName = ::comphelper::getString(_rEvent.Accessor);
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
@@ -2872,13 +2872,13 @@ void SAL_CALL SbaTableQueryBrowser::elementReplaced( const ContainerEvent& _rEve
std::unique_ptr<weld::TreeIter> xTemp = rTreeView.make_iterator(m_xCurrentlyDisplayed.get());
unloadAndCleanup( false ); // don't dispose the connection
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xTemp).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xTemp));
if (pData)
{
if ( etTableOrView == pData->eType )
{
// only insert userdata when we have a table because the query is only a commanddefinition object and not a query
- _rEvent.Element >>= pData->xObjectProperties; // remember the new element
+ _rEvent.Element >>= pData->xObjectProperties; // remember the new element
}
else
{
@@ -2897,7 +2897,7 @@ void SAL_CALL SbaTableQueryBrowser::elementReplaced( const ContainerEvent& _rEve
{
if (rTreeView.get_text(*xChild) == aName)
{
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xChild).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xChild));
if (pData)
{
if ( etTableOrView == pData->eType )
@@ -2965,13 +2965,13 @@ void SbaTableQueryBrowser::disposeConnection(const weld::TreeIter* pDSEntry)
if (pDSEntry)
{
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
- DBTreeListUserData* pTreeListData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*pDSEntry).toUInt64());
+ DBTreeListUserData* pTreeListData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*pDSEntry));
if (pTreeListData)
impl_releaseConnection(pTreeListData->xConnection);
}
}
-void SbaTableQueryBrowser::closeConnection(weld::TreeIter& rDSEntry, bool _bDisposeConnection)
+void SbaTableQueryBrowser::closeConnection(const weld::TreeIter& rDSEntry, bool _bDisposeConnection)
{
OSL_ENSURE(impl_isDataSourceEntry(&rDSEntry), "SbaTableQueryBrowser::closeConnection: invalid entry (not top-level)!");
@@ -3001,7 +3001,7 @@ void SbaTableQueryBrowser::closeConnection(weld::TreeIter& rDSEntry, bool _bDisp
{
std::unique_ptr<weld::TreeIter> xRemove(rTreeView.make_iterator(xElements.get()));
bElements = rTreeView.iter_next_sibling(*xElements);
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xRemove).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xRemove));
rTreeView.set_id(*xRemove, OUString());
delete pData;
rTreeView.remove(*xRemove);
@@ -3088,17 +3088,17 @@ namespace
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- return xDataSource.get();
+ return xDataSource;
}
}
-void SbaTableQueryBrowser::impl_initialize()
+void SbaTableQueryBrowser::impl_initialize(const ::comphelper::NamedValueCollection& rArguments)
{
SolarMutexGuard aGuard;
// doin' a lot of VCL stuff here -> lock the SolarMutex
// first initialize the parent
- SbaXDataBrowserController::impl_initialize();
+ SbaXDataBrowserController::impl_initialize(rArguments);
Reference<XConnection> xForeignConnection;
Reference< XFrame > xFrame;
@@ -3110,8 +3110,6 @@ void SbaTableQueryBrowser::impl_initialize()
OUString sInitialDataSourceName;
OUString sInitialCommand;
- const NamedValueCollection& rArguments( getInitParams() );
-
rArguments.get_ensureType( PROPERTY_DATASOURCENAME, sInitialDataSourceName );
rArguments.get_ensureType( PROPERTY_COMMAND_TYPE, nInitialDisplayCommandType );
rArguments.get_ensureType( PROPERTY_COMMAND, sInitialCommand );
@@ -3120,22 +3118,22 @@ void SbaTableQueryBrowser::impl_initialize()
rArguments.get_ensureType( PROPERTY_UPDATE_SCHEMANAME, aSchemaName );
rArguments.get_ensureType( PROPERTY_UPDATE_TABLENAME, aTableName );
rArguments.get_ensureType( PROPERTY_ESCAPE_PROCESSING, bEscapeProcessing );
- rArguments.get_ensureType( "Frame", xFrame );
+ rArguments.get_ensureType( u"Frame"_ustr, xFrame );
rArguments.get_ensureType( PROPERTY_SHOWMENU, m_bShowMenu );
// disable the browser if either of ShowTreeViewButton (compatibility name) or EnableBrowser
// is present and set to FALSE
- bool bDisableBrowser = !rArguments.getOrDefault( "ShowTreeViewButton", true ) // compatibility name
+ bool bDisableBrowser = !rArguments.getOrDefault( u"ShowTreeViewButton"_ustr, true ) // compatibility name
|| !rArguments.getOrDefault( PROPERTY_ENABLE_BROWSER, true );
- OSL_ENSURE( !rArguments.has( "ShowTreeViewButton" ),
+ OSL_ENSURE( !rArguments.has( u"ShowTreeViewButton"_ustr ),
"SbaTableQueryBrowser::impl_initialize: ShowTreeViewButton is superseded by EnableBrowser!" );
m_bEnableBrowser = !bDisableBrowser;
// hide the tree view it is disabled in general, or if the settings tell to hide it initially
bool bHideTreeView = ( !m_bEnableBrowser )
- || !rArguments.getOrDefault( "ShowTreeView", true ) // compatibility name
+ || !rArguments.getOrDefault( u"ShowTreeView"_ustr, true ) // compatibility name
|| !rArguments.getOrDefault( PROPERTY_SHOW_BROWSER, true );
- OSL_ENSURE( !rArguments.has( "ShowTreeView" ),
+ OSL_ENSURE( !rArguments.has( u"ShowTreeView"_ustr ),
"SbaTableQueryBrowser::impl_initialize: ShowTreeView is superseded by ShowBrowser!" );
if ( bHideTreeView )
@@ -3147,24 +3145,14 @@ void SbaTableQueryBrowser::impl_initialize()
{
try
{
- Sequence< OUString> aProperties(5);
- Sequence< Any> aValues(5);
-
- OUString* pStringIter = aProperties.getArray();
- Any* pValueIter = aValues.getArray();
- *pStringIter++ = "AlwaysShowCursor";
- *pValueIter++ <<= false;
- *pStringIter++ = PROPERTY_BORDER;
- *pValueIter++ <<= sal_Int16(0);
-
- *pStringIter++ = "HasNavigationBar";
- *pValueIter++ <<= false;
- *pStringIter++ = "HasRecordMarker";
- *pValueIter++ <<= false;
-
- *pStringIter++ = "Tabstop";
- *pValueIter++ <<= false;
-
+ Sequence< OUString> aProperties
+ {
+ u"AlwaysShowCursor"_ustr, PROPERTY_BORDER, u"HasNavigationBar"_ustr, u"HasRecordMarker"_ustr, u"Tabstop"_ustr
+ };
+ Sequence< Any> aValues
+ {
+ Any(false), Any(sal_Int16(0)), Any(false), Any(false), Any(false)
+ };
Reference< XMultiPropertySet > xFormMultiSet(getFormComponent(), UNO_QUERY);
if ( xFormMultiSet.is() )
xFormMultiSet->setPropertyValues(aProperties, aValues);
@@ -3259,9 +3247,9 @@ void SbaTableQueryBrowser::impl_initialize()
try
{
Reference< XPropertySet > xRowSetProps(getRowSet(), UNO_QUERY);
- xRowSetProps->setPropertyValue(PROPERTY_UPDATE_CATALOGNAME,makeAny(aCatalogName));
- xRowSetProps->setPropertyValue(PROPERTY_UPDATE_SCHEMANAME,makeAny(aSchemaName));
- xRowSetProps->setPropertyValue(PROPERTY_UPDATE_TABLENAME,makeAny(aTableName));
+ xRowSetProps->setPropertyValue(PROPERTY_UPDATE_CATALOGNAME,Any(aCatalogName));
+ xRowSetProps->setPropertyValue(PROPERTY_UPDATE_SCHEMANAME,Any(aSchemaName));
+ xRowSetProps->setPropertyValue(PROPERTY_UPDATE_TABLENAME,Any(aTableName));
}
catch(const Exception&)
@@ -3313,7 +3301,7 @@ bool SbaTableQueryBrowser::ensureConnection(const weld::TreeIter* pAnyEntry, Sha
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
DBTreeListUserData* pDSData =
xDSEntry
- ? reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xDSEntry).toUInt64())
+ ? weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xDSEntry))
: nullptr;
return ensureConnection(xDSEntry.get(), pDSData, rConnection);
@@ -3334,7 +3322,7 @@ bool SbaTableQueryBrowser::getExistentConnectionFor(const weld::TreeIter* pAnyEn
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
DBTreeListUserData* pDSData =
xDSEntry
- ? reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xDSEntry).toUInt64())
+ ? weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xDSEntry))
: nullptr;
if (pDSData)
rConnection = pDSData->xConnection;
@@ -3443,7 +3431,7 @@ int SbaTableQueryBrowser::OnTreeEntryCompare(const weld::TreeIter& rLHS, const w
return nCompareResult;
}
-void SbaTableQueryBrowser::implAdministrate(weld::TreeIter& rApplyTo)
+void SbaTableQueryBrowser::implAdministrate(const weld::TreeIter& rApplyTo)
{
try
{
@@ -3468,16 +3456,16 @@ void SbaTableQueryBrowser::implAdministrate(weld::TreeIter& rApplyTo)
InteractionHandler::createWithParent(getORB(), nullptr) );
::comphelper::NamedValueCollection aLoadArgs;
- aLoadArgs.put( "Model", xDocumentModel );
- aLoadArgs.put( "InteractionHandler", xInteractionHandler );
- aLoadArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
+ aLoadArgs.put( u"Model"_ustr, xDocumentModel );
+ aLoadArgs.put( u"InteractionHandler"_ustr, xInteractionHandler );
+ aLoadArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::USE_CONFIG );
Sequence< PropertyValue > aLoadArgPV;
aLoadArgs >>= aLoadArgPV;
xFrameLoader->loadComponentFromURL(
xDocumentModel->getURL(),
- "_default",
+ u"_default"_ustr,
FrameSearchFlag::ALL | FrameSearchFlag::GLOBAL,
aLoadArgPV
);
@@ -3502,7 +3490,7 @@ bool SbaTableQueryBrowser::requestQuickHelp(const void* pUserData, OUString& rTe
OUString SbaTableQueryBrowser::getContextMenuResourceName() const
{
- return "explorer";
+ return u"explorer"_ustr;
}
IController& SbaTableQueryBrowser::getCommandController()
@@ -3530,7 +3518,7 @@ Any SbaTableQueryBrowser::getCurrentSelection(weld::TreeView& rControl) const
return Any();
NamedDatabaseObject aSelectedObject;
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xSelected).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xSelected));
aSelectedObject.Type = static_cast< sal_Int32 >( pData->eType );
switch ( aSelectedObject.Type )
@@ -3551,7 +3539,7 @@ Any SbaTableQueryBrowser::getCurrentSelection(weld::TreeView& rControl) const
break;
}
- return makeAny( aSelectedObject );
+ return Any( aSelectedObject );
}
vcl::Window* SbaTableQueryBrowser::getMenuParent() const
@@ -3651,7 +3639,7 @@ void SbaTableQueryBrowser::loadMenu(const Reference< XFrame >& _xFrame)
if ( xLayoutManager.is() )
{
xLayoutManager->lock();
- xLayoutManager->createElement( "private:resource/toolbar/toolbar" );
+ xLayoutManager->createElement( u"private:resource/toolbar/toolbar"_ustr );
xLayoutManager->unlock();
xLayoutManager->doLayout();
}
@@ -3759,7 +3747,7 @@ void SAL_CALL SbaTableQueryBrowser::registeredDatabaseLocation( const DatabaseRe
implAddDatasource( Event.Name, SharedConnection() );
}
-void SbaTableQueryBrowser::impl_cleanupDataSourceEntry(const OUString& rDataSourceName)
+void SbaTableQueryBrowser::impl_cleanupDataSourceEntry(std::u16string_view rDataSourceName)
{
// get the top-level representing the removed data source
weld::TreeView& rTreeView = m_pTreeView->GetWidget();
@@ -3788,14 +3776,14 @@ void SbaTableQueryBrowser::impl_cleanupDataSourceEntry(const OUString& rDataSour
do
{
// delete any user data of the child entries of the to-be-removed entry
- const DBTreeListUserData* pData = reinterpret_cast<const DBTreeListUserData*>(rTreeView.get_id(*xChild).toUInt64());
+ const DBTreeListUserData* pData = weld::fromId<const DBTreeListUserData*>(rTreeView.get_id(*xChild));
rTreeView.set_id(*xChild, OUString());
delete pData;
} while (rTreeView.iter_next_sibling(*xChild));
}
// remove the entry
- DBTreeListUserData* pData = reinterpret_cast<DBTreeListUserData*>(rTreeView.get_id(*xDataSourceEntry).toUInt64());
+ DBTreeListUserData* pData = weld::fromId<DBTreeListUserData*>(rTreeView.get_id(*xDataSourceEntry));
rTreeView.set_id(*xDataSourceEntry, OUString());
delete pData;
rTreeView.remove(*xDataSourceEntry);
diff --git a/dbaccess/source/ui/control/ColumnControlWindow.cxx b/dbaccess/source/ui/control/ColumnControlWindow.cxx
index 3665b295d9a3..c17d0952215b 100644
--- a/dbaccess/source/ui/control/ColumnControlWindow.cxx
+++ b/dbaccess/source/ui/control/ColumnControlWindow.cxx
@@ -21,6 +21,7 @@
#include <unotools/syslocale.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <connectivity/dbtools.hxx>
+#include <o3tl/safeint.hxx>
#include <UITools.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
@@ -36,7 +37,7 @@ using namespace ::com::sun::star::lang;
OColumnControlTopLevel::OColumnControlTopLevel(vcl::Window* pParent,
const Reference<XComponentContext>& _rxContext)
- : InterimItemWindow(pParent, "dbaccess/ui/colcontrolbox.ui", "ColControlBox")
+ : InterimItemWindow(pParent, u"dbaccess/ui/colcontrolbox.ui"_ustr, u"ColControlBox"_ustr)
, m_xControl(new OColumnControlWindow(m_xContainer.get(), _rxContext))
{
}
@@ -89,7 +90,7 @@ void OColumnControlWindow::DeactivateAggregate( EControlType eType )
}
}
-void OColumnControlWindow::CellModified(tools::Long /*nRow*/, sal_uInt16 /*nColId*/ )
+void OColumnControlWindow::CellModified(sal_Int32 /*nRow*/, sal_uInt16 /*nColId*/ )
{
saveCurrentFieldDescData();
}
@@ -121,7 +122,7 @@ Reference< XNumberFormatter > OColumnControlWindow::GetFormatter() const
TOTypeInfoSP OColumnControlWindow::getTypeInfo(sal_Int32 _nPos)
{
- return ( _nPos >= 0 && _nPos < static_cast<sal_Int32>(m_aDestTypeInfoIndex.size())) ? m_aDestTypeInfoIndex[_nPos]->second : TOTypeInfoSP();
+ return ( _nPos >= 0 && o3tl::make_unsigned(_nPos) < m_aDestTypeInfoIndex.size()) ? m_aDestTypeInfoIndex[_nPos]->second : TOTypeInfoSP();
}
const OTypeInfoMap* OColumnControlWindow::getTypeInfo() const
diff --git a/dbaccess/source/ui/control/FieldControls.cxx b/dbaccess/source/ui/control/FieldControls.cxx
index 866014a99f2d..3f3553d56ee9 100644
--- a/dbaccess/source/ui/control/FieldControls.cxx
+++ b/dbaccess/source/ui/control/FieldControls.cxx
@@ -25,7 +25,7 @@ namespace dbaui {
OPropColumnEditCtrl::OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry,
OUString const & _rAllowedChars,
- const char* pHelpId,
+ TranslateId pHelpId,
short nPosition)
: OSQLNameEntry(std::move(xEntry), _rAllowedChars)
, m_nPos(nPosition)
@@ -33,7 +33,7 @@ OPropColumnEditCtrl::OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry,
m_strHelpText = DBA_RES(pHelpId);
}
-OPropEditCtrl::OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, const char* pHelpId, short nPosition)
+OPropEditCtrl::OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, TranslateId pHelpId, short nPosition)
: OWidgetBase(xEntry.get())
, m_xEntry(std::move(xEntry))
, m_nPos(nPosition)
@@ -41,7 +41,7 @@ OPropEditCtrl::OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, const char* pH
m_strHelpText = DBA_RES(pHelpId);
}
-OPropNumericEditCtrl::OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, const char* pHelpId, short nPosition)
+OPropNumericEditCtrl::OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, TranslateId pHelpId, short nPosition)
: OWidgetBase(xSpinButton.get())
, m_xSpinButton(std::move(xSpinButton))
, m_nPos(nPosition)
@@ -49,7 +49,7 @@ OPropNumericEditCtrl::OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSp
m_strHelpText = DBA_RES(pHelpId);
}
-OPropListBoxCtrl::OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, const char* pHelpId, short nPosition)
+OPropListBoxCtrl::OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, TranslateId pHelpId, short nPosition)
: OWidgetBase(xComboBox.get())
, m_xComboBox(std::move(xComboBox))
, m_nPos(nPosition)
diff --git a/dbaccess/source/ui/control/FieldDescControl.cxx b/dbaccess/source/ui/control/FieldDescControl.cxx
index f0d9b9ee4468..08d9211d4fc9 100644
--- a/dbaccess/source/ui/control/FieldDescControl.cxx
+++ b/dbaccess/source/ui/control/FieldDescControl.cxx
@@ -20,11 +20,10 @@
#include <core_resource.hxx>
#include <FieldDescControl.hxx>
#include <FieldControls.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <TableDesignHelpBar.hxx>
#include <vcl/svapp.hxx>
#include <FieldDescriptions.hxx>
-#include <svl/zforlist.hxx>
#include <svl/numuno.hxx>
#include <vcl/transfer.hxx>
#include <com/sun/star/sdbc/ColumnValue.hpp>
@@ -66,19 +65,19 @@ namespace
}
OFieldDescControl::OFieldDescControl(weld::Container* pPage, OTableDesignHelpBar* pHelpBar)
- : m_xBuilder(Application::CreateBuilder(pPage, "dbaccess/ui/fielddescpage.ui"))
- , m_xContainer(m_xBuilder->weld_container("FieldDescPage"))
+ : m_xBuilder(Application::CreateBuilder(pPage, u"dbaccess/ui/fielddescpage.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_container(u"FieldDescPage"_ustr))
, m_pHelp( pHelpBar )
, m_pLastFocusWindow(nullptr)
, m_pActFocusWindow(nullptr)
- , m_pPreviousType()
, m_nPos(-1)
, aYes(DBA_RES(STR_VALUE_YES))
, aNo(DBA_RES(STR_VALUE_NO))
, m_nEditWidth(50)
, pActFieldDescr(nullptr)
{
- m_pHelp->connect_focus_out(LINK(this, OFieldDescControl, HelpFocusOut));
+ if (m_pHelp)
+ m_pHelp->connect_focus_out(LINK(this, OFieldDescControl, HelpFocusOut));
}
OFieldDescControl::~OFieldDescControl()
@@ -133,7 +132,7 @@ void OFieldDescControl::dispose()
m_xBuilder.reset();
}
-OUString OFieldDescControl::BoolStringPersistent(const OUString& rUIString) const
+OUString OFieldDescControl::BoolStringPersistent(std::u16string_view rUIString) const
{
if (rUIString == aNo)
return OUString('0');
@@ -165,27 +164,28 @@ void OFieldDescControl::Init()
void OFieldDescControl::SetReadOnly( bool bReadOnly )
{
// Enable/disable Controls
- OWidgetBase* ppAggregates[] = { m_xRequired.get(), m_xNumType.get()
- , m_xAutoIncrement.get(), m_xDefault.get()
- , m_xTextLen.get(), m_xLength.get()
- , m_xScale.get(), m_xColumnName.get()
- , m_xType.get(), m_xAutoIncrementValue.get()
- };
- weld::Widget* ppAggregatesText[] = { m_xRequiredText.get(), m_xNumTypeText.get()
- , m_xAutoIncrementText.get(), m_xDefaultText.get()
- , m_xTextLenText.get(), m_xLengthText.get()
- , m_xScaleText.get(), m_xColumnNameText.get()
- , m_xTypeText.get(), m_xAutoIncrementValueText.get()
- };
-
- OSL_ENSURE(SAL_N_ELEMENTS(ppAggregates) == SAL_N_ELEMENTS(ppAggregatesText),"Lists are not identical!");
-
- for (size_t i=0; i<SAL_N_ELEMENTS(ppAggregates); ++i)
+ struct final
{
- if ( ppAggregatesText[i] )
- ppAggregatesText[i]->set_sensitive( !bReadOnly );
- if ( ppAggregates[i] )
- ppAggregates[i]->set_sensitive( !bReadOnly );
+ OWidgetBase * aggregate;
+ weld::Widget * text;
+ } const aggregates[] = {
+ {m_xRequired.get(), m_xRequiredText.get()}
+ , {m_xNumType.get(), m_xNumTypeText.get()}
+ , {m_xAutoIncrement.get(), m_xAutoIncrementText.get()}
+ , {m_xDefault.get(), m_xDefaultText.get()}
+ , {m_xTextLen.get(), m_xTextLenText.get()}
+ , {m_xLength.get(), m_xLengthText.get()}
+ , {m_xScale.get(), m_xScaleText.get()}
+ , {m_xColumnName.get(), m_xColumnNameText.get()}
+ , {m_xType.get(), m_xTypeText.get()}
+ , {m_xAutoIncrementValue.get(), m_xAutoIncrementValueText.get()}};
+
+ for (auto const & aggregate: aggregates)
+ {
+ if (aggregate.text)
+ aggregate.text->set_sensitive(!bReadOnly);
+ if (aggregate.aggregate)
+ aggregate.aggregate->set_sensitive(!bReadOnly);
}
if (m_xFormat)
@@ -281,7 +281,7 @@ IMPL_LINK_NOARG(OFieldDescControl, FormatClickHdl, weld::Button&, void)
sal_Int32 nOldFormatKey(pActFieldDescr->GetFormatKey());
SvxCellHorJustify rOldJustify = pActFieldDescr->GetHorJustify();
Reference< XNumberFormatsSupplier > xSupplier = GetFormatter()->getNumberFormatsSupplier();
- SvNumberFormatsSupplierObj* pSupplierImpl = comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>( xSupplier );
+ SvNumberFormatsSupplierObj* pSupplierImpl = comphelper::getFromUnoTunnel<SvNumberFormatsSupplierObj>( xSupplier );
if (!pSupplierImpl)
return;
@@ -389,10 +389,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xDefault)
return;
m_nPos++;
- m_xDefaultText = m_xBuilder->weld_label("DefaultValueText");
+ m_xDefaultText = m_xBuilder->weld_label(u"DefaultValueText"_ustr);
m_xDefaultText->show();
m_xDefault = std::make_unique<OPropEditCtrl>(
- m_xBuilder->weld_entry("DefaultValue"), STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_DEFAULT);
+ m_xBuilder->weld_entry(u"DefaultValue"_ustr), STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_DEFAULT);
InitializeControl(m_xDefault->GetWidget(),HID_TAB_ENT_DEFAULT);
m_xDefault->show();
break;
@@ -400,10 +400,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xAutoIncrementValue || !isAutoIncrementValueEnabled())
return;
m_nPos++;
- m_xAutoIncrementValueText = m_xBuilder->weld_label("AutoIncrementValueText");
+ m_xAutoIncrementValueText = m_xBuilder->weld_label(u"AutoIncrementValueText"_ustr);
m_xAutoIncrementValueText->show();
m_xAutoIncrementValue = std::make_unique<OPropEditCtrl>(
- m_xBuilder->weld_spin_button("AutoIncrementValue"), STR_HELP_AUTOINCREMENT_VALUE,
+ m_xBuilder->weld_spin_button(u"AutoIncrementValue"_ustr), STR_HELP_AUTOINCREMENT_VALUE,
FIELD_PROPERTY_AUTOINCREMENT);
m_xAutoIncrementValue->set_text( getAutoIncrementValue() );
InitializeControl(m_xAutoIncrementValue->GetWidget(),HID_TAB_AUTOINCREMENTVALUE);
@@ -419,10 +419,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if(xMetaData.is() && xMetaData->supportsNonNullableColumns())
{
m_nPos++;
- m_xRequiredText = m_xBuilder->weld_label("RequiredText");
+ m_xRequiredText = m_xBuilder->weld_label(u"RequiredText"_ustr);
m_xRequiredText->show();
m_xRequired = std::make_unique<OPropListBoxCtrl>(
- m_xBuilder->weld_combo_box("Required"), STR_HELP_AUTOINCREMENT_VALUE,
+ m_xBuilder->weld_combo_box(u"Required"_ustr), STR_HELP_AUTOINCREMENT_VALUE,
FIELD_PROPERTY_AUTOINCREMENT);
m_xRequired->append_text(aYes);
m_xRequired->append_text(aNo);
@@ -438,10 +438,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xAutoIncrement)
return;
m_nPos++;
- m_xAutoIncrementText = m_xBuilder->weld_label("AutoIncrementText");
+ m_xAutoIncrementText = m_xBuilder->weld_label(u"AutoIncrementText"_ustr);
m_xAutoIncrementText->show();
m_xAutoIncrement = std::make_unique<OPropListBoxCtrl>(
- m_xBuilder->weld_combo_box("AutoIncrement"), STR_HELP_AUTOINCREMENT,
+ m_xBuilder->weld_combo_box(u"AutoIncrement"_ustr), STR_HELP_AUTOINCREMENT,
FIELD_PROPERTY_AUTOINC);
m_xAutoIncrement->append_text(aYes);
m_xAutoIncrement->append_text(aNo);
@@ -454,19 +454,19 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xTextLen)
return;
m_nPos++;
- m_xTextLenText = m_xBuilder->weld_label("TextLengthText");
+ m_xTextLenText = m_xBuilder->weld_label(u"TextLengthText"_ustr);
m_xTextLenText->show();
- m_xTextLen = CreateNumericControl("TextLength", STR_HELP_TEXT_LENGTH, FIELD_PROPERTY_TEXTLEN,HID_TAB_ENT_TEXT_LEN);
+ m_xTextLen = CreateNumericControl(u"TextLength"_ustr, STR_HELP_TEXT_LENGTH, FIELD_PROPERTY_TEXTLEN,HID_TAB_ENT_TEXT_LEN);
break;
case tpType:
if (m_xType)
return;
m_nPos++;
- m_xTypeText = m_xBuilder->weld_label("TypeText");
+ m_xTypeText = m_xBuilder->weld_label(u"TypeText"_ustr);
m_xTypeText->show();
m_xType = std::make_unique<OPropListBoxCtrl>(
- m_xBuilder->weld_combo_box("Type"), STR_HELP_AUTOINCREMENT, FIELD_PROPERTY_TYPE);
+ m_xBuilder->weld_combo_box(u"Type"_ustr), STR_HELP_AUTOINCREMENT, FIELD_PROPERTY_TYPE);
{
const OTypeInfoMap* pTypeInfo = getTypeInfo();
for (auto const& elem : *pTypeInfo)
@@ -496,10 +496,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_xColumnNameText = m_xBuilder->weld_label("ColumnNameText");
+ m_xColumnNameText = m_xBuilder->weld_label(u"ColumnNameText"_ustr);
m_xColumnNameText->show();
m_xColumnName = std::make_unique<OPropColumnEditCtrl>(
- m_xBuilder->weld_entry("ColumnName"), aTmpString,
+ m_xBuilder->weld_entry(u"ColumnName"_ustr), aTmpString,
STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_COLUMNNAME);
m_xColumnName->set_max_length(nMax);
m_xColumnName->setCheck( isSQL92CheckEnabled(getConnection()) );
@@ -512,15 +512,15 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xNumType)
return;
m_nPos++;
- m_xNumTypeText = m_xBuilder->weld_label("NumTypeText");
+ m_xNumTypeText = m_xBuilder->weld_label(u"NumTypeText"_ustr);
m_xNumTypeText->show();
m_xNumType = std::make_unique<OPropListBoxCtrl>(
- m_xBuilder->weld_combo_box("NumType"), STR_HELP_NUMERIC_TYPE, FIELD_PROPERTY_NUMTYPE);
- m_xNumType->append_text("Byte");
- m_xNumType->append_text("SmallInt");
- m_xNumType->append_text("Integer");
- m_xNumType->append_text("Single");
- m_xNumType->append_text("Double");
+ m_xBuilder->weld_combo_box(u"NumType"_ustr), STR_HELP_NUMERIC_TYPE, FIELD_PROPERTY_NUMTYPE);
+ m_xNumType->append_text(u"Byte"_ustr);
+ m_xNumType->append_text(u"SmallInt"_ustr);
+ m_xNumType->append_text(u"Integer"_ustr);
+ m_xNumType->append_text(u"Single"_ustr);
+ m_xNumType->append_text(u"Double"_ustr);
m_xNumType->set_active(2);
InitializeControl(m_xNumType.get(),HID_TAB_ENT_NUMTYP, true);
m_xNumType->show();
@@ -530,35 +530,35 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
if (m_xLength)
return;
m_nPos++;
- m_xLengthText = m_xBuilder->weld_label("LengthText");
+ m_xLengthText = m_xBuilder->weld_label(u"LengthText"_ustr);
m_xLengthText->show();
- m_xLength = CreateNumericControl("Length", STR_HELP_LENGTH, FIELD_PROPERTY_LENGTH,HID_TAB_ENT_LEN);
+ m_xLength = CreateNumericControl(u"Length"_ustr, STR_HELP_LENGTH, FIELD_PROPERTY_LENGTH,HID_TAB_ENT_LEN);
break;
case tpScale:
if (m_xScale)
return;
m_nPos++;
- m_xScaleText = m_xBuilder->weld_label("ScaleText");
+ m_xScaleText = m_xBuilder->weld_label(u"ScaleText"_ustr);
m_xScaleText->show();
- m_xScale = CreateNumericControl("Scale", STR_HELP_SCALE, FIELD_PROPERTY_SCALE,HID_TAB_ENT_SCALE);
+ m_xScale = CreateNumericControl(u"Scale"_ustr, STR_HELP_SCALE, FIELD_PROPERTY_SCALE,HID_TAB_ENT_SCALE);
break;
case tpFormat:
if (!m_xFormat)
{
m_nPos++;
- m_xFormatText = m_xBuilder->weld_label("FormatTextText");
+ m_xFormatText = m_xBuilder->weld_label(u"FormatTextText"_ustr);
m_xFormatText->show();
m_xFormatSample = std::make_unique<OPropEditCtrl>(
- m_xBuilder->weld_entry("FormatText"), STR_HELP_FORMAT_CODE, -1);
+ m_xBuilder->weld_entry(u"FormatText"_ustr), STR_HELP_FORMAT_CODE, -1);
m_xFormatSample->set_editable(false);
m_xFormatSample->set_sensitive(false);
InitializeControl(m_xFormatSample->GetWidget(),HID_TAB_ENT_FORMAT_SAMPLE);
m_xFormatSample->show();
- m_xFormat = m_xBuilder->weld_button("FormatButton");
+ m_xFormat = m_xBuilder->weld_button(u"FormatButton"_ustr);
m_xFormat->connect_clicked( LINK( this, OFieldDescControl, FormatClickHdl ) );
InitializeControl(m_xFormat.get(),HID_TAB_ENT_FORMAT);
m_xFormat->show();
@@ -571,10 +571,10 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
return;
m_nPos++;
- m_xBoolDefaultText = m_xBuilder->weld_label("BoolDefaultText");
+ m_xBoolDefaultText = m_xBuilder->weld_label(u"BoolDefaultText"_ustr);
m_xBoolDefaultText->show();
m_xBoolDefault = std::make_unique<OPropListBoxCtrl>(
- m_xBuilder->weld_combo_box("BoolDefault"), STR_HELP_BOOL_DEFAULT,
+ m_xBuilder->weld_combo_box(u"BoolDefault"_ustr), STR_HELP_BOOL_DEFAULT,
FIELD_PROPERTY_BOOL_DEFAULT);
m_xBoolDefault->append_text(DBA_RES(STR_VALUE_NONE));
m_xBoolDefault->append_text(aYes);
@@ -585,7 +585,7 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
}
}
-void OFieldDescControl::InitializeControl(OPropListBoxCtrl* _pControl,const OString& _sHelpId,bool _bAddChangeHandler)
+void OFieldDescControl::InitializeControl(OPropListBoxCtrl* _pControl,const OUString& _sHelpId,bool _bAddChangeHandler)
{
if ( _bAddChangeHandler )
_pControl->GetComboBox().connect_changed(LINK(this,OFieldDescControl,ChangeHdl));
@@ -593,7 +593,7 @@ void OFieldDescControl::InitializeControl(OPropListBoxCtrl* _pControl,const OStr
InitializeControl(_pControl->GetWidget(), _sHelpId);
}
-void OFieldDescControl::InitializeControl(weld::Widget* pControl,const OString& _sHelpId)
+void OFieldDescControl::InitializeControl(weld::Widget* pControl,const OUString& _sHelpId)
{
pControl->set_help_id(_sHelpId);
pControl->connect_focus_in(LINK(this, OFieldDescControl, OnControlFocusGot));
@@ -606,7 +606,7 @@ void OFieldDescControl::InitializeControl(weld::Widget* pControl,const OString&
}
}
-std::unique_ptr<OPropNumericEditCtrl> OFieldDescControl::CreateNumericControl(const OString& rId, const char* pHelpId, short _nProperty, const OString& _sHelpId)
+std::unique_ptr<OPropNumericEditCtrl> OFieldDescControl::CreateNumericControl(const OUString& rId, TranslateId pHelpId, short _nProperty, const OUString& _sHelpId)
{
auto xControl = std::make_unique<OPropNumericEditCtrl>(
m_xBuilder->weld_spin_button(rId), pHelpId, _nProperty);
@@ -789,6 +789,8 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
case DataType::DATE:
case DataType::TIME:
case DataType::TIMESTAMP:
+ case DataType::TIME_WITH_TIMEZONE:
+ case DataType::TIMESTAMP_WITH_TIMEZONE:
DeactivateAggregate( tpLength ); // we don't need a length for date types
DeactivateAggregate( tpTextLen );
DeactivateAggregate( tpBoolDefault );
@@ -915,7 +917,7 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
else
m_xBoolDefault->set_active_text(sDef);
- pFieldDescr->SetControlDefault(makeAny(BoolStringPersistent(m_xBoolDefault->get_active_text())));
+ pFieldDescr->SetControlDefault(Any(BoolStringPersistent(m_xBoolDefault->get_active_text())));
}
else if (m_xBoolDefault->get_count() < 3)
{
@@ -1106,7 +1108,9 @@ void OFieldDescControl::SaveData( OFieldDescription* pFieldDescr )
OUString sDefault;
if (m_xDefault)
{
- sDefault = m_xDefault->get_text();
+ // tdf#138409 take the control default in the UI Locale format, e.g. 12,34 and return a string
+ // suitable as the database default, e.g. 12.34
+ sDefault = CanonicalizeToControlDefault(pFieldDescr, m_xDefault->get_text());
}
else if (m_xBoolDefault)
{
@@ -1114,7 +1118,7 @@ void OFieldDescControl::SaveData( OFieldDescription* pFieldDescr )
}
if ( !sDefault.isEmpty() )
- pFieldDescr->SetControlDefault(makeAny(sDefault));
+ pFieldDescr->SetControlDefault(Any(sDefault));
else
pFieldDescr->SetControlDefault(Any());
@@ -1195,7 +1199,7 @@ bool OFieldDescControl::IsFocusInEditableWidget() const
bool OFieldDescControl::HasChildPathFocus() const
{
- return m_pActFocusWindow && m_pActFocusWindow->has_focus();
+ return m_xContainer && m_xContainer->has_child_focus();
}
bool OFieldDescControl::isCopyAllowed()
@@ -1219,7 +1223,7 @@ bool OFieldDescControl::isPasteAllowed()
bool bAllowed = (m_pActFocusWindow != nullptr) && IsFocusInEditableWidget();
if ( bAllowed )
{
- TransferableDataHelper aTransferData(TransferableDataHelper::CreateFromClipboard(GetSystemClipboard()));
+ TransferableDataHelper aTransferData(TransferableDataHelper::CreateFromClipboard(m_pActFocusWindow->get_clipboard()));
bAllowed = aTransferData.HasFormat(SotClipboardFormatId::STRING);
}
return bAllowed;
@@ -1307,12 +1311,12 @@ OUString OFieldDescControl::getControlDefault( const OFieldDescription* _pFieldD
Reference<XPropertySet> xFormSet = xNumberFormatter->getNumberFormatsSupplier()->getNumberFormats()->getByKey(nFormatKey);
OSL_ENSURE(xFormSet.is(),"XPropertySet is null!");
OUString sFormat;
- xFormSet->getPropertyValue("FormatString") >>= sFormat;
+ xFormSet->getPropertyValue(u"FormatString"_ustr) >>= sFormat;
if ( !bTextFormat )
{
Locale aLocale;
- ::comphelper::getNumberFormatProperty(xNumberFormatter,nFormatKey,"Locale") >>= aLocale;
+ ::comphelper::getNumberFormatProperty(xNumberFormatter,nFormatKey,u"Locale"_ustr) >>= aLocale;
sal_Int32 nNumberFormat = ::comphelper::getNumberFormatType(xNumberFormatter,nFormatKey);
if( (nNumberFormat & css::util::NumberFormat::DATE) == css::util::NumberFormat::DATE
@@ -1337,4 +1341,47 @@ OUString OFieldDescControl::getControlDefault( const OFieldDescription* _pFieldD
return sDefault;
}
+// tdf#138409 intended to be effectively the reverse of getControlDefault to
+// turn a user's possibly 12,34 format into 12.34 format for numerical types
+OUString OFieldDescControl::CanonicalizeToControlDefault(const OFieldDescription* pFieldDescr, const OUString& rDefault) const
+{
+ if (rDefault.isEmpty())
+ return rDefault;
+
+ bool bIsNumericalType = false;
+ switch (pFieldDescr->GetType())
+ {
+ case DataType::TINYINT:
+ case DataType::SMALLINT:
+ case DataType::INTEGER:
+ case DataType::BIGINT:
+ case DataType::FLOAT:
+ case DataType::REAL:
+ case DataType::DOUBLE:
+ case DataType::NUMERIC:
+ case DataType::DECIMAL:
+ bIsNumericalType = true;
+ break;
+ }
+
+ if (!bIsNumericalType)
+ return rDefault;
+
+ try
+ {
+ sal_uInt32 nFormatKey;
+ bool bTextFormat = isTextFormat(pFieldDescr, nFormatKey);
+ if (bTextFormat)
+ return rDefault;
+ double nValue = GetFormatter()->convertStringToNumber(nFormatKey, rDefault);
+ return OUString::number(nValue);
+ }
+ catch(const Exception&)
+ {
+ }
+
+ return rDefault;
+}
+
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/control/RelationControl.cxx b/dbaccess/source/ui/control/RelationControl.cxx
index 1eae87b0ea65..4856b0c3b188 100644
--- a/dbaccess/source/ui/control/RelationControl.cxx
+++ b/dbaccess/source/ui/control/RelationControl.cxx
@@ -21,7 +21,7 @@
#include <svtools/editbrowsebox.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <TableConnectionData.hxx>
#include <TableConnection.hxx>
@@ -46,7 +46,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::container;
using namespace svt;
@@ -108,12 +107,12 @@ namespace dbaui
void Init(const TTableConnectionData::value_type& _pConnData);
using ORelationControl_Base::Init;
- virtual void InitController( ::svt::CellControllerRef& rController, tools::Long nRow, sal_uInt16 nCol ) override;
- virtual ::svt::CellController* GetController( tools::Long nRow, sal_uInt16 nCol ) override;
+ virtual void InitController( ::svt::CellControllerRef& rController, sal_Int32 nRow, sal_uInt16 nCol ) override;
+ virtual ::svt::CellController* GetController( sal_Int32 nRow, sal_uInt16 nCol ) override;
virtual void PaintCell( OutputDevice& rDev, const tools::Rectangle& rRect, sal_uInt16 nColId ) const override;
- virtual bool SeekRow( tools::Long nRow ) override;
+ virtual bool SeekRow( sal_Int32 nRow ) override;
virtual bool SaveModified() override;
- virtual OUString GetCellText( tools::Long nRow, sal_uInt16 nColId ) const override;
+ virtual OUString GetCellText( sal_Int32 nRow, sal_uInt16 nColId ) const override;
virtual void CellModified() override;
@@ -184,9 +183,9 @@ namespace dbaui
bool ORelationControl::PreNotify(NotifyEvent& rNEvt)
{
- if (rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS && !HasChildPathFocus() && !ControlHasFocus())
+ if (rNEvt.GetType() == NotifyEventType::LOSEFOCUS && !HasChildPathFocus() && !ControlHasFocus())
PostUserEvent(LINK(this, ORelationControl, AsynchDeactivate), nullptr, true);
- else if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ else if (rNEvt.GetType() == NotifyEventType::GETFOCUS)
PostUserEvent(LINK(this, ORelationControl, AsynchActivate), nullptr, true);
return EditBrowseBox::PreNotify(rNEvt);
@@ -204,7 +203,7 @@ namespace dbaui
bool ORelationControl::IsTabAllowed(bool bForward) const
{
- tools::Long nRow = GetCurRow();
+ sal_Int32 nRow = GetCurRow();
sal_uInt16 nCol = GetCurColumnId();
bool bRet = !( ( bForward && (nCol == DEST_COLUMN) && (nRow == GetRowCount() - 1))
@@ -215,7 +214,7 @@ namespace dbaui
bool ORelationControl::SaveModified()
{
- tools::Long nRow = GetCurRow();
+ sal_Int32 nRow = GetCurRow();
if ( nRow != BROWSER_ENDOFSELECTION )
{
weld::ComboBox& rListBox = m_pListCell->get_widget();
@@ -223,7 +222,7 @@ namespace dbaui
OConnectionLineDataVec& rLines = m_pConnData->GetConnLineDataList();
if ( rLines.size() <= o3tl::make_unsigned(nRow) )
{
- rLines.push_back(new OConnectionLineData());
+ rLines.emplace_back(new OConnectionLineData());
nRow = rLines.size() - 1;
// add new past-rLines row
m_ops.emplace_back(INSERT, make_pair(nRow+1, nRow+2));
@@ -263,7 +262,7 @@ namespace dbaui
return nId;
}
- OUString ORelationControl::GetCellText( tools::Long nRow, sal_uInt16 nColId ) const
+ OUString ORelationControl::GetCellText( sal_Int32 nRow, sal_uInt16 nColId ) const
{
OUString sText;
if ( m_pConnData->GetConnLineDataList().size() > o3tl::make_unsigned(nRow) )
@@ -282,10 +281,10 @@ namespace dbaui
return sText;
}
- void ORelationControl::InitController( CellControllerRef& /*rController*/, tools::Long nRow, sal_uInt16 nColumnId )
+ void ORelationControl::InitController( CellControllerRef& /*rController*/, sal_Int32 nRow, sal_uInt16 nColumnId )
{
- OString sHelpId( HID_RELATIONDIALOG_LEFTFIELDCELL );
+ OUString sHelpId( HID_RELATIONDIALOG_LEFTFIELDCELL );
Reference< XPropertySet> xDef;
switch ( getColumnIdent(nColumnId) )
@@ -319,12 +318,12 @@ namespace dbaui
rList.set_help_id(sHelpId);
}
- CellController* ORelationControl::GetController( tools::Long /*nRow*/, sal_uInt16 /*nColumnId*/ )
+ CellController* ORelationControl::GetController( sal_Int32 /*nRow*/, sal_uInt16 /*nColumnId*/ )
{
return new ListBoxCellController( m_pListCell.get() );
}
- bool ORelationControl::SeekRow( tools::Long nRow )
+ bool ORelationControl::SeekRow( sal_Int32 nRow )
{
m_nDataPos = nRow;
return true;
@@ -359,12 +358,9 @@ namespace dbaui
//sal_Int32 nRows = GetRowCount();
Reference<XColumnsSupplier> xSup(_xDest,UNO_QUERY);
Reference<XNameAccess> xColumns = xSup->getColumns();
- Sequence< OUString> aNames = xColumns->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& text : xColumns->getElementNames())
{
- rList.append_text(*pIter);
+ rList.append_text(text);
}
rList.insert_text(0, OUString());
}
@@ -437,9 +433,9 @@ namespace dbaui
OTableListBoxControl::OTableListBoxControl(weld::Builder* _pParent,
const OJoinTableView::OTableWindowMap* _pTableMap,
IRelationControlInterface* _pParentDialog)
- : m_xLeftTable(_pParent->weld_combo_box("table1"))
- , m_xRightTable(_pParent->weld_combo_box("table2"))
- , m_xTable(_pParent->weld_container("relations"))
+ : m_xLeftTable(_pParent->weld_combo_box(u"table1"_ustr))
+ , m_xRightTable(_pParent->weld_combo_box(u"table2"_ustr))
+ , m_xTable(_pParent->weld_container(u"relations"_ustr))
, m_xTableCtrlParent(m_xTable->CreateChildFrame())
, m_xRC_Tables(VclPtr<ORelationControl>::Create(m_xTableCtrlParent))
, m_pTableMap(_pTableMap)
diff --git a/dbaccess/source/ui/control/SqlNameEdit.cxx b/dbaccess/source/ui/control/SqlNameEdit.cxx
index bd67d97deea6..9ac58cfda851 100644
--- a/dbaccess/source/ui/control/SqlNameEdit.cxx
+++ b/dbaccess/source/ui/control/SqlNameEdit.cxx
@@ -21,33 +21,33 @@
namespace dbaui
{
- static bool isCharOk(sal_Unicode _cChar,bool _bFirstChar, const OUString& _sAllowedChars)
+ static bool isCharOk(sal_Unicode _cChar,bool _bFirstChar, std::u16string_view _sAllowedChars)
{
return (
(_cChar >= 'A' && _cChar <= 'Z') ||
_cChar == '_' ||
- _sAllowedChars.indexOf(_cChar) != -1 ||
+ _sAllowedChars.find(_cChar) != std::u16string_view::npos ||
(!_bFirstChar && (_cChar >= '0' && _cChar <= '9')) ||
(_cChar >= 'a' && _cChar <= 'z')
);
}
- bool OSQLNameChecker::checkString(const OUString& _sToCheck,
+ bool OSQLNameChecker::checkString(std::u16string_view _sToCheck,
OUString& _rsCorrected)
{
bool bCorrected = false;
if ( m_bCheck )
{
sal_Int32 nMatch = 0;
- for (sal_Int32 i = nMatch; i < _sToCheck.getLength(); ++i)
+ for (size_t i = nMatch; i < _sToCheck.size(); ++i)
{
if ( !isCharOk( _sToCheck[i], i == 0, m_sAllowedChars ) )
{
- _rsCorrected += _sToCheck.copy(nMatch, i - nMatch);
+ _rsCorrected += _sToCheck.substr(nMatch, i - nMatch);
bCorrected = true;
nMatch = i + 1;
}
}
- _rsCorrected += _sToCheck.copy( nMatch );
+ _rsCorrected += _sToCheck.substr( nMatch );
}
return bCorrected;
}
diff --git a/dbaccess/source/ui/control/TableGrantCtrl.cxx b/dbaccess/source/ui/control/TableGrantCtrl.cxx
index 1225a7f74c1a..607c0199729a 100644
--- a/dbaccess/source/ui/control/TableGrantCtrl.cxx
+++ b/dbaccess/source/ui/control/TableGrantCtrl.cxx
@@ -151,14 +151,14 @@ void OTableGrantControl::Init()
bool OTableGrantControl::PreNotify(NotifyEvent& rNEvt)
{
- if (rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS)
+ if (rNEvt.GetType() == NotifyEventType::LOSEFOCUS)
if (!HasChildPathFocus())
{
if (m_nDeactivateEvent)
Application::RemoveUserEvent(m_nDeactivateEvent);
m_nDeactivateEvent = Application::PostUserEvent(LINK(this, OTableGrantControl, AsynchDeactivate), nullptr, true);
}
- if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ if (rNEvt.GetType() == NotifyEventType::GETFOCUS)
{
if (m_nDeactivateEvent)
Application::RemoveUserEvent(m_nDeactivateEvent);
@@ -181,7 +181,7 @@ IMPL_LINK_NOARG(OTableGrantControl, AsynchDeactivate, void*, void)
bool OTableGrantControl::IsTabAllowed(bool bForward) const
{
- tools::Long nRow = GetCurRow();
+ sal_Int32 nRow = GetCurRow();
sal_uInt16 nCol = GetCurColumnId();
if (bForward && (nCol == 2) && (nRow == GetRowCount() - 1))
@@ -193,12 +193,6 @@ bool OTableGrantControl::IsTabAllowed(bool bForward) const
return EditBrowseBox::IsTabAllowed(bForward);
}
-#define GRANT_REVOKE_RIGHT(what) \
- if (m_pCheckCell->GetBox().get_active()) \
- xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,what);\
- else \
- xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,what)
-
bool OTableGrantControl::SaveModified()
{
@@ -219,25 +213,46 @@ bool OTableGrantControl::SaveModified()
switch( GetCurColumnId() )
{
case COL_INSERT:
- GRANT_REVOKE_RIGHT(Privilege::INSERT);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::INSERT);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::INSERT);
break;
case COL_DELETE:
- GRANT_REVOKE_RIGHT(Privilege::DELETE);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::DELETE);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::DELETE);
break;
case COL_UPDATE:
- GRANT_REVOKE_RIGHT(Privilege::UPDATE);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::UPDATE);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::UPDATE);
break;
case COL_ALTER:
- GRANT_REVOKE_RIGHT(Privilege::ALTER);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::ALTER);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::ALTER);
break;
case COL_SELECT:
- GRANT_REVOKE_RIGHT(Privilege::SELECT);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::SELECT);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::SELECT);
break;
case COL_REF:
- GRANT_REVOKE_RIGHT(Privilege::REFERENCE);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::REFERENCE);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::REFERENCE);
break;
case COL_DROP:
- GRANT_REVOKE_RIGHT(Privilege::DROP);
+ if (m_pCheckCell->GetBox().get_active())
+ xAuth->grantPrivileges(sTableName,PrivilegeObject::TABLE,Privilege::DROP);
+ else
+ xAuth->revokePrivileges(sTableName,PrivilegeObject::TABLE,Privilege::DROP);
break;
}
fillPrivilege(nRow);
@@ -257,7 +272,7 @@ bool OTableGrantControl::SaveModified()
return bErg;
}
-OUString OTableGrantControl::GetCellText( tools::Long nRow, sal_uInt16 nColId ) const
+OUString OTableGrantControl::GetCellText( sal_Int32 nRow, sal_uInt16 nColId ) const
{
if(COL_TABLE_NAME == nColId)
return m_aTableNames[nRow];
@@ -270,7 +285,7 @@ OUString OTableGrantControl::GetCellText( tools::Long nRow, sal_uInt16 nColId )
return OUString::number(isAllowed(nColId,nPriv) ? 1 :0);
}
-void OTableGrantControl::InitController( CellControllerRef& /*rController*/, tools::Long nRow, sal_uInt16 nColumnId )
+void OTableGrantControl::InitController( CellControllerRef& /*rController*/, sal_Int32 nRow, sal_uInt16 nColumnId )
{
OUString sTablename = m_aTableNames[nRow];
// special case for tablename
@@ -357,7 +372,7 @@ void OTableGrantControl::setGrantUser(const Reference< XAuthorizable>& _xGrantUs
m_xGrantUser = _xGrantUser;
}
-CellController* OTableGrantControl::GetController( tools::Long nRow, sal_uInt16 nColumnId )
+CellController* OTableGrantControl::GetController( sal_Int32 nRow, sal_uInt16 nColumnId )
{
CellController* pController = nullptr;
@@ -384,7 +399,7 @@ CellController* OTableGrantControl::GetController( tools::Long nRow, sal_uInt16
return pController;
}
-bool OTableGrantControl::SeekRow( tools::Long nRow )
+bool OTableGrantControl::SeekRow( sal_Int32 nRow )
{
m_nDataPos = nRow;
diff --git a/dbaccess/source/ui/control/charsetlistbox.cxx b/dbaccess/source/ui/control/charsetlistbox.cxx
index 8915b65c9455..ba2f2943fcdb 100644
--- a/dbaccess/source/ui/control/charsetlistbox.cxx
+++ b/dbaccess/source/ui/control/charsetlistbox.cxx
@@ -28,13 +28,13 @@ namespace dbaui
CharSetListBox::CharSetListBox(std::unique_ptr<weld::ComboBox> xControl)
: m_xControl(std::move(xControl))
{
- for (auto const& charset : m_aCharSets)
+ for (auto const charset : m_aCharSets)
{
m_xControl->append_text(charset.getDisplayName());
}
}
- void CharSetListBox::SelectEntryByIanaName( const OUString& _rIanaName )
+ void CharSetListBox::SelectEntryByIanaName( std::u16string_view _rIanaName )
{
OCharsetDisplay::const_iterator aFind = m_aCharSets.findIanaName( _rIanaName );
if (aFind == m_aCharSets.end())
@@ -49,7 +49,7 @@ namespace dbaui
m_xControl->set_active_text((*aFind).getDisplayName());
}
- bool CharSetListBox::StoreSelectedCharSet( SfxItemSet& _rSet, const sal_uInt16 _nItemId )
+ bool CharSetListBox::StoreSelectedCharSet( SfxItemSet& _rSet, TypedWhichId<SfxStringItem> _nItemId )
{
bool bChangedSomething = false;
if (m_xControl->get_value_changed_from_saved())
diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx
index a4c826f6a60f..92e6f2e7d659 100644
--- a/dbaccess/source/ui/control/dbtreelistbox.cxx
+++ b/dbaccess/source/ui/control/dbtreelistbox.cxx
@@ -18,11 +18,14 @@
*/
#include <dbtreelistbox.hxx>
+#include <dbexchange.hxx>
#include <callbacks.hxx>
+#include <com/sun/star/awt/PopupMenuDirection.hpp>
#include <com/sun/star/ui/XContextMenuInterceptor.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/frame/XController.hpp>
+#include <com/sun/star/frame/XPopupMenuController.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <cppuhelper/implbase.hxx>
#include <comphelper/interfacecontainer2.hxx>
@@ -33,10 +36,9 @@
#include <toolkit/awt/vclxmenu.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <svx/dbaobjectex.hxx>
+#include <utility>
#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
-#include <vcl/help.hxx>
-#include <vcl/menu.hxx>
#include <vcl/svapp.hxx>
#include <memory>
@@ -52,9 +54,10 @@ using namespace ::com::sun::star::datatransfer;
using namespace ::com::sun::star::ui;
using namespace ::com::sun::star::view;
-InterimDBTreeListBox::InterimDBTreeListBox(vcl::Window* pParent, bool bSQLType)
- : InterimItemWindow(pParent, "dbaccess/ui/dbtreelist.ui", "DBTreeList")
- , TreeListBox(m_xBuilder->weld_tree_view("treeview"), bSQLType)
+InterimDBTreeListBox::InterimDBTreeListBox(vcl::Window* pParent)
+ : InterimItemWindow(pParent, u"dbaccess/ui/dbtreelist.ui"_ustr, u"DBTreeList"_ustr)
+ , TreeListBox(m_xBuilder->weld_tree_view(u"treeview"_ustr), true)
+ , m_xStatusBar(m_xBuilder->weld_label(u"statusbar"_ustr))
{
InitControlBase(&GetWidget());
}
@@ -67,6 +70,7 @@ InterimDBTreeListBox::~InterimDBTreeListBox()
void InterimDBTreeListBox::dispose()
{
implStopSelectionTimer();
+ m_xStatusBar.reset();
m_xTreeView.reset();
InterimItemWindow::dispose();
}
@@ -106,9 +110,10 @@ TreeListBox::TreeListBox(std::unique_ptr<weld::TreeView> xTreeView, bool bSQLTyp
, m_aDropTargetHelper(*this)
, m_pActionListener(nullptr)
, m_pContextMenuProvider(nullptr)
+ , m_aTimer("dbaccess TreeListBox m_aTimer")
{
m_xTreeView->connect_key_press(LINK(this, TreeListBox, KeyInputHdl));
- m_xTreeView->connect_changed(LINK(this, TreeListBox, SelectHdl));
+ m_xTreeView->connect_selection_changed(LINK(this, TreeListBox, SelectHdl));
m_xTreeView->connect_query_tooltip(LINK(this, TreeListBox, QueryTooltipHdl));
m_xTreeView->connect_popup_menu(LINK(this, TreeListBox, CommandHdl));
@@ -179,23 +184,31 @@ TreeListBox::~TreeListBox()
{
}
-std::unique_ptr<weld::TreeIter> TreeListBox::GetEntryPosByName(const OUString& aName, const weld::TreeIter* pStart, const IEntryFilter* _pFilter) const
+std::unique_ptr<weld::TreeIter> TreeListBox::GetEntryPosByName(std::u16string_view aName, const weld::TreeIter* pStart, const IEntryFilter* _pFilter) const
{
auto xEntry(m_xTreeView->make_iterator(pStart));
- if (!pStart && !m_xTreeView->get_iter_first(*xEntry))
- return nullptr;
+ if (pStart)
+ {
+ if (!m_xTreeView->iter_children(*xEntry))
+ return nullptr;
+ }
+ else
+ {
+ if (!m_xTreeView->get_iter_first(*xEntry))
+ return nullptr;
+ }
do
{
if (m_xTreeView->get_text(*xEntry) == aName)
{
- if (!_pFilter || _pFilter->includeEntry(reinterpret_cast<void*>(m_xTreeView->get_id(*xEntry).toUInt64())))
+ if (!_pFilter || _pFilter->includeEntry(weld::fromId<void*>(m_xTreeView->get_id(*xEntry))))
{
// found
return xEntry;
}
}
- } while (m_xTreeView->iter_next(*xEntry));
+ } while (m_xTreeView->iter_next_sibling(*xEntry));
return nullptr;
}
@@ -281,7 +294,7 @@ IMPL_LINK(TreeListBox, QueryTooltipHdl, const weld::TreeIter&, rIter, OUString)
{
OUString sQuickHelpText;
if (m_pActionListener &&
- m_pActionListener->requestQuickHelp(reinterpret_cast<void*>(m_xTreeView->get_id(rIter).toUInt64()), sQuickHelpText))
+ m_pActionListener->requestQuickHelp(weld::fromId<void*>(m_xTreeView->get_id(rIter)), sQuickHelpText))
{
return sQuickHelpText;
}
@@ -296,8 +309,8 @@ namespace
class SelectionSupplier : public SelectionSupplier_Base
{
public:
- explicit SelectionSupplier( const Any& _rSelection )
- :m_aSelection( _rSelection )
+ explicit SelectionSupplier( Any _aSelection )
+ :m_aSelection(std::move( _aSelection ))
{
}
@@ -362,24 +375,26 @@ IMPL_LINK(TreeListBox, CommandHdl, const CommandEvent&, rCEvt, bool)
if (aResourceName.isEmpty())
return false;
- css::uno::Sequence< css::uno::Any > aArgs( 3 );
- aArgs[0] <<= comphelper::makePropertyValue( "Value", aResourceName );
- aArgs[1] <<= comphelper::makePropertyValue( "Frame", m_pContextMenuProvider->getCommandController().getXController()->getFrame() );
- aArgs[2] <<= comphelper::makePropertyValue( "IsContextMenu", true );
+ css::uno::Sequence< css::uno::Any > aArgs{
+ css::uno::Any(comphelper::makePropertyValue( u"Value"_ustr, aResourceName )),
+ css::uno::Any(comphelper::makePropertyValue( u"Frame"_ustr, m_pContextMenuProvider->getCommandController().getXController()->getFrame() )),
+ css::uno::Any(comphelper::makePropertyValue( u"IsContextMenu"_ustr, true ))
+ };
- css::uno::Reference< css::uno::XComponentContext > xContext = comphelper::getProcessComponentContext();
+ const css::uno::Reference< css::uno::XComponentContext >& xContext = comphelper::getProcessComponentContext();
css::uno::Reference<css::frame::XPopupMenuController> xMenuController
(xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
- "com.sun.star.comp.framework.ResourceMenuController", aArgs, xContext), css::uno::UNO_QUERY);
+ u"com.sun.star.comp.framework.ResourceMenuController"_ustr, aArgs, xContext), css::uno::UNO_QUERY);
if (!xMenuController.is())
return false;
VclPtr<vcl::Window> xMenuParent = m_pContextMenuProvider->getMenuParent();
+ css::uno::Reference< css::awt::XWindow> xSourceWindow = VCLUnoHelper::GetInterface(xMenuParent);
+
rtl::Reference xPopupMenu( new VCLXPopupMenu );
- xMenuController->setPopupMenu( xPopupMenu.get() );
- VclPtr<PopupMenu> pContextMenu( static_cast< PopupMenu* >( xPopupMenu->GetMenu() ) );
+ xMenuController->setPopupMenu( xPopupMenu );
// allow context menu interception
::comphelper::OInterfaceContainerHelper2* pInterceptors = m_pContextMenuProvider->getContextMenuInterceptors();
@@ -388,11 +403,11 @@ IMPL_LINK(TreeListBox, CommandHdl, const CommandEvent&, rCEvt, bool)
OUString aMenuIdentifier( "private:resource/popupmenu/" + aResourceName );
ContextMenuExecuteEvent aEvent;
- aEvent.SourceWindow = VCLUnoHelper::GetInterface(xMenuParent);
+ aEvent.SourceWindow = xSourceWindow;
aEvent.ExecutePosition.X = -1;
aEvent.ExecutePosition.Y = -1;
aEvent.ActionTriggerContainer = ::framework::ActionTriggerHelper::CreateActionTriggerContainerFromMenu(
- pContextMenu.get(), &aMenuIdentifier );
+ xPopupMenu, &aMenuIdentifier );
aEvent.Selection = new SelectionSupplier(m_pContextMenuProvider->getCurrentSelection(*m_xTreeView));
::comphelper::OInterfaceIteratorHelper2 aIter( *pInterceptors );
@@ -438,9 +453,9 @@ IMPL_LINK(TreeListBox, CommandHdl, const CommandEvent&, rCEvt, bool)
if ( bModifiedMenu )
{
- pContextMenu->Clear();
+ xPopupMenu->clear();
::framework::ActionTriggerHelper::CreateMenuFromActionTriggerContainer(
- pContextMenu, aEvent.ActionTriggerContainer );
+ xPopupMenu, aEvent.ActionTriggerContainer );
aEvent.ActionTriggerContainer.clear();
}
}
@@ -449,8 +464,8 @@ IMPL_LINK(TreeListBox, CommandHdl, const CommandEvent&, rCEvt, bool)
m_pContextMenuProvider->adjustMenuPosition(*m_xTreeView, aPos);
// do action for selected entry in popup menu
- pContextMenu->Execute(xMenuParent, aPos);
- pContextMenu.disposeAndClear();
+ css::uno::Reference<css::awt::XWindowPeer> xParent(xSourceWindow, css::uno::UNO_QUERY);
+ xPopupMenu->execute(xParent, css::awt::Rectangle(aPos.X(), aPos.Y(), 1, 1), css::awt::PopupMenuDirection::EXECUTE_DOWN);
css::uno::Reference<css::lang::XComponent> xComponent(xMenuController, css::uno::UNO_QUERY);
if (xComponent.is())
@@ -478,8 +493,8 @@ std::unique_ptr<weld::TreeIter> TreeListBox::GetRootLevelParent(const weld::Tree
}
DBTreeViewBase::DBTreeViewBase(weld::Container* pContainer)
- : m_xBuilder(Application::CreateBuilder(pContainer, "dbaccess/ui/dbtreelist.ui"))
- , m_xContainer(m_xBuilder->weld_container("DBTreeList"))
+ : m_xBuilder(Application::CreateBuilder(pContainer, u"dbaccess/ui/dbtreelist.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_container(u"DBTreeList"_ustr))
{
}
@@ -490,7 +505,7 @@ DBTreeViewBase::~DBTreeViewBase()
DBTreeView::DBTreeView(weld::Container* pContainer, bool bSQLType)
: DBTreeViewBase(pContainer)
{
- m_xTreeListBox.reset(new TreeListBox(m_xBuilder->weld_tree_view("treeview"), bSQLType));
+ m_xTreeListBox.reset(new TreeListBox(m_xBuilder->weld_tree_view(u"treeview"_ustr), bSQLType));
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/control/opendoccontrols.cxx b/dbaccess/source/ui/control/opendoccontrols.cxx
index a80ed3ede422..58f12c9e01a0 100644
--- a/dbaccess/source/ui/control/opendoccontrols.cxx
+++ b/dbaccess/source/ui/control/opendoccontrols.cxx
@@ -52,18 +52,14 @@ namespace dbaui
using ::com::sun::star::ui::XImageManager;
using ::com::sun::star::graphic::XGraphic;
- Reference< XGraphic> GetCommandIcon( const char* _pCommandURL, const OUString& _rModuleName )
+ Reference< XGraphic> GetCommandIcon( const OUString& sCommandURL, const OUString& _rModuleName )
{
- if ( !_pCommandURL || !*_pCommandURL )
- return nullptr;
-
- OUString sCommandURL = OUString::createFromAscii( _pCommandURL );
try
{
do
{
// Retrieve popup menu labels
- Reference< css::uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
+ const Reference< css::uno::XComponentContext >& xContext( ::comphelper::getProcessComponentContext() );
if ( !xContext.is() )
break;
@@ -94,24 +90,16 @@ namespace dbaui
// OpenButton
- OpenDocumentButton::OpenDocumentButton(std::unique_ptr<weld::Button> xControl, const char* _pAsciiModuleName)
+ OpenDocumentButton::OpenDocumentButton(std::unique_ptr<weld::Button> xControl, const OUString& _rAsciiModuleName)
: m_xControl(std::move(xControl))
{
- impl_init( _pAsciiModuleName );
- }
-
- void OpenDocumentButton::impl_init( const char* _pAsciiModuleName )
- {
- OSL_ENSURE( _pAsciiModuleName, "OpenDocumentButton::impl_init: invalid module name!" );
- m_sModule = OUString::createFromAscii( _pAsciiModuleName );
-
// our label should equal the UI text of the "Open" command
- auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(".uno:Open", m_sModule);
+ auto aProperties = vcl::CommandInfoProvider::GetCommandProperties(u".uno:Open"_ustr, _rAsciiModuleName);
OUString sLabel(vcl::CommandInfoProvider::GetLabelForCommand(aProperties));
m_xControl->set_label(" " + sLabel.replaceAll("~", ""));
// Place icon left of text and both centered in the button.
- m_xControl->set_image(GetCommandIcon(".uno:Open", m_sModule));
+ m_xControl->set_image(GetCommandIcon(u".uno:Open"_ustr, _rAsciiModuleName));
}
// OpenDocumentListBox
@@ -130,39 +118,33 @@ namespace dbaui
{
OSL_ENSURE( _pAsciiModuleName, "OpenDocumentListBox::impl_init: invalid module name!" );
- Sequence< Sequence< PropertyValue> > aHistory = SvtHistoryOptions().GetList( ePICKLIST );
+ std::vector< SvtHistoryOptions::HistoryItem > aHistory = SvtHistoryOptions::GetList( EHistoryType::PickList );
Reference< XNameAccess > xFilterFactory;
xFilterFactory.set(::comphelper::getProcessServiceFactory()->createInstance(
- "com.sun.star.document.FilterFactory" ), css::uno::UNO_QUERY);
+ u"com.sun.star.document.FilterFactory"_ustr ), css::uno::UNO_QUERY);
- sal_uInt32 nCount = aHistory.getLength();
- for ( sal_uInt32 nItem = 0; nItem < nCount; ++nItem )
+ for ( const SvtHistoryOptions::HistoryItem& rHistoryItem : aHistory )
{
try
{
// Get the current history item's properties.
- ::comphelper::SequenceAsHashMap aItemProperties( aHistory[ nItem ] );
- OUString sURL = aItemProperties.getUnpackedValueOrDefault( HISTORY_PROPERTYNAME_URL, OUString() );
- OUString sFilter = aItemProperties.getUnpackedValueOrDefault( HISTORY_PROPERTYNAME_FILTER, OUString() );
- OUString sTitle = aItemProperties.getUnpackedValueOrDefault( HISTORY_PROPERTYNAME_TITLE, OUString() );
- OUString sPassword = aItemProperties.getUnpackedValueOrDefault( HISTORY_PROPERTYNAME_PASSWORD, OUString() );
+ OUString sURL = rHistoryItem.sURL;
+ OUString sFilter = rHistoryItem.sFilter;
+ OUString sTitle = rHistoryItem.sTitle;
- // If the entry is an impress file then insert it into the
+ // If the entry is a Base file then insert it into the
// history list and the list box.
Sequence< PropertyValue > aProps;
xFilterFactory->getByName( sFilter ) >>= aProps;
::comphelper::SequenceAsHashMap aFilterProperties( aProps );
OUString sDocumentService = aFilterProperties.getUnpackedValueOrDefault(
- "DocumentService", OUString() );
+ u"DocumentService"_ustr, OUString() );
if ( sDocumentService.equalsAscii( _pAsciiModuleName ) )
{
// yes, it's a Base document
INetURLObject aURL;
aURL.SetSmartURL( sURL );
- // The password is set only when it is not empty.
- if ( !sPassword.isEmpty() )
- aURL.SetPass( sPassword );
if ( sTitle.isEmpty() )
sTitle = aURL.getBase( INetURLObject::LAST_SEGMENT, true, INetURLObject::DecodeMechanism::Unambiguous );
@@ -170,7 +152,7 @@ namespace dbaui
OUString sDecodedURL = aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE );
m_xControl->append_text(sTitle);
- m_aURLs.emplace_back(StringPair(sDecodedURL, sFilter));
+ m_aURLs.emplace_back(sDecodedURL, sFilter);
}
}
catch( Exception& ) {}
@@ -186,7 +168,7 @@ namespace dbaui
return sURL;
}
- OpenDocumentListBox::StringPair OpenDocumentListBox::impl_getDocumentAtIndex( sal_uInt16 _nListIndex ) const
+ const OpenDocumentListBox::StringPair & OpenDocumentListBox::impl_getDocumentAtIndex( sal_uInt16 _nListIndex ) const
{
return m_aURLs[_nListIndex];
}
diff --git a/dbaccess/source/ui/control/sqledit.cxx b/dbaccess/source/ui/control/sqledit.cxx
index 60a95a8f45bb..184fde58b2b3 100644
--- a/dbaccess/source/ui/control/sqledit.cxx
+++ b/dbaccess/source/ui/control/sqledit.cxx
@@ -31,17 +31,14 @@
#include <editeng/fontitem.hxx>
#include <editeng/wghtitem.hxx>
#include <sqledit.hxx>
-#include <QueryTextView.hxx>
-#include <querycontainerwindow.hxx>
-#include <helpids.h>
-#include <undosqledit.hxx>
-#include <QueryDesignView.hxx>
-#include <svx/svxids.hrc>
#include <cppuhelper/implbase.hxx>
#include <i18nlangtag/languagetag.hxx>
+#include <svl/itempool.hxx>
#include <svl/itemset.hxx>
+#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
#include <vcl/settings.hxx>
+#include <vcl/specialchars.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
@@ -57,7 +54,7 @@ private:
virtual void SAL_CALL disposing(css::lang::EventObject const &) override
{
- osl::MutexGuard g(editor_.m_mutex);
+ std::unique_lock g(editor_.m_mutex);
editor_.m_notifier.clear();
}
@@ -71,48 +68,49 @@ private:
SQLEditView& editor_;
};
-SQLEditView::SQLEditView()
- : m_aHighlighter(HighlighterLanguage::SQL)
- , m_pItemPool(nullptr)
+SQLEditView::SQLEditView(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow)
+ : m_xScrolledWindow(std::move(xScrolledWindow))
+ , m_aUpdateDataTimer("dbaccess SQLEditView m_aUpdateDataTimer")
+ , m_aHighlighter(HighlighterLanguage::SQL)
, m_bInUpdate(false)
, m_bDisableInternalUndo(false)
{
+ m_xScrolledWindow->connect_vadjustment_changed(LINK(this, SQLEditView, ScrollHdl));
}
void SQLEditView::DisableInternalUndo()
{
- GetEditEngine().EnableUndo(false);
+ GetEditEngine()->EnableUndo(false);
m_bDisableInternalUndo = true;
}
void SQLEditView::SetItemPoolFont(SfxItemPool* pItemPool)
{
- StyleSettings aStyleSettings = Application::GetSettings().GetStyleSettings();
OUString sFontName(officecfg::Office::Common::Font::SourceViewFont::FontName::get().value_or(OUString()));
if (sFontName.isEmpty())
{
- vcl::Font aTmpFont(OutputDevice::GetDefaultFont(DefaultFontType::FIXED, Application::GetSettings().GetUILanguageTag().getLanguageType(), GetDefaultFontFlags::NONE));
+ vcl::Font aTmpFont(OutputDevice::GetDefaultFont(DefaultFontType::FIXED, Application::GetSettings().GetUILanguageTag().getLanguageType(), GetDefaultFontFlags::OnlyOne));
sFontName = aTmpFont.GetFamilyName();
}
Size aFontSize(0, officecfg::Office::Common::Font::SourceViewFont::FontHeight::get());
vcl::Font aAppFont(sFontName, aFontSize);
- pItemPool->SetPoolDefaultItem(SvxFontItem(aAppFont.GetFamilyType(), aAppFont.GetFamilyName(),
- "", PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
+ pItemPool->SetUserDefaultItem(SvxFontItem(aAppFont.GetFamilyTypeMaybeAskConfig(), aAppFont.GetFamilyName(),
+ u""_ustr, PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
EE_CHAR_FONTINFO));
- pItemPool->SetPoolDefaultItem(SvxFontItem(aAppFont.GetFamilyType(), aAppFont.GetFamilyName(),
- "", PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
+ pItemPool->SetUserDefaultItem(SvxFontItem(aAppFont.GetFamilyTypeMaybeAskConfig(), aAppFont.GetFamilyName(),
+ u""_ustr, PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
EE_CHAR_FONTINFO_CJK));
- pItemPool->SetPoolDefaultItem(SvxFontItem(aAppFont.GetFamilyType(), aAppFont.GetFamilyName(),
- "", PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
+ pItemPool->SetUserDefaultItem(SvxFontItem(aAppFont.GetFamilyTypeMaybeAskConfig(), aAppFont.GetFamilyName(),
+ u""_ustr, PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW,
EE_CHAR_FONTINFO_CTL));
- pItemPool->SetPoolDefaultItem(
+ pItemPool->SetUserDefaultItem(
SvxFontHeightItem(aAppFont.GetFontHeight() * 20, 100, EE_CHAR_FONTHEIGHT));
- pItemPool->SetPoolDefaultItem(
+ pItemPool->SetUserDefaultItem(
SvxFontHeightItem(aAppFont.GetFontHeight() * 20, 100, EE_CHAR_FONTHEIGHT_CJK));
- pItemPool->SetPoolDefaultItem(
+ pItemPool->SetUserDefaultItem(
SvxFontHeightItem(aAppFont.GetFontHeight() * 20, 100, EE_CHAR_FONTHEIGHT_CTL));
}
@@ -120,20 +118,21 @@ void SQLEditView::makeEditEngine()
{
assert(!m_pItemPool);
m_pItemPool = EditEngine::CreatePool();
- SetItemPoolFont(m_pItemPool);
- m_xEditEngine.reset(new EditEngine(m_pItemPool));
+ SetItemPoolFont(m_pItemPool.get());
+ m_xEditEngine.reset(new EditEngine(m_pItemPool.get()));
}
void SQLEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
{
WeldEditView::SetDrawingArea(pDrawingArea);
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
rEditEngine.SetDefaultHorizontalTextDirection(EEHorizontalTextDirection::L2R);
rEditEngine.SetModifyHdl(LINK(this, SQLEditView, ModifyHdl));
+ rEditEngine.SetStatusEventHdl(LINK(this, SQLEditView, EditStatusHdl));
- m_aUpdateDataTimer.SetTimeout(300);
+ m_aUpdateDataTimer.SetTimeout(150);
m_aUpdateDataTimer.SetInvokeHandler(LINK(this, SQLEditView, ImplUpdateDataHdl));
ImplSetFont();
@@ -146,13 +145,11 @@ void SQLEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea)
officecfg::Office::Common::Font::SourceViewFont::get(),
css::uno::UNO_QUERY_THROW);
{
- osl::MutexGuard g(m_mutex);
+ std::unique_lock g(m_mutex);
m_notifier = n;
}
- css::uno::Sequence< OUString > s(2);
- s[0] = "FontHeight";
- s[1] = "FontName";
- n->addPropertiesChangeListener(s, m_listener.get());
+ css::uno::Sequence< OUString > s { u"FontHeight"_ustr, u"FontName"_ustr };
+ n->addPropertiesChangeListener(s, m_listener);
m_ColorConfig.AddListener(this);
}
@@ -160,11 +157,11 @@ SQLEditView::~SQLEditView()
{
css::uno::Reference< css::beans::XMultiPropertySet > n;
{
- osl::MutexGuard g(m_mutex);
+ std::unique_lock g(m_mutex);
n = m_notifier;
}
if (n.is()) {
- n->removePropertiesChangeListener(m_listener.get());
+ n->removePropertiesChangeListener(m_listener);
}
m_ColorConfig.RemoveListener(this);
}
@@ -179,8 +176,6 @@ IMPL_LINK_NOARG(SQLEditView, ModifyHdl, LinkParamNone*, void)
{
if (m_bInUpdate)
return;
-
- m_aModifyLink.Call(nullptr);
m_aUpdateDataTimer.Start();
}
@@ -197,18 +192,18 @@ Color SQLEditView::GetColorValue(TokenType aToken)
void SQLEditView::UpdateData()
{
m_bInUpdate = true;
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
+ bool bModified = rEditEngine.IsModified();
bool bUndoEnabled = rEditEngine.IsUndoEnabled();
rEditEngine.EnableUndo(false);
// syntax highlighting
- bool bOrigModified = rEditEngine.IsModified();
for (sal_Int32 nLine=0; nLine < rEditEngine.GetParagraphCount(); ++nLine)
{
OUString aLine( rEditEngine.GetText( nLine ) );
- ESelection aAllLine(nLine, 0, nLine, EE_TEXTPOS_ALL);
+ ESelection aAllLine(nLine, 0, nLine, EE_TEXTPOS_MAX);
rEditEngine.RemoveAttribs(aAllLine, false, EE_CHAR_COLOR);
rEditEngine.RemoveAttribs(aAllLine, false, EE_CHAR_WEIGHT);
rEditEngine.RemoveAttribs(aAllLine, false, EE_CHAR_WEIGHT_CJK);
@@ -223,20 +218,24 @@ void SQLEditView::UpdateData()
rEditEngine.QuickSetAttribs(aSet, ESelection(nLine, portion.nBegin, nLine, portion.nEnd));
}
}
- if (!bOrigModified)
- rEditEngine.ClearModifyFlag();
+
+ rEditEngine.ClearModifyFlag();
+
m_bInUpdate = false;
rEditEngine.EnableUndo(bUndoEnabled);
+ if (bModified)
+ m_aModifyLink.Call(nullptr);
+
Invalidate();
}
void SQLEditView::DoBracketHilight(sal_uInt16 nKey)
{
ESelection aCurrentPos = m_xEditView->GetSelection();
- sal_Int32 nStartPos = aCurrentPos.nStartPos;
- const sal_uInt32 nStartPara = aCurrentPos.nStartPara;
+ sal_Int32 nStartPos = aCurrentPos.start.nIndex;
+ const sal_uInt32 nStartPara = aCurrentPos.start.nPara;
sal_uInt16 nCount = 0;
int nChar = -1;
@@ -295,7 +294,7 @@ void SQLEditView::DoBracketHilight(sal_uInt16 nKey)
aSet.Put(SvxWeightItem(WEIGHT_ULTRABOLD, EE_CHAR_WEIGHT_CTL));
m_xEditEngine->QuickSetAttribs(aSet, ESelection(nPara, i, nPara, i + 1));
- m_xEditEngine->QuickSetAttribs(aSet, ESelection(nStartPara, nStartPos, nStartPara, nStartPos));
+ m_xEditEngine->QuickSetAttribs(aSet, ESelection(nStartPara, nStartPos));
return;
}
else
@@ -364,6 +363,137 @@ bool SQLEditView::KeyInput(const KeyEvent& rKEvt)
return WeldEditView::KeyInput(rKEvt);
}
+bool SQLEditView::Command(const CommandEvent& rCEvt)
+{
+ if (rCEvt.GetCommand() == CommandEventId::ContextMenu)
+ {
+ ::tools::Rectangle aRect(rCEvt.GetMousePosPixel(), Size(1, 1));
+ weld::Widget* pPopupParent = GetDrawingArea();
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"vcl/ui/editmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+
+ bool bEnableCut = true;
+ bool bEnableCopy = true;
+ bool bEnableDelete = true;
+ bool bEnablePaste = true;
+ bool bEnableSpecialChar = true;
+
+ EditView* pEditView = GetEditView();
+
+ if (!pEditView->HasSelection())
+ {
+ bEnableCut = false;
+ bEnableCopy = false;
+ bEnableDelete = false;
+ }
+
+ if (pEditView->IsReadOnly())
+ {
+ bEnableCut = false;
+ bEnablePaste = false;
+ bEnableDelete = false;
+ bEnableSpecialChar = false;
+ }
+
+ xContextMenu->set_sensitive(u"cut"_ustr, bEnableCut);
+ xContextMenu->set_sensitive(u"copy"_ustr, bEnableCopy);
+ xContextMenu->set_sensitive(u"delete"_ustr, bEnableDelete);
+ xContextMenu->set_sensitive(u"paste"_ustr, bEnablePaste);
+ xContextMenu->set_sensitive(u"specialchar"_ustr, bEnableSpecialChar);
+ xContextMenu->set_visible(u"undo"_ustr, false);
+ xContextMenu->set_visible(u"specialchar"_ustr, vcl::GetGetSpecialCharsFunction() != nullptr);
+
+ OUString sCommand = xContextMenu->popup_at_rect(pPopupParent, aRect);
+
+ if (sCommand == "cut")
+ pEditView->Cut();
+ else if (sCommand == "copy")
+ pEditView->Copy();
+ else if (sCommand == "paste")
+ pEditView->Paste();
+ else if (sCommand == "delete")
+ pEditView->DeleteSelected();
+ else if (sCommand == "selectall")
+ {
+ if (m_xEditEngine->GetParagraphCount())
+ {
+ pEditView->SetSelection(ESelection::All());
+ }
+ }
+ else if (sCommand == "specialchar")
+ {
+ OUString aChars = vcl::GetGetSpecialCharsFunction()(pPopupParent, m_xEditEngine->GetStandardFont(0));
+ if (!aChars.isEmpty())
+ {
+ pEditView->InsertText(aChars);
+ }
+ }
+
+ return true;
+ }
+ return WeldEditView::Command(rCEvt);
+}
+
+void SQLEditView::EditViewScrollStateChange()
+{
+ // editengine height has changed or editview scroll pos has changed
+ SetScrollBarRange();
+}
+
+void SQLEditView::SetScrollBarRange()
+{
+ EditEngine *pEditEngine = GetEditEngine();
+ if (!pEditEngine)
+ return;
+ if (!m_xScrolledWindow)
+ return;
+ EditView* pEditView = GetEditView();
+ if (!pEditView)
+ return;
+
+ int nVUpper = pEditEngine->GetTextHeight();
+ int nVCurrentDocPos = pEditView->GetVisArea().Top();
+ const Size aOut(pEditView->GetOutputArea().GetSize());
+ int nVStepIncrement = aOut.Height() * 2 / 10;
+ int nVPageIncrement = aOut.Height() * 8 / 10;
+ int nVPageSize = aOut.Height();
+
+ /* limit the page size to below nUpper because gtk's gtk_scrolled_window_start_deceleration has
+ effectively...
+
+ lower = gtk_adjustment_get_lower
+ upper = gtk_adjustment_get_upper - gtk_adjustment_get_page_size
+
+ and requires that upper > lower or the deceleration animation never ends
+ */
+ nVPageSize = std::min(nVPageSize, nVUpper);
+
+ m_xScrolledWindow->vadjustment_configure(nVCurrentDocPos, 0, nVUpper,
+ nVStepIncrement, nVPageIncrement, nVPageSize);
+}
+
+IMPL_LINK_NOARG(SQLEditView, ScrollHdl, weld::ScrolledWindow&, void)
+{
+ DoScroll();
+}
+
+IMPL_LINK_NOARG(SQLEditView, EditStatusHdl, EditStatus&, void)
+{
+ Resize();
+}
+
+void SQLEditView::DoScroll()
+{
+ if (m_xEditView)
+ {
+ auto currentDocPos = m_xEditView->GetVisArea().Top();
+ auto nDiff = currentDocPos - m_xScrolledWindow->vadjustment_get_value();
+ // we expect SetScrollBarRange callback to be triggered by Scroll
+ // to set where we ended up
+ m_xEditView->Scroll(0, nDiff);
+ }
+}
+
void SQLEditView::ConfigurationChanged(utl::ConfigurationBroadcaster*, ConfigurationHints)
{
UpdateData();
@@ -372,9 +502,9 @@ void SQLEditView::ConfigurationChanged(utl::ConfigurationBroadcaster*, Configura
void SQLEditView::ImplSetFont()
{
// see SmEditWindow::DataChanged for a similar case
- SetItemPoolFont(m_pItemPool); // change default font
+ SetItemPoolFont(m_pItemPool.get()); // change default font
// re-create with the new font
- EditEngine& rEditEngine = GetEditEngine();
+ EditEngine& rEditEngine = *GetEditEngine();
OUString aTxt(rEditEngine.GetText());
rEditEngine.Clear();
SetTextAndUpdate(aTxt);
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
index 415cc97d5fd7..d1090a9aae0f 100644
--- a/dbaccess/source/ui/control/tabletree.cxx
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -28,13 +28,9 @@
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <connectivity/dbmetadata.hxx>
-#include <vcl/event.hxx>
-#include <vcl/settings.hxx>
-#include <vcl/svapp.hxx>
#include <algorithm>
@@ -43,10 +39,8 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdb::application;
@@ -108,7 +102,7 @@ void OTableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConn
}
catch(RuntimeException&)
{
- OSL_FAIL("OTableTreeListBox::UpdateTableList : caught a RuntimeException!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "OTableTreeListBox::UpdateTableList");
}
catch ( const SQLException& )
{
@@ -118,7 +112,7 @@ void OTableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConn
{
css::uno::Any anyEx = cppu::getCaughtException();
// a non-SQLException exception occurred ... simply throw an SQLException
- throw SQLException(sCurrentActionError, nullptr, "", 0, anyEx);
+ throw SQLException(sCurrentActionError, nullptr, u""_ustr, 0, anyEx);
}
UpdateTableList( _rxConnection, sTables, sViews );
@@ -468,7 +462,7 @@ std::unique_ptr<weld::TreeIter> OTableTreeListBox::implAddEntry(
return nullptr;
}
-NamedDatabaseObject OTableTreeListBox::describeObject(weld::TreeIter& rEntry)
+NamedDatabaseObject OTableTreeListBox::describeObject(const weld::TreeIter& rEntry)
{
NamedDatabaseObject aObject;
@@ -516,7 +510,7 @@ bool OTableTreeListBox::impl_getAndAssertMetaData( Reference< XDatabaseMetaData
return _out_rMetaData.is();
}
-OUString OTableTreeListBox::getQualifiedTableName(weld::TreeIter& rEntry) const
+OUString OTableTreeListBox::getQualifiedTableName(const weld::TreeIter& rEntry) const
{
OSL_PRECOND( !isFolderEntry(rEntry), "OTableTreeListBox::getQualifiedTableName: folder entries not allowed here!" );
@@ -630,7 +624,7 @@ void OTableTreeListBox::CheckButtons()
} while (m_xTreeView->iter_next_sibling(*xEntry));
}
-TriState OTableTreeListBox::implDetermineState(weld::TreeIter& rEntry)
+TriState OTableTreeListBox::implDetermineState(const weld::TreeIter& rEntry)
{
if (!m_bShowToggles)
return TRISTATE_FALSE;
@@ -704,7 +698,7 @@ TriState OTableTreeListBox::implDetermineState(weld::TreeIter& rEntry)
DBTableTreeView::DBTableTreeView(weld::Container* pContainer)
: DBTreeViewBase(pContainer)
{
- m_xTreeListBox.reset(new OTableTreeListBox(m_xBuilder->weld_tree_view("treeview"), /*bShowToggles*/false));
+ m_xTreeListBox.reset(new OTableTreeListBox(m_xBuilder->weld_tree_view(u"treeview"_ustr), /*bShowToggles*/false));
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/dlg/CollectionView.cxx b/dbaccess/source/ui/dlg/CollectionView.cxx
index 6b978bc301c4..355b3c9bd46e 100644
--- a/dbaccess/source/ui/dlg/CollectionView.cxx
+++ b/dbaccess/source/ui/dlg/CollectionView.cxx
@@ -18,7 +18,7 @@
*/
#include <CollectionView.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
#include <comphelper/interaction.hxx>
@@ -26,6 +26,7 @@
#include <cppuhelper/exc_hlp.hxx>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
+#include <o3tl/safeint.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <UITools.hxx>
@@ -41,14 +42,13 @@
#include <ucbhelper/commandenvironment.hxx>
#include <ucbhelper/content.hxx>
#include <connectivity/dbexception.hxx>
+#include <utility>
namespace dbaui
{
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::sdbc;
@@ -57,17 +57,17 @@ using namespace comphelper;
OCollectionView::OCollectionView(weld::Window* pParent,
const Reference< XContent>& _xContent,
const OUString& _sDefaultName,
- const css::uno::Reference< css::uno::XComponentContext >& _rxContext)
- : GenericDialogController(pParent, "dbaccess/ui/collectionviewdialog.ui", "CollectionView")
+ css::uno::Reference< css::uno::XComponentContext > _xContext)
+ : GenericDialogController(pParent, u"dbaccess/ui/collectionviewdialog.ui"_ustr, u"CollectionView"_ustr)
, m_xContent(_xContent)
- , m_xContext(_rxContext)
+ , m_xContext(std::move(_xContext))
, m_bCreateForm(true)
- , m_xFTCurrentPath(m_xBuilder->weld_label("currentPathLabel"))
- , m_xNewFolder(m_xBuilder->weld_button("newFolderButton"))
- , m_xUp(m_xBuilder->weld_button("upButton"))
- , m_xView(m_xBuilder->weld_tree_view("viewTreeview"))
- , m_xName(m_xBuilder->weld_entry("fileNameEntry"))
- , m_xPB_OK(m_xBuilder->weld_button("ok"))
+ , m_xFTCurrentPath(m_xBuilder->weld_label(u"currentPathLabel"_ustr))
+ , m_xNewFolder(m_xBuilder->weld_button(u"newFolderButton"_ustr))
+ , m_xUp(m_xBuilder->weld_button(u"upButton"_ustr))
+ , m_xView(m_xBuilder->weld_tree_view(u"viewTreeview"_ustr))
+ , m_xName(m_xBuilder->weld_entry(u"fileNameEntry"_ustr))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
{
Reference<XInteractionHandler2> xHandler(
InteractionHandler::createWithParent(m_xContext, m_xDialog->GetXWindow()));
@@ -133,7 +133,7 @@ IMPL_LINK_NOARG(OCollectionView, Save_Click, weld::Button&, void)
Sequence<Any> aValues(comphelper::InitAnyPropertySequence(
{
{"ResourceName", Any(sSubFolder)},
- {"ResourceType", Any(OUString("folder"))}
+ {"ResourceType", Any(u"folder"_ustr)}
}));
InteractiveAugmentedIOException aException(OUString(),Reference<XInterface>(),
InteractionClassification_ERROR,
@@ -141,12 +141,11 @@ IMPL_LINK_NOARG(OCollectionView, Save_Click, weld::Button&, void)
Reference<XInteractionHandler2> xHandler(
InteractionHandler::createWithParent(m_xContext, m_xDialog->GetXWindow()));
- OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aException));
- Reference< XInteractionRequest > xRequest(pRequest);
+ rtl::Reference<OInteractionRequest> pRequest = new OInteractionRequest(Any(aException));
- OInteractionApprove* pApprove = new OInteractionApprove;
+ rtl::Reference<OInteractionApprove> pApprove = new OInteractionApprove;
pRequest->addContinuation(pApprove);
- xHandler->handle(xRequest);
+ xHandler->handle(pRequest);
return;
}
@@ -178,7 +177,7 @@ IMPL_LINK_NOARG(OCollectionView, NewFolder_Click, weld::Button&, void)
try
{
Reference<XHierarchicalNameContainer> xNameContainer(m_xContent,UNO_QUERY);
- if ( dbaui::insertHierachyElement(m_xDialog.get(),m_xContext,xNameContainer,OUString(),m_bCreateForm) )
+ if ( dbaui::insertHierarchyElement(m_xDialog.get(),m_xContext,xNameContainer,OUString(),m_bCreateForm) )
Initialize();
}
catch( const SQLException& )
@@ -230,7 +229,7 @@ IMPL_LINK_NOARG(OCollectionView, Dbl_Click_FileView, weld::TreeView&, bool)
xContent.set(xNameAccess->getByName(sSubFolder),UNO_QUERY);
if ( xContent.is() )
{
- m_xContent = xContent;
+ m_xContent = std::move(xContent);
Initialize();
initCurrentPath();
}
@@ -256,10 +255,10 @@ void OCollectionView::initCurrentPath()
static const char s_sFormsCID[] = "private:forms";
static const char s_sReportsCID[] = "private:reports";
m_bCreateForm = s_sFormsCID == sCID;
- OUString sPath("/");
- if ( m_bCreateForm && sCID.getLength() != static_cast<sal_Int32>(strlen(s_sFormsCID)))
+ OUString sPath(u"/"_ustr);
+ if ( m_bCreateForm && o3tl::make_unsigned(sCID.getLength()) != strlen(s_sFormsCID))
sPath = sCID.copy(strlen(s_sFormsCID));
- else if ( !m_bCreateForm && sCID.getLength() != static_cast<sal_Int32>(strlen(s_sReportsCID)) )
+ else if ( !m_bCreateForm && o3tl::make_unsigned(sCID.getLength()) != strlen(s_sReportsCID) )
sPath = sCID.copy(strlen(s_sReportsCID) - 2);
m_xFTCurrentPath->set_label(sPath);
@@ -291,9 +290,7 @@ void OCollectionView::Initialize()
try
{
::ucbhelper::Content aContent(m_xContent, m_xCmdEnv, comphelper::getProcessComponentContext());
- Sequence<OUString> aProps(2);
- aProps[0] = "Title";
- aProps[1] = "IsFolder";
+ Sequence<OUString> aProps { u"Title"_ustr, u"IsFolder"_ustr };
auto xDynResultSet = aContent.createDynamicCursor(aProps, ucbhelper::INCLUDE_FOLDERS_ONLY);
if (!xDynResultSet.is())
return;
diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.cxx b/dbaccess/source/ui/dlg/ConnectionHelper.cxx
index 063c5320e566..54da4c0cf7b0 100644
--- a/dbaccess/source/ui/dlg/ConnectionHelper.cxx
+++ b/dbaccess/source/ui/dlg/ConnectionHelper.cxx
@@ -36,7 +36,7 @@
#include "dsselect.hxx"
#include <svl/filenotation.hxx>
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
-#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
+#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <com/sun/star/lang/SystemDependent.hpp>
#include <com/sun/star/mozilla/MozillaBootstrap.hpp>
@@ -46,7 +46,7 @@
#include <ucbhelper/content.hxx>
#include "finteraction.hxx"
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#if defined _WIN32
#include <rtl/process.h>
@@ -65,21 +65,17 @@ namespace dbaui
using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::container;
using namespace ::com::sun::star::mozilla;
- using namespace ::dbtools;
using namespace ::svt;
- OConnectionHelper::OConnectionHelper(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OString& _rId, const SfxItemSet& _rCoreAttrs)
+ OConnectionHelper::OConnectionHelper(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OUString& _rId, const SfxItemSet& _rCoreAttrs)
: OGenericAdministrationPage(pPage, pController, _rUIXMLDescription, _rId, _rCoreAttrs)
, m_bUserGrabFocus(false)
, m_pCollection(nullptr)
- , m_xFT_Connection(m_xBuilder->weld_label("browseurllabel"))
- , m_xPB_Connection(m_xBuilder->weld_button("browse"))
- , m_xPB_CreateDB(m_xBuilder->weld_button("create"))
- , m_xConnectionURL(new OConnectionURLEdit(m_xBuilder->weld_entry("browseurl"), m_xBuilder->weld_label("browselabel")))
+ , m_xFT_Connection(m_xBuilder->weld_label(u"browseurllabel"_ustr))
+ , m_xPB_Connection(m_xBuilder->weld_button(u"browse"_ustr))
+ , m_xPB_CreateDB(m_xBuilder->weld_button(u"create"_ustr))
+ , m_xConnectionURL(new OConnectionURLEdit(m_xBuilder->weld_entry(u"browseurl"_ustr), m_xBuilder->weld_label(u"browselabel"_ustr)))
{
// extract the datasource type collection from the item set
const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>( _rCoreAttrs.GetItem(DSID_TYPECOLLECTION) );
@@ -151,7 +147,7 @@ namespace dbaui
{
try
{
- Reference< XFolderPicker2 > xFolderPicker = FolderPicker::create(m_xORB);
+ Reference< XFolderPicker2 > xFolderPicker = sfx2::createFolderPicker(m_xORB, GetFrameWeld());
bool bDoBrowse = false;
OUString sOldPath = getURLNoPrefix();
@@ -221,22 +217,11 @@ namespace dbaui
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION,
FileDialogFlags::NONE, GetFrameWeld());
- aFileDlg.AddFilter(sFilterName,"*.mdb;*.mde");
+ aFileDlg.AddFilter(sFilterName,u"*.accdb;*.accde;*.mdb;*.mde"_ustr);
aFileDlg.SetCurrentFilter(sFilterName);
askForFileName(aFileDlg);
}
break;
- case ::dbaccess::DST_MSACCESS_2007:
- {
- OUString sFilterName2(DBA_RES (STR_MSACCESS_2007_FILTERNAME));
- ::sfx2::FileDialogHelper aFileDlg(
- ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION,
- FileDialogFlags::NONE, GetFrameWeld());
- aFileDlg.AddFilter(sFilterName2,"*.accdb;*.accde");
- aFileDlg.SetCurrentFilter(sFilterName2);
- askForFileName(aFileDlg);
- }
- break;
case ::dbaccess::DST_MYSQL_ODBC:
case ::dbaccess::DST_ODBC:
{
@@ -272,7 +257,7 @@ namespace dbaui
hWnd = reinterpret_cast<HWND>(tmp);
}
- sNewDataSource = getAdoDatalink(reinterpret_cast<LONG_PTR>(hWnd),sOldDataSource);
+ sNewDataSource = getAdoDatalink(reinterpret_cast<sal_IntPtr>(hWnd),sOldDataSource);
if ( !sNewDataSource.isEmpty() )
{
setURLNoPrefix(sNewDataSource);
@@ -289,20 +274,15 @@ namespace dbaui
if (eType == ::dbaccess::DST_THUNDERBIRD)
profileType = MozillaProductType_Thunderbird;
- Reference<XComponentContext> xContext = ::comphelper::getProcessComponentContext();
+ const Reference<XComponentContext>& xContext = ::comphelper::getProcessComponentContext();
Reference<XMozillaBootstrap> xMozillaBootstrap = MozillaBootstrap::create(xContext);
// collect all Mozilla Profiles
css::uno::Sequence< OUString > list;
xMozillaBootstrap->getProfileList( profileType, list );
- const OUString * pArray = list.getConstArray();
- sal_Int32 count = list.getLength();
-
- std::set<OUString> aProfiles;
- for (sal_Int32 index=0; index < count; index++)
- aProfiles.insert(pArray[index]);
+ std::set<OUString> aProfiles(list.begin(), list.end());
// execute the select dialog
ODatasourceSelectDialog aSelector(GetFrameWeld(), aProfiles);
@@ -323,7 +303,7 @@ namespace dbaui
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
FileDialogFlags::NONE, GetFrameWeld());
- aFileDlg.AddFilter(sFilterName,"*.fdb");
+ aFileDlg.AddFilter(sFilterName,u"*.fdb"_ustr);
aFileDlg.SetCurrentFilter(sFilterName);
askForFileName(aFileDlg);
break;
@@ -347,7 +327,7 @@ namespace dbaui
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION,
FileDialogFlags::NONE, GetFrameWeld());
- aFileDlg.AddFilter(sFilterName,"*.fdb");
+ aFileDlg.AddFilter(sFilterName,u"*.fdb"_ustr);
aFileDlg.SetCurrentFilter(sFilterName);
askForFileName(aFileDlg);
break;
@@ -364,7 +344,7 @@ namespace dbaui
return true;
}
- void OConnectionHelper::impl_setURL( const OUString& _rURL, bool _bPrefix )
+ void OConnectionHelper::impl_setURL( std::u16string_view _rURL, bool _bPrefix )
{
OUString sURL( comphelper::string::stripEnd(_rURL, '*') );
OSL_ENSURE( m_pCollection, "OConnectionHelper::impl_setURL: have no interpreter for the URLs!" );
@@ -436,7 +416,7 @@ namespace dbaui
return sURL;
}
- void OConnectionHelper::setURL( const OUString& _rURL )
+ void OConnectionHelper::setURL( std::u16string_view _rURL )
{
impl_setURL( _rURL, true );
}
@@ -446,7 +426,7 @@ namespace dbaui
return impl_getURL();
}
- void OConnectionHelper::setURLNoPrefix( const OUString& _rURL )
+ void OConnectionHelper::setURLNoPrefix( std::u16string_view _rURL )
{
impl_setURL( _rURL, false );
}
@@ -533,7 +513,7 @@ namespace dbaui
IS_PATH_EXIST eExists = PATH_NOT_EXIST;
Reference< css::task::XInteractionHandler > xInteractionHandler =
task::InteractionHandler::createWithParent(m_xORB, nullptr);
- OFilePickerInteractionHandler* pHandler = new OFilePickerInteractionHandler(xInteractionHandler);
+ rtl::Reference<OFilePickerInteractionHandler> pHandler = new OFilePickerInteractionHandler(xInteractionHandler);
xInteractionHandler = pHandler;
Reference< XCommandEnvironment > xCmdEnv = new ::ucbhelper::CommandEnvironment( xInteractionHandler, Reference< XProgressHandler >() );
@@ -570,7 +550,7 @@ namespace dbaui
commitURL();
}
- bool OConnectionHelper::createDirectoryDeep(const OUString& _rPathURL)
+ bool OConnectionHelper::createDirectoryDeep(std::u16string_view _rPathURL)
{
// get a URL object analyzing the URL for us ...
INetURLObject aParser;
@@ -607,15 +587,12 @@ namespace dbaui
}
else
{
- Any aContentType = aParent.getPropertyValue("ContentType");
+ Any aContentType = aParent.getPropertyValue(u"ContentType"_ustr);
aContentType >>= sContentType;
}
// the properties which need to be set on the new content
- Sequence< OUString > aNewDirectoryProperties { "Title" };
-
- // the values to be set
- Sequence< Any > aNewDirectoryAttributes(1);
+ Sequence< OUString > aNewDirectoryProperties { u"Title"_ustr };
// loop
for ( std::vector< OUString >::const_reverse_iterator aLocalName = aToBeCreated.rbegin();
@@ -623,7 +600,8 @@ namespace dbaui
++aLocalName
)
{
- aNewDirectoryAttributes[0] <<= *aLocalName;
+ // the values to be set
+ Sequence< Any > aNewDirectoryAttributes{ Any(* aLocalName) };
if (!aParent.insertNewContent(sContentType, aNewDirectoryProperties, aNewDirectoryAttributes, aParent))
return false;
}
@@ -665,7 +643,7 @@ namespace dbaui
const ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType);
- if ( ( ::dbaccess::DST_CALC == eType) || ( ::dbaccess::DST_WRITER == eType) || ( ::dbaccess::DST_MSACCESS == eType) || ( ::dbaccess::DST_MSACCESS_2007 == eType) )
+ if ( ( ::dbaccess::DST_CALC == eType) || ( ::dbaccess::DST_WRITER == eType) || ( ::dbaccess::DST_MSACCESS == eType) )
{
if( pathExists(sURL, true) == PATH_NOT_EXIST )
{
diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.hxx b/dbaccess/source/ui/dlg/ConnectionHelper.hxx
index 7129e1f5600b..bbcf24783355 100644
--- a/dbaccess/source/ui/dlg/ConnectionHelper.hxx
+++ b/dbaccess/source/ui/dlg/ConnectionHelper.hxx
@@ -38,7 +38,7 @@ namespace dbaui
bool m_bUserGrabFocus;
public:
- OConnectionHelper(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OString& _rId, const SfxItemSet& _rCoreAttrs);
+ OConnectionHelper(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OUString& _rId, const SfxItemSet& _rCoreAttrs);
virtual ~OConnectionHelper() override;
OUString m_eType; // the type can't be changed in this class, so we hold it as member.
@@ -65,7 +65,7 @@ namespace dbaui
//void setURL( const OUString& _rURL, OConnectionURLEdit* _m_pConnection );
OUString getURLNoPrefix( ) const;
- void setURLNoPrefix( const OUString& _rURL );
+ void setURLNoPrefix( std::u16string_view _rURL );
/** checks if the path is existence
@param _rURL
@@ -74,7 +74,7 @@ namespace dbaui
sal_Int32 checkPathExistence(const OUString& _rURL);
IS_PATH_EXIST pathExists(const OUString& _rURL, bool bIsFile) const;
- bool createDirectoryDeep(const OUString& _rPathNormalized);
+ bool createDirectoryDeep(std::u16string_view _rPathNormalized);
bool commitURL();
/** opens the FileOpen dialog and asks for a FileName
@@ -84,7 +84,7 @@ namespace dbaui
void askForFileName(::sfx2::FileDialogHelper& _aFileOpen);
protected:
- void setURL( const OUString& _rURL );
+ void setURL( std::u16string_view _rURL );
virtual bool checkTestConnection();
private:
@@ -93,7 +93,7 @@ namespace dbaui
DECL_LINK(GetFocusHdl, weld::Widget&, void);
DECL_LINK(LoseFocusHdl, weld::Widget&, void);
OUString impl_getURL() const;
- void impl_setURL( const OUString& _rURL, bool _bPrefix );
+ void impl_setURL( std::u16string_view _rURL, bool _bPrefix );
void implUpdateURLDependentStates() const;
};
diff --git a/dbaccess/source/ui/dlg/ConnectionPage.cxx b/dbaccess/source/ui/dlg/ConnectionPage.cxx
index 5082abf9ed98..c7293deea86e 100644
--- a/dbaccess/source/ui/dlg/ConnectionPage.cxx
+++ b/dbaccess/source/ui/dlg/ConnectionPage.cxx
@@ -35,18 +35,12 @@
#include <svl/filenotation.hxx>
#include <com/sun/star/ucb/XProgressHandler.hpp>
#include <connectivity/CommonTools.hxx>
+#include <o3tl/string_view.hxx>
namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::ucb;
- using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::container;
- using namespace ::dbtools;
- using namespace ::svt;
std::unique_ptr<SfxTabPage> OConnectionTabPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* _rAttrSet)
{
@@ -55,16 +49,16 @@ namespace dbaui
// OConnectionTabPage
OConnectionTabPage::OConnectionTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs)
- : OConnectionHelper(pPage, pController, "dbaccess/ui/connectionpage.ui", "ConnectionPage", _rCoreAttrs)
- , m_xFL2(m_xBuilder->weld_label("userlabel"))
- , m_xUserNameLabel(m_xBuilder->weld_label("userNameLabel"))
- , m_xUserName(m_xBuilder->weld_entry("userNameEntry"))
- , m_xPasswordRequired(m_xBuilder->weld_check_button("passCheckbutton"))
- , m_xFL3(m_xBuilder->weld_label("JDBCLabel"))
- , m_xJavaDriverLabel(m_xBuilder->weld_label("javaDriverLabel"))
- , m_xJavaDriver(m_xBuilder->weld_entry("driverEntry"))
- , m_xTestJavaDriver(m_xBuilder->weld_button("driverButton"))
- , m_xTestConnection(m_xBuilder->weld_button("connectionButton"))
+ : OConnectionHelper(pPage, pController, u"dbaccess/ui/connectionpage.ui"_ustr, u"ConnectionPage"_ustr, _rCoreAttrs)
+ , m_xFL2(m_xBuilder->weld_label(u"userlabel"_ustr))
+ , m_xUserNameLabel(m_xBuilder->weld_label(u"userNameLabel"_ustr))
+ , m_xUserName(m_xBuilder->weld_entry(u"userNameEntry"_ustr))
+ , m_xPasswordRequired(m_xBuilder->weld_check_button(u"passCheckbutton"_ustr))
+ , m_xFL3(m_xBuilder->weld_label(u"JDBCLabel"_ustr))
+ , m_xJavaDriverLabel(m_xBuilder->weld_label(u"javaDriverLabel"_ustr))
+ , m_xJavaDriver(m_xBuilder->weld_entry(u"driverEntry"_ustr))
+ , m_xTestJavaDriver(m_xBuilder->weld_button(u"driverButton"_ustr))
+ , m_xTestConnection(m_xBuilder->weld_button(u"connectionButton"_ustr))
{
m_xConnectionURL->connect_changed(LINK(this, OConnectionTabPage, OnEditModified));
m_xJavaDriver->connect_changed(LINK(this, OConnectionTabPage, OnEditModified));
@@ -107,11 +101,7 @@ namespace dbaui
m_xFT_Connection->set_label(DBA_RES(STR_WRITER_PATH_OR_FILE));
m_xConnectionURL->set_help_id(HID_DSADMIN_WRITER_PATH);
break;
- case ::dbaccess::DST_ADO:
- m_xFT_Connection->set_label(DBA_RES(STR_COMMONURL));
- break;
case ::dbaccess::DST_MSACCESS:
- case ::dbaccess::DST_MSACCESS_2007:
m_xFT_Connection->set_label(DBA_RES(STR_MSACCESS_MDB_FILE));
m_xConnectionURL->set_help_id(HID_DSADMIN_MSACCESS_MDB_FILE);
break;
@@ -157,6 +147,7 @@ namespace dbaui
}
m_xConnectionURL->hide();
break;
+ case ::dbaccess::DST_ADO:
case ::dbaccess::DST_JDBC:
default:
m_xFT_Connection->set_label(DBA_RES(STR_COMMONURL));
@@ -203,7 +194,7 @@ namespace dbaui
m_xJavaDriverLabel->set_visible(bEnableJDBC);
m_xJavaDriver->set_visible(bEnableJDBC);
m_xTestJavaDriver->set_visible(bEnableJDBC);
- m_xTestJavaDriver->set_sensitive( !m_xJavaDriver->get_text().trim().isEmpty() );
+ m_xTestJavaDriver->set_sensitive( !o3tl::trim(m_xJavaDriver->get_text()).empty() );
m_xFL3->set_visible(bEnableJDBC);
checkTestConnection();
@@ -238,16 +229,16 @@ namespace dbaui
}
IMPL_LINK_NOARG(OConnectionTabPage, OnTestJavaClickHdl, weld::Button&, void)
{
- OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
+ assert(m_pAdminDialog && "No Admin dialog set! ->GPF");
bool bSuccess = false;
#if HAVE_FEATURE_JAVA
try
{
- if ( !m_xJavaDriver->get_text().trim().isEmpty() )
+ if ( !o3tl::trim(m_xJavaDriver->get_text()).empty() )
{
::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM( m_pAdminDialog->getORB() );
m_xJavaDriver->set_text(m_xJavaDriver->get_text().trim()); // fdo#68341
- bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_xJavaDriver->get_text().trim());
+ bSuccess = ::connectivity::existsJavaClassByName(xJVM, o3tl::trim(m_xJavaDriver->get_text()));
}
}
catch(Exception&)
@@ -255,24 +246,24 @@ namespace dbaui
}
#endif
- const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
+ TranslateId pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error;
OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt);
aMsg.run();
}
bool OConnectionTabPage::checkTestConnection()
{
- OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
+ assert(m_pAdminDialog && "No Admin dialog set! ->GPF");
bool bEnableTestConnection = !m_xConnectionURL->get_visible() || !m_xConnectionURL->GetTextNoPrefix().isEmpty();
if ( m_pCollection->determineType(m_eType) == ::dbaccess::DST_JDBC )
- bEnableTestConnection = bEnableTestConnection && (!m_xJavaDriver->get_text().trim().isEmpty());
+ bEnableTestConnection = bEnableTestConnection && (!o3tl::trim(m_xJavaDriver->get_text()).empty());
m_xTestConnection->set_sensitive(bEnableTestConnection);
return true;
}
IMPL_LINK(OConnectionTabPage, OnEditModified, weld::Entry&, rEdit, void)
{
if (&rEdit == m_xJavaDriver.get())
- m_xTestJavaDriver->set_sensitive( !m_xJavaDriver->get_text().trim().isEmpty() );
+ m_xTestJavaDriver->set_sensitive( !o3tl::trim(m_xJavaDriver->get_text()).empty() );
checkTestConnection();
// tell the listener we were modified
diff --git a/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx b/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx
index bee1b1f11493..f27225c003be 100644
--- a/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx
+++ b/dbaccess/source/ui/dlg/ConnectionPageSetup.cxx
@@ -28,14 +28,6 @@
namespace dbaui
{
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::ucb;
- using namespace ::com::sun::star::ui::dialogs;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::container;
- using namespace ::svt;
-
std::unique_ptr<OGenericAdministrationPage> OConnectionTabPageSetup::CreateDbaseTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet)
{
return std::make_unique<OConnectionTabPageSetup>( pPage, pController, "dbaccess/ui/dbwizconnectionpage.ui", "ConnectionPage", _rAttrSet, STR_DBASE_HELPTEXT, STR_DBASE_HEADERTEXT, STR_DBASE_PATH_OR_FILE );
@@ -58,16 +50,16 @@ namespace dbaui
std::unique_ptr<OGenericAdministrationPage> OConnectionTabPageSetup::CreateUserDefinedTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet)
{
- return std::make_unique<OConnectionTabPageSetup>(pPage, pController, "dbaccess/ui/dbwizconnectionpage.ui", "ConnectionPage", _rAttrSet, nullptr, nullptr, STR_COMMONURL);
+ return std::make_unique<OConnectionTabPageSetup>(pPage, pController, "dbaccess/ui/dbwizconnectionpage.ui", "ConnectionPage", _rAttrSet, TranslateId(), TranslateId(), STR_COMMONURL);
}
- OConnectionTabPageSetup::OConnectionTabPageSetup(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OString& _rId, const SfxItemSet& _rCoreAttrs, const char* pHelpTextResId, const char* pHeaderResId, const char* pUrlResId)
+ OConnectionTabPageSetup::OConnectionTabPageSetup(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OUString& _rId, const SfxItemSet& _rCoreAttrs, TranslateId pHelpTextResId, TranslateId pHeaderResId, TranslateId pUrlResId)
: OConnectionHelper(pPage, pController, _rUIXMLDescription, _rId, _rCoreAttrs)
- , m_xHelpText(m_xBuilder->weld_label("helptext"))
- , m_xHeaderText(m_xBuilder->weld_label("header"))
+ , m_xHelpText(m_xBuilder->weld_label(u"helptext"_ustr))
+ , m_xHeaderText(m_xBuilder->weld_label(u"header"_ustr))
{
- if (pHelpTextResId != nullptr)
+ if (pHelpTextResId)
{
OUString sHelpText = DBA_RES(pHelpTextResId);
m_xHelpText->set_label(sHelpText);
@@ -75,10 +67,10 @@ namespace dbaui
else
m_xHelpText->hide();
- if (pHeaderResId != nullptr)
+ if (pHeaderResId)
m_xHeaderText->set_label(DBA_RES(pHeaderResId));
- if (pUrlResId != nullptr)
+ if (pUrlResId)
{
OUString sLabelText = DBA_RES(pUrlResId);
m_xFT_Connection->set_label(sLabelText);
diff --git a/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx b/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx
index b04fb194d36d..27b8eab284ae 100644
--- a/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx
+++ b/dbaccess/source/ui/dlg/ConnectionPageSetup.hxx
@@ -18,9 +18,10 @@
*/
#pragma once
-#include "ConnectionHelper.hxx"
+#include "ConnectionHelper.hxx"
#include "adminpages.hxx"
+#include <unotools/resmgr.hxx>
namespace dbaui
{
@@ -38,7 +39,7 @@ namespace dbaui
DECL_LINK(OnEditModified, weld::Entry&, void);
public:
- OConnectionTabPageSetup(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OString& _rId, const SfxItemSet& _rCoreAttrs, const char* pHelpTextResId, const char* pHeaderResId, const char* pUrlResId);
+ OConnectionTabPageSetup(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const OUString& _rId, const SfxItemSet& _rCoreAttrs, TranslateId pHelpTextResId, TranslateId pHeaderResId, TranslateId pUrlResId);
virtual ~OConnectionTabPageSetup() override;
static std::unique_ptr<OGenericAdministrationPage> CreateDbaseTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet);
diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx
index 9c8d0fdd8e91..2a3824bec6a4 100644
--- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx
+++ b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx
@@ -39,6 +39,9 @@
#include "TextConnectionHelper.hxx"
#include <osl/diagnose.h>
+#include <IItemSetHelper.hxx>
+#include <comphelper/string.hxx>
+
namespace dbaui
{
using namespace ::com::sun::star;
@@ -50,9 +53,9 @@ using namespace ::com::sun::star;
// OTextConnectionPageSetup
OTextConnectionPageSetup::OTextConnectionPageSetup(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OConnectionTabPageSetup(pPage, pController, "dbaccess/ui/dbwiztextpage.ui", "DBWizTextPage",
+ : OConnectionTabPageSetup(pPage, pController, u"dbaccess/ui/dbwiztextpage.ui"_ustr, u"DBWizTextPage"_ustr,
rCoreAttrs, STR_TEXT_HELPTEXT, STR_TEXT_HEADERTEXT, STR_TEXT_PATH_OR_FILE)
- , m_xSubContainer(m_xBuilder->weld_widget("TextPageContainer"))
+ , m_xSubContainer(m_xBuilder->weld_widget(u"TextPageContainer"_ustr))
, m_xTextConnectionHelper(new OTextConnectionHelper(m_xSubContainer.get(), TC_EXTENSION | TC_SEPARATORS))
{
m_xTextConnectionHelper->SetClickHandler(LINK( this, OTextConnectionPageSetup, ImplGetExtensionHdl ) );
@@ -116,16 +119,16 @@ using namespace ::com::sun::star;
// OLDAPPageSetup
OLDAPConnectionPageSetup::OLDAPConnectionPageSetup( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs )
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/ldapconnectionpage.ui", "LDAPConnectionPage", _rCoreAttrs)
- , m_xFTHelpText(m_xBuilder->weld_label("helpLabel"))
- , m_xFTHostServer(m_xBuilder->weld_label("hostNameLabel"))
- , m_xETHostServer(m_xBuilder->weld_entry("hostNameEntry"))
- , m_xFTBaseDN(m_xBuilder->weld_label("baseDNLabel"))
- , m_xETBaseDN(m_xBuilder->weld_entry("baseDNEntry"))
- , m_xFTPortNumber(m_xBuilder->weld_label("portNumLabel"))
- , m_xNFPortNumber(m_xBuilder->weld_spin_button("portNumEntry"))
- , m_xFTDefaultPortNumber(m_xBuilder->weld_label("portNumDefLabel"))
- , m_xCBUseSSL(m_xBuilder->weld_check_button("useSSLCheckbutton"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/ldapconnectionpage.ui"_ustr, u"LDAPConnectionPage"_ustr, _rCoreAttrs)
+ , m_xFTHelpText(m_xBuilder->weld_label(u"helpLabel"_ustr))
+ , m_xFTHostServer(m_xBuilder->weld_label(u"hostNameLabel"_ustr))
+ , m_xETHostServer(m_xBuilder->weld_entry(u"hostNameEntry"_ustr))
+ , m_xFTBaseDN(m_xBuilder->weld_label(u"baseDNLabel"_ustr))
+ , m_xETBaseDN(m_xBuilder->weld_entry(u"baseDNEntry"_ustr))
+ , m_xFTPortNumber(m_xBuilder->weld_label(u"portNumLabel"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portNumEntry"_ustr))
+ , m_xFTDefaultPortNumber(m_xBuilder->weld_label(u"portNumDefLabel"_ustr))
+ , m_xCBUseSSL(m_xBuilder->weld_check_button(u"useSSLCheckbutton"_ustr))
{
m_xETHostServer->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
m_xETBaseDN->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
@@ -153,7 +156,7 @@ using namespace ::com::sun::star;
OSL_ENSURE(pCollection, "OLDAPConnectionPageSetup::FillItemSet : really need a DSN type collection !");
if (pCollection)
{
- OUString sUrl = pCollection->getPrefix( "sdbc:address:ldap:") + m_xETHostServer->get_text();
+ OUString sUrl = pCollection->getPrefix( u"sdbc:address:ldap:") + m_xETHostServer->get_text();
_rSet->Put(SfxStringItem(DSID_CONNECTURL, sUrl));
bChangedSomething = true;
}
@@ -167,7 +170,7 @@ using namespace ::com::sun::star;
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xETHostServer.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xETBaseDN.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::SpinButton>(m_xNFPortNumber.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xCBUseSSL.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xCBUseSSL.get()));
}
void OLDAPConnectionPageSetup::fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
@@ -208,10 +211,10 @@ using namespace ::com::sun::star;
}
OMySQLIntroPageSetup::OMySQLIntroPageSetup(weld::Container* pPage, ODbTypeWizDialogSetup* pController, const SfxItemSet& _rCoreAttrs)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/dbwizmysqlintropage.ui", "DBWizMysqlIntroPage", _rCoreAttrs)
- , m_xODBCDatabase(m_xBuilder->weld_radio_button("odbc"))
- , m_xJDBCDatabase(m_xBuilder->weld_radio_button("jdbc"))
- , m_xNATIVEDatabase(m_xBuilder->weld_radio_button("directly"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/dbwizmysqlintropage.ui"_ustr, u"DBWizMysqlIntroPage"_ustr, _rCoreAttrs)
+ , m_xODBCDatabase(m_xBuilder->weld_radio_button(u"odbc"_ustr))
+ , m_xJDBCDatabase(m_xBuilder->weld_radio_button(u"jdbc"_ustr))
+ , m_xNATIVEDatabase(m_xBuilder->weld_radio_button(u"directly"_ustr))
{
m_xODBCDatabase->connect_toggled(LINK(this, OMySQLIntroPageSetup, OnSetupModeSelected));
m_xJDBCDatabase->connect_toggled(LINK(this, OMySQLIntroPageSetup, OnSetupModeSelected));
@@ -223,7 +226,7 @@ using namespace ::com::sun::star;
{
}
- IMPL_LINK_NOARG(OMySQLIntroPageSetup, OnSetupModeSelected, weld::ToggleButton&, void)
+ IMPL_LINK_NOARG(OMySQLIntroPageSetup, OnSetupModeSelected, weld::Toggleable&, void)
{
maClickHdl.Call( this );
}
@@ -232,13 +235,17 @@ using namespace ::com::sun::star;
{
// show the "Connect directly" option only if the driver is installed
const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>( _rSet.GetItem(DSID_TYPECOLLECTION) );
- bool bHasMySQLNative = ( pCollectionItem != nullptr ) && pCollectionItem->getCollection()->hasDriver( "sdbc:mysql:mysqlc:" );
+ bool bHasMySQLNative = ( pCollectionItem != nullptr ) && pCollectionItem->getCollection()->hasDriver( u"sdbc:mysql:mysqlc:" );
if ( bHasMySQLNative )
m_xNATIVEDatabase->show();
- // if any of the options is checked, then there's nothing to do
+ // tdf#103068: if any of the options is checked, then just update the selected kind:
+ // it could happen that the selection and the wizard path are not in sync
if ( m_xODBCDatabase->get_active() || m_xJDBCDatabase->get_active() || m_xNATIVEDatabase->get_active() )
+ {
+ maClickHdl.Call(this);
return;
+ }
// prefer "native" or "JDBC"
if ( bHasMySQLNative )
@@ -273,9 +280,9 @@ using namespace ::com::sun::star;
// MySQLNativeSetupPage
MySQLNativeSetupPage::MySQLNativeSetupPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs )
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/dbwizmysqlnativepage.ui", "DBWizMysqlNativePage", rCoreAttrs)
- , m_xHelpText(m_xBuilder->weld_label("helptext"))
- , m_xSettingsContainer(m_xBuilder->weld_container("MySQLSettingsContainer"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/dbwizmysqlnativepage.ui"_ustr, u"DBWizMysqlNativePage"_ustr, rCoreAttrs)
+ , m_xHelpText(m_xBuilder->weld_label(u"helptext"_ustr))
+ , m_xSettingsContainer(m_xBuilder->weld_container(u"MySQLSettingsContainer"_ustr))
, m_xMySQLSettings(new MySQLNativeSettings(m_xSettingsContainer.get(), LINK(this, OGenericAdministrationPage, OnControlModified)))
{
SetRoadmapStateValue(false);
@@ -324,21 +331,21 @@ using namespace ::com::sun::star;
}
// OMySQLJDBCConnectionPageSetup
- OGeneralSpecialJDBCConnectionPageSetup::OGeneralSpecialJDBCConnectionPageSetup( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs ,sal_uInt16 _nPortId, const char* pDefaultPortResId, const char* pHelpTextResId, const char* pHeaderTextResId, const char* pDriverClassId)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/specialjdbcconnectionpage.ui", "SpecialJDBCConnectionPage", _rCoreAttrs)
+ OGeneralSpecialJDBCConnectionPageSetup::OGeneralSpecialJDBCConnectionPageSetup( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs ,sal_uInt16 _nPortId, TranslateId pDefaultPortResId, TranslateId pHelpTextResId, TranslateId pHeaderTextResId, TranslateId pDriverClassId)
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/specialjdbcconnectionpage.ui"_ustr, u"SpecialJDBCConnectionPage"_ustr, _rCoreAttrs)
, m_nPortId(_nPortId)
- , m_xHeaderText(m_xBuilder->weld_label("header"))
- , m_xFTHelpText(m_xBuilder->weld_label("helpLabel"))
- , m_xFTDatabasename(m_xBuilder->weld_label("dbNameLabel"))
- , m_xETDatabasename(m_xBuilder->weld_entry("dbNameEntry"))
- , m_xFTHostname(m_xBuilder->weld_label("hostNameLabel"))
- , m_xETHostname(m_xBuilder->weld_entry("hostNameEntry"))
- , m_xFTPortNumber(m_xBuilder->weld_label("portNumLabel"))
- , m_xFTDefaultPortNumber(m_xBuilder->weld_label("portNumDefLabel"))
- , m_xNFPortNumber(m_xBuilder->weld_spin_button("portNumEntry"))
- , m_xFTDriverClass(m_xBuilder->weld_label("jdbcDriverLabel"))
- , m_xETDriverClass(m_xBuilder->weld_entry("jdbcDriverEntry"))
- , m_xPBTestJavaDriver(m_xBuilder->weld_button("testDriverButton"))
+ , m_xHeaderText(m_xBuilder->weld_label(u"header"_ustr))
+ , m_xFTHelpText(m_xBuilder->weld_label(u"helpLabel"_ustr))
+ , m_xFTDatabasename(m_xBuilder->weld_label(u"dbNameLabel"_ustr))
+ , m_xETDatabasename(m_xBuilder->weld_entry(u"dbNameEntry"_ustr))
+ , m_xFTHostname(m_xBuilder->weld_label(u"hostNameLabel"_ustr))
+ , m_xETHostname(m_xBuilder->weld_entry(u"hostNameEntry"_ustr))
+ , m_xFTPortNumber(m_xBuilder->weld_label(u"portNumLabel"_ustr))
+ , m_xFTDefaultPortNumber(m_xBuilder->weld_label(u"portNumDefLabel"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portNumEntry"_ustr))
+ , m_xFTDriverClass(m_xBuilder->weld_label(u"jdbcDriverLabel"_ustr))
+ , m_xETDriverClass(m_xBuilder->weld_entry(u"jdbcDriverEntry"_ustr))
+ , m_xPBTestJavaDriver(m_xBuilder->weld_button(u"testDriverButton"_ustr))
{
m_xFTDriverClass->set_label(DBA_RES(pDriverClassId));
@@ -448,7 +455,7 @@ using namespace ::com::sun::star;
OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue);
// to get the correct value when saveValue was called by base class
- if ( m_xETDriverClass->get_text().trim().isEmpty() )
+ if ( o3tl::trim(m_xETDriverClass->get_text()).empty() )
{
m_xETDriverClass->set_text(m_sDefaultJdbcDriverName);
m_xETDriverClass->save_value();
@@ -461,13 +468,13 @@ using namespace ::com::sun::star;
IMPL_LINK_NOARG(OGeneralSpecialJDBCConnectionPageSetup, OnTestJavaClickHdl, weld::Button&, void)
{
- OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
+ assert(m_pAdminDialog && "No Admin dialog set! ->GPF");
bool bSuccess = false;
#if HAVE_FEATURE_JAVA
try
{
- if ( !m_xETDriverClass->get_text().trim().isEmpty() )
+ if ( !o3tl::trim(m_xETDriverClass->get_text()).empty() )
{
// TODO change jvmaccess
::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM( m_pAdminDialog->getORB() );
@@ -479,7 +486,7 @@ using namespace ::com::sun::star;
{
}
#endif
- const char *pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
+ TranslateId pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error;
OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt);
aMsg.run();
@@ -488,8 +495,8 @@ using namespace ::com::sun::star;
void OGeneralSpecialJDBCConnectionPageSetup::callModifiedHdl(weld::Widget* pControl)
{
if (pControl == m_xETDriverClass.get())
- m_xPBTestJavaDriver->set_sensitive( !m_xETDriverClass->get_text().trim().isEmpty() );
- bool bRoadmapState = ((!m_xETDatabasename->get_text().isEmpty() ) && ( !m_xETHostname->get_text().isEmpty() ) && (!m_xNFPortNumber->get_text().isEmpty() ) && ( !m_xETDriverClass->get_text().trim().isEmpty() ));
+ m_xPBTestJavaDriver->set_sensitive( !o3tl::trim(m_xETDriverClass->get_text()).empty() );
+ bool bRoadmapState = ((!m_xETDatabasename->get_text().isEmpty() ) && ( !m_xETHostname->get_text().isEmpty() ) && (!m_xNFPortNumber->get_text().isEmpty() ) && ( !o3tl::trim(m_xETDriverClass->get_text()).empty() ));
SetRoadmapStateValue(bRoadmapState);
OGenericAdministrationPage::callModifiedHdl();
}
@@ -499,13 +506,136 @@ using namespace ::com::sun::star;
return std::make_unique<OJDBCConnectionPageSetup>(pPage, pController, _rAttrSet);
}
+ // OPostgresConnectionPageSetup
+ OPostgresConnectionPageSetup::OPostgresConnectionPageSetup( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs , sal_uInt16 _nPortId )
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/postgrespage.ui"_ustr, u"SpecialPostgresPage"_ustr, _rCoreAttrs)
+ , m_nPortId(_nPortId)
+ , m_xETDatabasename(m_xBuilder->weld_entry(u"dbNameEntry"_ustr))
+ , m_xETHostname(m_xBuilder->weld_entry(u"hostNameEntry"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portNumEntry"_ustr))
+ , m_xConnectionURL(new OConnectionURLEdit(m_xBuilder->weld_entry(u"browseurl"_ustr), m_xBuilder->weld_label(u"browselabel"_ustr)))
+ {
+ m_xETDatabasename->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
+ m_xETHostname->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
+ m_xNFPortNumber->connect_value_changed(LINK(this, OGenericAdministrationPage, OnControlSpinButtonModifyHdl));
+ const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>( _rCoreAttrs.GetItem(DSID_TYPECOLLECTION) );
+ if (pCollectionItem)
+ m_pCollection = pCollectionItem->getCollection();
+ OSL_ENSURE(m_pCollection, "OConnectionHelper::OConnectionHelper : really need a DSN type collection !");
+ m_xConnectionURL->SetTypeCollection(m_pCollection);
+
+ SetRoadmapStateValue(false);
+ }
+
+ OPostgresConnectionPageSetup::~OPostgresConnectionPageSetup()
+ {
+ }
+
+ std::unique_ptr<OGenericAdministrationPage> OPostgresConnectionPageSetup::CreatePostgresTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet )
+ {
+ return std::make_unique<OPostgresConnectionPageSetup>(pPage, pController,
+ _rAttrSet,
+ DSID_POSTGRES_PORTNUMBER);
+ }
+
+ void OPostgresConnectionPageSetup::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
+ {
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xETDatabasename.get()));
+ _rControlList.emplace_back( new OSaveValueWidgetWrapper<OConnectionURLEdit>( m_xConnectionURL.get() ) );
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xETHostname.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::SpinButton>(m_xNFPortNumber.get()));
+ }
+
+ bool OPostgresConnectionPageSetup::FillItemSet( SfxItemSet* _rSet )
+ {
+ bool bChangedSomething = false;
+ fillString(*_rSet,m_xConnectionURL.get(), DSID_CONNECTURL, bChangedSomething);
+ fillString(*_rSet,m_xETHostname.get(),DSID_CONN_HOSTNAME,bChangedSomething);
+ fillString(*_rSet,m_xETDatabasename.get(),DSID_DATABASENAME,bChangedSomething);
+ fillInt32(*_rSet,m_xNFPortNumber.get(),m_nPortId,bChangedSomething );
+ return bChangedSomething;
+ }
+
+ void OPostgresConnectionPageSetup::fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& /*_rControlList*/)
+ {
+ }
+
+ void OPostgresConnectionPageSetup::implInitControls(const SfxItemSet& _rSet, bool _bSaveValue)
+ {
+ // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ SetRoadmapStateValue(true);
+ bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ m_xConnectionURL->show();
+ m_xConnectionURL->ShowPrefix( false);
+
+ const SfxStringItem* pDatabaseName = _rSet.GetItem<SfxStringItem>(DSID_DATABASENAME);
+ const SfxStringItem* pUrlItem = _rSet.GetItem<SfxStringItem>(DSID_CONNECTURL);
+ const SfxStringItem* pHostName = _rSet.GetItem<SfxStringItem>(DSID_CONN_HOSTNAME);
+ const SfxInt32Item* pPortNumber = _rSet.GetItem<SfxInt32Item>(m_nPortId);
+
+ if ( bValid )
+ {
+ m_xETDatabasename->set_text(pDatabaseName->GetValue());
+ m_xETDatabasename->save_value();
+
+ OUString sUrl = pUrlItem->GetValue();
+ setURL( sUrl );
+ m_xConnectionURL->save_value();
+
+ m_xETHostname->set_text(pHostName->GetValue());
+ m_xETHostname->save_value();
+
+ m_xNFPortNumber->set_value(pPortNumber->GetValue());
+ m_xNFPortNumber->save_value();
+ }
+
+ OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue);
+
+ callModifiedHdl();
+ }
+
+ bool OPostgresConnectionPageSetup::commitPage( ::vcl::WizardTypes::CommitPageReason /*_eReason*/ )
+ {
+ return commitURL();
+ }
+
+ bool OPostgresConnectionPageSetup::commitURL()
+ {
+ OUString sURL = m_xConnectionURL->GetTextNoPrefix();
+ setURLNoPrefix(sURL);
+ m_xConnectionURL->SaveValueNoPrefix();
+ return true;
+ }
+
+ void OPostgresConnectionPageSetup::impl_setURL( std::u16string_view _rURL, bool _bPrefix )
+ {
+ OUString sURL( comphelper::string::stripEnd(_rURL, '*') );
+ OSL_ENSURE( m_pCollection, "OConnectionHelper::impl_setURL: have no interpreter for the URLs!" );
+ if ( _bPrefix )
+ m_xConnectionURL->SetText( sURL );
+ else
+ m_xConnectionURL->SetTextNoPrefix( sURL );
+ }
+
+ void OPostgresConnectionPageSetup::setURLNoPrefix( std::u16string_view _rURL )
+ {
+ impl_setURL( _rURL,false);
+ }
+
+ void OPostgresConnectionPageSetup::setURL( std::u16string_view _rURL )
+ {
+ impl_setURL( _rURL, true);
+ }
+
// OMySQLJDBCConnectionPageSetup
OJDBCConnectionPageSetup::OJDBCConnectionPageSetup(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OConnectionTabPageSetup(pPage, pController, "dbaccess/ui/jdbcconnectionpage.ui", "JDBCConnectionPage", rCoreAttrs,
+ : OConnectionTabPageSetup(pPage, pController, u"dbaccess/ui/jdbcconnectionpage.ui"_ustr, u"JDBCConnectionPage"_ustr, rCoreAttrs,
STR_JDBC_HELPTEXT, STR_JDBC_HEADERTEXT, STR_COMMONURL)
- , m_xFTDriverClass(m_xBuilder->weld_label("jdbcLabel"))
- , m_xETDriverClass(m_xBuilder->weld_entry("jdbcEntry"))
- , m_xPBTestJavaDriver(m_xBuilder->weld_button("jdbcButton"))
+ , m_xFTDriverClass(m_xBuilder->weld_label(u"jdbcLabel"_ustr))
+ , m_xETDriverClass(m_xBuilder->weld_entry(u"jdbcEntry"_ustr))
+ , m_xPBTestJavaDriver(m_xBuilder->weld_button(u"jdbcButton"_ustr))
{
m_xETDriverClass->connect_changed(LINK(this, OJDBCConnectionPageSetup, OnEditModified));
m_xPBTestJavaDriver->connect_clicked(LINK(this,OJDBCConnectionPageSetup,OnTestJavaClickHdl));
@@ -574,7 +704,7 @@ using namespace ::com::sun::star;
IMPL_LINK_NOARG(OJDBCConnectionPageSetup, OnTestJavaClickHdl, weld::Button&, void)
{
- OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
+ assert(m_pAdminDialog && "No Admin dialog set! ->GPF");
bool bSuccess = false;
#if HAVE_FEATURE_JAVA
try
@@ -591,7 +721,7 @@ using namespace ::com::sun::star;
{
}
#endif
- const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
+ TranslateId pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error;
OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt);
aMsg.run();
@@ -612,9 +742,9 @@ using namespace ::com::sun::star;
}
OSpreadSheetConnectionPageSetup::OSpreadSheetConnectionPageSetup(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OConnectionTabPageSetup(pPage, pController, "dbaccess/ui/dbwizspreadsheetpage.ui", "DBWizSpreadsheetPage",
+ : OConnectionTabPageSetup(pPage, pController, u"dbaccess/ui/dbwizspreadsheetpage.ui"_ustr, u"DBWizSpreadsheetPage"_ustr,
rCoreAttrs, STR_SPREADSHEET_HELPTEXT, STR_SPREADSHEET_HEADERTEXT, STR_SPREADSHEETPATH)
- , m_xPasswordrequired(m_xBuilder->weld_check_button("passwordrequired"))
+ , m_xPasswordrequired(m_xBuilder->weld_check_button(u"passwordrequired"_ustr))
{
m_xPasswordrequired->connect_toggled(LINK(this, OGenericAdministrationPage, OnControlModifiedButtonClick));
}
@@ -630,7 +760,7 @@ using namespace ::com::sun::star;
void OSpreadSheetConnectionPageSetup::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
OConnectionTabPageSetup::fillControls(_rControlList);
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xPasswordrequired.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xPasswordrequired.get()));
}
@@ -647,12 +777,12 @@ using namespace ::com::sun::star;
}
OAuthentificationPageSetup::OAuthentificationPageSetup(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/authentificationpage.ui", "AuthentificationPage", _rCoreAttrs)
- , m_xFTHelpText(m_xBuilder->weld_label("helptext"))
- , m_xFTUserName(m_xBuilder->weld_label("generalUserNameLabel"))
- , m_xETUserName(m_xBuilder->weld_entry("generalUserNameEntry"))
- , m_xCBPasswordRequired(m_xBuilder->weld_check_button("passRequiredCheckbutton"))
- , m_xPBTestConnection(m_xBuilder->weld_button("testConnectionButton"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/authentificationpage.ui"_ustr, u"AuthentificationPage"_ustr, _rCoreAttrs)
+ , m_xFTHelpText(m_xBuilder->weld_label(u"helptext"_ustr))
+ , m_xFTUserName(m_xBuilder->weld_label(u"generalUserNameLabel"_ustr))
+ , m_xETUserName(m_xBuilder->weld_entry(u"generalUserNameEntry"_ustr))
+ , m_xCBPasswordRequired(m_xBuilder->weld_check_button(u"passRequiredCheckbutton"_ustr))
+ , m_xPBTestConnection(m_xBuilder->weld_button(u"testConnectionButton"_ustr))
{
m_xETUserName->connect_changed(LINK(this,OGenericAdministrationPage,OnControlEntryModifyHdl));
m_xCBPasswordRequired->connect_toggled(LINK(this,OGenericAdministrationPage,OnControlModifiedButtonClick));
@@ -673,7 +803,7 @@ using namespace ::com::sun::star;
void OAuthentificationPageSetup::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xETUserName.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xCBPasswordRequired.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xCBPasswordRequired.get()));
}
void OAuthentificationPageSetup::implInitControls(const SfxItemSet& _rSet, bool /*_bSaveValue*/)
@@ -710,15 +840,15 @@ using namespace ::com::sun::star;
}
OFinalDBPageSetup::OFinalDBPageSetup(weld::Container* pPage, ODbTypeWizDialogSetup* pController, const SfxItemSet& _rCoreAttrs)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/finalpagewizard.ui", "PageFinal", _rCoreAttrs)
- , m_xFTFinalHeader(m_xBuilder->weld_label("headerText"))
- , m_xFTFinalHelpText(m_xBuilder->weld_label("helpText"))
- , m_xRBRegisterDataSource(m_xBuilder->weld_radio_button("yesregister"))
- , m_xRBDontregisterDataSource(m_xBuilder->weld_radio_button("noregister"))
- , m_xFTAdditionalSettings(m_xBuilder->weld_label("additionalText"))
- , m_xCBOpenAfterwards(m_xBuilder->weld_check_button("openediting"))
- , m_xCBStartTableWizard(m_xBuilder->weld_check_button("usewizard"))
- , m_xFTFinalText(m_xBuilder->weld_label("finishText"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/finalpagewizard.ui"_ustr, u"PageFinal"_ustr, _rCoreAttrs)
+ , m_xFTFinalHeader(m_xBuilder->weld_label(u"headerText"_ustr))
+ , m_xFTFinalHelpText(m_xBuilder->weld_label(u"helpText"_ustr))
+ , m_xRBRegisterDataSource(m_xBuilder->weld_radio_button(u"yesregister"_ustr))
+ , m_xRBDontregisterDataSource(m_xBuilder->weld_radio_button(u"noregister"_ustr))
+ , m_xFTAdditionalSettings(m_xBuilder->weld_label(u"additionalText"_ustr))
+ , m_xCBOpenAfterwards(m_xBuilder->weld_check_button(u"openediting"_ustr))
+ , m_xCBStartTableWizard(m_xBuilder->weld_check_button(u"usewizard"_ustr))
+ , m_xFTFinalText(m_xBuilder->weld_label(u"finishText"_ustr))
{
m_xCBOpenAfterwards->connect_toggled(LINK(this, OFinalDBPageSetup, OnOpenSelected));
m_xRBRegisterDataSource->set_active(true);
@@ -754,10 +884,10 @@ using namespace ::com::sun::star;
void OFinalDBPageSetup::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xCBOpenAfterwards.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xCBStartTableWizard.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xRBRegisterDataSource.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xRBDontregisterDataSource.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xCBOpenAfterwards.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xCBStartTableWizard.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xRBRegisterDataSource.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xRBDontregisterDataSource.get()));
}
void OFinalDBPageSetup::implInitControls(const SfxItemSet& /*_rSet*/, bool /*_bSaveValue*/)
@@ -775,7 +905,7 @@ using namespace ::com::sun::star;
return true;
}
- IMPL_LINK(OFinalDBPageSetup, OnOpenSelected, weld::ToggleButton&, rBox, void)
+ IMPL_LINK(OFinalDBPageSetup, OnOpenSelected, weld::Toggleable&, rBox, void)
{
m_xCBStartTableWizard->set_sensitive(rBox.get_sensitive() && rBox.get_active());
}
diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx
index d1974fa731b5..909cfede5806 100644
--- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx
+++ b/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx
@@ -25,6 +25,8 @@
#include "admincontrols.hxx"
#include "TextConnectionHelper.hxx"
+#include <curledit.hxx>
+
namespace dbaui
{
class ODbTypeWizDialogSetup;
@@ -123,10 +125,10 @@ namespace dbaui
OGeneralSpecialJDBCConnectionPageSetup(weld::Container* pPage, weld::DialogController* pController
, const SfxItemSet& _rCoreAttrs
, sal_uInt16 _nPortId
- , const char* pDefaultPortResId
- , const char* pHelpTextResId
- , const char* pHeaderTextResId
- , const char* pDriverClassId );
+ , TranslateId pDefaultPortResId
+ , TranslateId pHelpTextResId
+ , TranslateId pHeaderTextResId
+ , TranslateId pDriverClassId );
virtual ~OGeneralSpecialJDBCConnectionPageSetup() override;
static std::unique_ptr<OGenericAdministrationPage> CreateMySQLJDBCTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet );
static std::unique_ptr<OGenericAdministrationPage> CreateOracleJDBCTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet );
@@ -141,7 +143,7 @@ namespace dbaui
DECL_LINK(OnTestJavaClickHdl, weld::Button&, void);
OUString m_sDefaultJdbcDriverName;
- sal_uInt16 m_nPortId;
+ TypedWhichId<SfxInt32Item> m_nPortId;
std::unique_ptr<weld::Label> m_xHeaderText;
std::unique_ptr<weld::Label> m_xFTHelpText;
@@ -211,9 +213,45 @@ namespace dbaui
std::unique_ptr<weld::RadioButton> m_xNATIVEDatabase;
Link<OMySQLIntroPageSetup *, void> maClickHdl;
- DECL_LINK(OnSetupModeSelected, weld::ToggleButton&, void);
+ DECL_LINK(OnSetupModeSelected, weld::Toggleable&, void);
+ };
+
+ // OPostgresPageSetup
+ class OPostgresConnectionPageSetup final : public OGenericAdministrationPage
+ {
+ public:
+ OPostgresConnectionPageSetup(weld::Container* pPage, weld::DialogController* pController
+ , const SfxItemSet& _rCoreAttrs
+ , sal_uInt16 _nPortId );
+ virtual ~OPostgresConnectionPageSetup() override;
+ static std::unique_ptr<OGenericAdministrationPage> CreatePostgresTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rAttrSet );
+ ::dbaccess::ODsnTypeCollection* m_pCollection;
+
+ private:
+ virtual bool FillItemSet( SfxItemSet* _rCoreAttrs ) override;
+ virtual void implInitControls(const SfxItemSet& _rSet, bool _bSaveValue) override;
+ virtual void fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override;
+ virtual void fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override;
+ virtual bool commitPage( ::vcl::WizardTypes::CommitPageReason _eReason ) override;
+
+ TypedWhichId<SfxInt32Item> m_nPortId;
+
+ std::unique_ptr<weld::Entry> m_xETDatabasename;
+ std::unique_ptr<weld::Entry> m_xETHostname;
+ std::unique_ptr<weld::SpinButton> m_xNFPortNumber;
+ std::unique_ptr<OConnectionURLEdit> m_xConnectionURL;
+
+ /** used for the connection URL
+ @param _rURL
+ The URL to check.
+ */
+ void impl_setURL( std::u16string_view _rURL, bool _bPrefix );
+ void setURLNoPrefix( std::u16string_view _rURL );
+ void setURL( std::u16string_view _rURL );
+ bool commitURL();
};
+
// OAuthentificationPageSetup
class OAuthentificationPageSetup final : public OGenericAdministrationPage
{
@@ -249,7 +287,7 @@ namespace dbaui
bool IsTableWizardToBeStarted() const;
void enableTableWizardCheckBox( bool _bSupportsTableCreation);
- DECL_LINK(OnOpenSelected, weld::ToggleButton&, void);
+ DECL_LINK(OnOpenSelected, weld::Toggleable&, void);
protected:
virtual void implInitControls(const SfxItemSet& _rSet, bool _bSaveValue) override;
virtual void fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList) override;
diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.cxx b/dbaccess/source/ui/dlg/DbAdminImpl.cxx
index 2437196f14e3..428f5b0a06df 100644
--- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx
+++ b/dbaccess/source/ui/dlg/DbAdminImpl.cxx
@@ -43,7 +43,6 @@
#include <com/sun/star/sdbc/ConnectionPool.hpp>
#include <com/sun/star/sdbc/XDriver.hpp>
#include <com/sun/star/task/InteractionHandler.hpp>
-#include <com/sun/star/task/XInteractionRequest.hpp>
#include <com/sun/star/ucb/AuthenticationRequest.hpp>
#include <comphelper/interaction.hxx>
@@ -51,7 +50,7 @@
#include <connectivity/DriversConfig.hxx>
#include <connectivity/dbexception.hxx>
#include <osl/file.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <sal/log.hxx>
#include <typelib/typedescription.hxx>
@@ -63,6 +62,7 @@
#include <iterator>
#include <functional>
#include <o3tl/functional.hxx>
+#include <comphelper/string.hxx>
namespace dbaui
{
@@ -73,7 +73,6 @@ using namespace com::sun::star::ucb;
using namespace com::sun::star::task;
using namespace com::sun::star::sdbc;
using namespace com::sun::star::sdb;
-using namespace com::sun::star::lang;
using namespace com::sun::star::beans;
using namespace com::sun::star::util;
using namespace com::sun::star::container;
@@ -89,7 +88,7 @@ namespace
OSL_ENSURE( pPool, "implCheckItemType: invalid item pool!" );
if ( pPool )
{
- const SfxPoolItem& rDefItem = pPool->GetDefaultItem( _nId );
+ const SfxPoolItem& rDefItem = pPool->GetUserOrPoolDefaultItem( _nId );
bCorrectType = isItemType(&rDefItem);
}
return bCorrectType;
@@ -163,30 +162,30 @@ ODbDataSourceAdministrationHelper::ODbDataSourceAdministrationHelper(const Refer
m_aIndirectPropTranslator.emplace( DSID_AS_BEFORE_CORRNAME, INFO_AS_BEFORE_CORRELATION_NAME );
m_aIndirectPropTranslator.emplace( DSID_CHECK_REQUIRED_FIELDS, INFO_FORMS_CHECK_REQUIRED_FIELDS );
m_aIndirectPropTranslator.emplace( DSID_ESCAPE_DATETIME, INFO_ESCAPE_DATETIME );
- m_aIndirectPropTranslator.emplace( DSID_PRIMARY_KEY_SUPPORT, OUString("PrimaryKeySupport") );
+ m_aIndirectPropTranslator.emplace( DSID_PRIMARY_KEY_SUPPORT, u"PrimaryKeySupport"_ustr );
m_aIndirectPropTranslator.emplace( DSID_PARAMETERNAMESUBST, INFO_PARAMETERNAMESUBST );
m_aIndirectPropTranslator.emplace( DSID_IGNOREDRIVER_PRIV, INFO_IGNOREDRIVER_PRIV );
m_aIndirectPropTranslator.emplace( DSID_BOOLEANCOMPARISON, PROPERTY_BOOLEANCOMPARISONMODE );
m_aIndirectPropTranslator.emplace( DSID_ENABLEOUTERJOIN, PROPERTY_ENABLEOUTERJOIN );
m_aIndirectPropTranslator.emplace( DSID_CATALOG, PROPERTY_USECATALOGINSELECT );
m_aIndirectPropTranslator.emplace( DSID_SCHEMA, PROPERTY_USESCHEMAINSELECT );
- m_aIndirectPropTranslator.emplace( DSID_INDEXAPPENDIX, OUString("AddIndexAppendix") );
- m_aIndirectPropTranslator.emplace( DSID_DOSLINEENDS, OUString("PreferDosLikeLineEnds") );
- m_aIndirectPropTranslator.emplace( DSID_CONN_SOCKET, OUString("LocalSocket") );
- m_aIndirectPropTranslator.emplace( DSID_NAMED_PIPE, OUString("NamedPipe") );
- m_aIndirectPropTranslator.emplace( DSID_RESPECTRESULTSETTYPE, OUString("RespectDriverResultSetType") );
- m_aIndirectPropTranslator.emplace( DSID_MAX_ROW_SCAN, OUString("MaxRowScan") );
+ m_aIndirectPropTranslator.emplace( DSID_INDEXAPPENDIX, u"AddIndexAppendix"_ustr );
+ m_aIndirectPropTranslator.emplace( DSID_DOSLINEENDS, u"PreferDosLikeLineEnds"_ustr );
+ m_aIndirectPropTranslator.emplace( DSID_CONN_SOCKET, u"LocalSocket"_ustr );
+ m_aIndirectPropTranslator.emplace( DSID_NAMED_PIPE, u"NamedPipe"_ustr );
+ m_aIndirectPropTranslator.emplace( DSID_RESPECTRESULTSETTYPE, u"RespectDriverResultSetType"_ustr );
+ m_aIndirectPropTranslator.emplace( DSID_MAX_ROW_SCAN, u"MaxRowScan"_ustr );
// extra settings for ODBC
m_aIndirectPropTranslator.emplace( DSID_USECATALOG, INFO_USECATALOG );
// extra settings for an LDAP address book
m_aIndirectPropTranslator.emplace( DSID_CONN_LDAP_BASEDN, INFO_CONN_LDAP_BASEDN );
m_aIndirectPropTranslator.emplace( DSID_CONN_LDAP_ROWCOUNT, INFO_CONN_LDAP_ROWCOUNT );
- m_aIndirectPropTranslator.emplace( DSID_CONN_LDAP_USESSL, OUString("UseSSL") );
+ m_aIndirectPropTranslator.emplace( DSID_CONN_LDAP_USESSL, u"UseSSL"_ustr );
m_aIndirectPropTranslator.emplace( DSID_DOCUMENT_URL, PROPERTY_URL );
// Oracle
- m_aIndirectPropTranslator.emplace( DSID_IGNORECURRENCY, OUString("IgnoreCurrency") );
+ m_aIndirectPropTranslator.emplace( DSID_IGNORECURRENCY, u"IgnoreCurrency"_ustr );
try
{
@@ -194,7 +193,7 @@ ODbDataSourceAdministrationHelper::ODbDataSourceAdministrationHelper(const Refer
}
catch(const Exception&)
{
- ShowServiceNotAvailableError(pTopParent, "com.sun.star.sdb.DatabaseContext", true);
+ ShowServiceNotAvailableError(pTopParent, u"com.sun.star.sdb.DatabaseContext", true);
}
}
@@ -211,7 +210,7 @@ bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyVal
const SfxStringItem* pUser = m_pItemSetHelper->getOutputSet()->GetItem<SfxStringItem>(DSID_USER);
if (pUser && pUser->GetValue().getLength())
aReturn.emplace_back( "user", 0,
- makeAny(pUser->GetValue()), PropertyState_DIRECT_VALUE);
+ Any(pUser->GetValue()), PropertyState_DIRECT_VALUE);
// check if the connection type requires a password
if (hasAuthentication(*m_pItemSetHelper->getOutputSet()))
@@ -227,12 +226,12 @@ bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyVal
Reference< XModel > xModel( getDataSourceOrModel( m_xDatasource ), UNO_QUERY_THROW );
::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
- Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( "InteractionHandler", Reference< XInteractionHandler >() ) );
+ Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( u"InteractionHandler"_ustr, Reference< XInteractionHandler >() ) );
if ( !xHandler.is() )
{
// instantiate the default SDB interaction handler
- xHandler = task::InteractionHandler::createWithParent(m_xContext, nullptr);
+ xHandler = task::InteractionHandler::createWithParent(m_xContext, m_pParent->GetXWindow());
}
OUString sName = pName ? pName->GetValue() : OUString();
@@ -261,8 +260,7 @@ bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyVal
aRequest.HasAccount = false;
// aRequest.Account
- comphelper::OInteractionRequest* pRequest = new comphelper::OInteractionRequest(makeAny(aRequest));
- uno::Reference< XInteractionRequest > xRequest(pRequest);
+ rtl::Reference<comphelper::OInteractionRequest> pRequest = new comphelper::OInteractionRequest(Any(aRequest));
// build an interaction request
// two continuations (Ok and Cancel)
@@ -272,15 +270,15 @@ bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyVal
pAuthenticate->setRememberPassword( RememberAuthentication_SESSION );
// some knittings
- pRequest->addContinuation(pAbort.get());
- pRequest->addContinuation(pAuthenticate.get());
+ pRequest->addContinuation(pAbort);
+ pRequest->addContinuation(pAuthenticate);
// handle the request
try
{
SolarMutexGuard aSolarGuard;
// release the mutex when calling the handler, it may need to lock the SolarMutex
- xHandler->handle(xRequest);
+ xHandler->handle(pRequest);
}
catch(Exception&)
{
@@ -296,7 +294,7 @@ bool ODbDataSourceAdministrationHelper::getCurrentSettings(Sequence< PropertyVal
if (!sPassword.isEmpty())
aReturn.emplace_back( "password", 0,
- makeAny(sPassword), PropertyState_DIRECT_VALUE);
+ Any(sPassword), PropertyState_DIRECT_VALUE);
}
if ( !aReturn.empty() )
@@ -322,7 +320,7 @@ void ODbDataSourceAdministrationHelper::successfullyConnected()
OUString sPassword = pPassword->GetValue();
Reference< XPropertySet > xCurrentDatasource = getCurrentDataSource();
- lcl_putProperty(xCurrentDatasource,m_aDirectPropTranslator[DSID_PASSWORD], makeAny(sPassword));
+ lcl_putProperty(xCurrentDatasource,m_aDirectPropTranslator[DSID_PASSWORD], Any(sPassword));
}
}
}
@@ -382,7 +380,7 @@ Reference< XDriver > ODbDataSourceAdministrationHelper::getDriver(const OUString
{
css::uno::Any anyEx = cppu::getCaughtException();
// wrap the exception into an SQLException
- throw SQLException(sCurrentActionError, getORB(), "S1000", 0, anyEx);
+ throw SQLException(sCurrentActionError, getORB(), u"S1000"_ustr, 0, anyEx);
}
Reference< XDriver > xDriver = xDriverManager->getDriverByURL(_sURL);
@@ -391,7 +389,7 @@ Reference< XDriver > ODbDataSourceAdministrationHelper::getDriver(const OUString
sCurrentActionError = DBA_RES(STR_NOREGISTEREDDRIVER);
sCurrentActionError = sCurrentActionError.replaceFirst("#connurl#", _sURL);
// will be caught and translated into an SQLContext exception
- throw SQLException(sCurrentActionError, getORB(), "S1000", 0, Any());
+ throw SQLException(sCurrentActionError, getORB(), u"S1000"_ustr, 0, Any());
}
return xDriver;
}
@@ -433,9 +431,9 @@ Reference< XPropertySet > const & ODbDataSourceAdministrationHelper::getCurrentD
OUString ODbDataSourceAdministrationHelper::getDatasourceType( const SfxItemSet& _rSet )
{
const SfxStringItem* pConnectURL = _rSet.GetItem<SfxStringItem>(DSID_CONNECTURL);
- OSL_ENSURE( pConnectURL , "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!" );
+ assert(pConnectURL && "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!");
const DbuTypeCollectionItem* pTypeCollection = _rSet.GetItem<DbuTypeCollectionItem>(DSID_TYPECOLLECTION);
- OSL_ENSURE(pTypeCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!");
+ assert(pTypeCollection && "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!");
::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection();
return pCollection->getType(pConnectURL->GetValue());
}
@@ -454,10 +452,10 @@ OUString ODbDataSourceAdministrationHelper::getConnectionURL() const
const SfxStringItem* pUrlItem = m_pItemSetHelper->getOutputSet()->GetItem<SfxStringItem>(DSID_CONNECTURL);
const DbuTypeCollectionItem* pTypeCollection = m_pItemSetHelper->getOutputSet()->GetItem<DbuTypeCollectionItem>(DSID_TYPECOLLECTION);
- OSL_ENSURE(pUrlItem,"Connection URL is NULL. -> GPF!");
- OSL_ENSURE(pTypeCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!");
+ assert(pUrlItem && "Connection URL is NULL. -> GPF!");
+ assert(pTypeCollection && "ODbDataSourceAdministrationHelper::getDatasourceType: invalid items in the source set!");
::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection();
- OSL_ENSURE(pCollection, "ODbDataSourceAdministrationHelper::getDatasourceType: invalid type collection!");
+ assert(pCollection && "ODbDataSourceAdministrationHelper::getDatasourceType: invalid type collection!");
switch( pCollection->determineType(eType) )
{
@@ -467,7 +465,6 @@ OUString ODbDataSourceAdministrationHelper::getConnectionURL() const
case ::dbaccess::DST_WRITER:
break;
case ::dbaccess::DST_MSACCESS:
- case ::dbaccess::DST_MSACCESS_2007:
{
OUString sFileName = pCollection->cutPrefix(pUrlItem->GetValue());
OUString sNewFileName;
@@ -525,6 +522,37 @@ OUString ODbDataSourceAdministrationHelper::getConnectionURL() const
sNewUrl = pCollection->cutPrefix(pUrlItem->GetValue()) + lcl_createHostWithPort(nullptr,pPortNumber);
}
break;
+ case ::dbaccess::DST_POSTGRES:
+ {
+ OUString rURL(comphelper::string::stripEnd(pUrlItem->GetValue(), '*'));
+ const SfxStringItem* pHostName = m_pItemSetHelper->getOutputSet()->GetItem<SfxStringItem>(DSID_CONN_HOSTNAME);
+ const SfxInt32Item* pPortNumber = m_pItemSetHelper->getOutputSet()->GetItem<SfxInt32Item>(DSID_POSTGRES_PORTNUMBER);
+ const SfxStringItem* pDatabaseName = m_pItemSetHelper->getOutputSet()->GetItem<SfxStringItem>(DSID_DATABASENAME);
+ if (pHostName && pHostName->GetValue().getLength())
+ {
+ OUString hostname( pHostName->GetValue() );
+ hostname = hostname.replaceAll( "\\", "\\\\");
+ hostname = hostname.replaceAll( "\'", "\\'");
+ hostname = "'" + hostname + "'";
+ rURL += " host=" + hostname;
+ }
+ // tdf#157260: if port is already in the URL, don't add another one
+ if (pPortNumber && pPortNumber->GetValue() && (rURL.indexOf("port=") == -1))
+ {
+ OUString port = "'" + OUString::number(pPortNumber->GetValue()) + "'";
+ rURL += " port=" + port;
+ }
+ if (pDatabaseName && pDatabaseName->GetValue().getLength())
+ {
+ OUString dbname( pDatabaseName->GetValue() );
+ dbname = dbname.replaceAll( "\\", "\\\\");
+ dbname = dbname.replaceAll( "\'", "\\'");
+ dbname = "'" + dbname + "'";
+ rURL += " dbname=" + dbname;
+ }
+ return rURL;
+ }
+ break;
case ::dbaccess::DST_JDBC:
// run through
default:
@@ -532,7 +560,7 @@ OUString ODbDataSourceAdministrationHelper::getConnectionURL() const
}
if ( !sNewUrl.isEmpty() )
sNewUrl = pCollection->getPrefix(eType) + sNewUrl;
- else
+ else if (pUrlItem)
sNewUrl = pUrlItem->GetValue();
return sNewUrl;
@@ -581,7 +609,7 @@ void ODbDataSourceAdministrationHelper::translateProperties(const Reference< XPr
// collect the names of the additional settings
PropertyValueSet aInfos;
- for (const PropertyValue& rAdditionalInfo : std::as_const(aAdditionalInfo))
+ for (const PropertyValue& rAdditionalInfo : aAdditionalInfo)
{
if( rAdditionalInfo.Name == "JDBCDRV" )
{ // compatibility
@@ -633,7 +661,7 @@ void ODbDataSourceAdministrationHelper::translateProperties(const SfxItemSet& _r
try { xInfo = _rxDest->getPropertySetInfo(); }
catch(Exception&) { }
- const OUString sUrlProp("URL");
+ static constexpr OUStringLiteral sUrlProp(u"URL");
// transfer the direct properties
for (auto const& elem : m_aDirectPropTranslator)
{
@@ -650,7 +678,7 @@ void ODbDataSourceAdministrationHelper::translateProperties(const SfxItemSet& _r
{
if ( sUrlProp == elem.second )
{
- Any aValue(makeAny(getConnectionURL()));
+ Any aValue(getConnectionURL());
// aValue <<= OUString();
lcl_putProperty(_rxDest, elem.second,aValue);
}
@@ -673,7 +701,7 @@ void ODbDataSourceAdministrationHelper::translateProperties(const SfxItemSet& _r
// overwrite and extend them
fillDatasourceInfo(_rSource, aInfo);
// and propagate the (newly composed) sequence to the set
- lcl_putProperty(_rxDest,PROPERTY_INFO, makeAny(aInfo));
+ lcl_putProperty(_rxDest,PROPERTY_INFO, Any(aInfo));
}
void ODbDataSourceAdministrationHelper::fillDatasourceInfo(const SfxItemSet& _rSource, Sequence< css::beans::PropertyValue >& _rInfo)
@@ -702,7 +730,7 @@ void ODbDataSourceAdministrationHelper::fillDatasourceInfo(const SfxItemSet& _rS
OUString sCharSet;
implTranslateProperty(pCurrent) >>= sCharSet;
if ( !sCharSet.isEmpty() )
- aRelevantSettings.insert(PropertyValue(aTranslation->second, 0, makeAny(sCharSet), PropertyState_DIRECT_VALUE));
+ aRelevantSettings.insert(PropertyValue(aTranslation->second, 0, Any(sCharSet), PropertyState_DIRECT_VALUE));
}
else
aRelevantSettings.insert(PropertyValue(aTranslation->second, 0, implTranslateProperty(pCurrent), PropertyState_DIRECT_VALUE));
@@ -768,11 +796,11 @@ void ODbDataSourceAdministrationHelper::fillDatasourceInfo(const SfxItemSet& _rS
}
Sequence< Any> aTypeSettings;
- aTypeSettings = aProperties.getOrDefault("TypeInfoSettings",aTypeSettings);
+ aTypeSettings = aProperties.getOrDefault(u"TypeInfoSettings"_ustr,aTypeSettings);
// here we have a special entry for types from oracle
if ( aTypeSettings.hasElements() )
{
- aRelevantSettings.insert(PropertyValue("TypeInfoSettings", 0, makeAny(aTypeSettings), PropertyState_DIRECT_VALUE));
+ aRelevantSettings.insert(PropertyValue(u"TypeInfoSettings"_ustr, 0, Any(aTypeSettings), PropertyState_DIRECT_VALUE));
}
// check which values are still left ('cause they were not present in the original sequence, but are to be set)
@@ -862,14 +890,13 @@ OString ODbDataSourceAdministrationHelper::translatePropertyId( sal_Int32 _nId )
aString = indirectPos->second;
}
- OString aReturn( aString.getStr(), aString.getLength(), RTL_TEXTENCODING_ASCII_US );
- return aReturn;
+ return OUStringToOString( aString, RTL_TEXTENCODING_ASCII_US );
}
template<class T> static bool checkItemType(const SfxPoolItem* pItem){ return dynamic_cast<const T*>(pItem) != nullptr;}
void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet, sal_Int32 _nId, const Any& _rValue )
{
- switch ( _rValue.getValueType().getTypeClass() )
+ switch ( _rValue.getValueTypeClass() )
{
case TypeClass_STRING:
if ( implCheckItemType( _rSet, _nId, checkItemType<SfxStringItem> ) )
@@ -916,7 +943,7 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
{
sal_Int32 nValue = 0;
_rValue >>= nValue;
- _rSet.Put( SfxInt32Item( _nId, nValue ) );
+ _rSet.Put( SfxInt32Item( TypedWhichId<SfxInt32Item>(_nId), nValue ) );
}
else {
SAL_WARN( "dbaccess", "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid property value ("
@@ -932,7 +959,7 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
TypeDescription aTD(_rValue.getValueType());
typelib_IndirectTypeDescription* pSequenceTD =
reinterpret_cast< typelib_IndirectTypeDescription* >(aTD.get());
- OSL_ENSURE(pSequenceTD && pSequenceTD->pType, "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid sequence type!");
+ assert(pSequenceTD && pSequenceTD->pType && "ODbDataSourceAdministrationHelper::implTranslateProperty: invalid sequence type!");
Type aElementType(pSequenceTD->pType);
switch (aElementType.getTypeClass())
@@ -967,7 +994,7 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
OUString ODbDataSourceAdministrationHelper::getDocumentUrl(SfxItemSet const & _rDest)
{
const SfxStringItem* pUrlItem = _rDest.GetItem<SfxStringItem>(DSID_DOCUMENT_URL);
- OSL_ENSURE(pUrlItem,"Document URL is NULL. -> GPF!");
+ assert(pUrlItem && "Document URL is NULL. -> GPF!");
return pUrlItem->GetValue();
}
@@ -978,12 +1005,12 @@ void ODbDataSourceAdministrationHelper::convertUrl(SfxItemSet& _rDest)
const SfxStringItem* pUrlItem = _rDest.GetItem<SfxStringItem>(DSID_CONNECTURL);
const DbuTypeCollectionItem* pTypeCollection = _rDest.GetItem<DbuTypeCollectionItem>(DSID_TYPECOLLECTION);
- OSL_ENSURE(pUrlItem,"Connection URL is NULL. -> GPF!");
- OSL_ENSURE(pTypeCollection, "ODbAdminDialog::getDatasourceType: invalid items in the source set!");
+ assert(pUrlItem && "Connection URL is NULL. -> GPF!");
+ assert(pTypeCollection && "ODbAdminDialog::getDatasourceType: invalid items in the source set!");
::dbaccess::ODsnTypeCollection* pCollection = pTypeCollection->getCollection();
- OSL_ENSURE(pCollection, "ODbAdminDialog::getDatasourceType: invalid type collection!");
+ assert(pCollection && "ODbAdminDialog::getDatasourceType: invalid type collection!");
- sal_uInt16 nPortNumberId = 0;
+ TypedWhichId<SfxInt32Item> nPortNumberId(0);
sal_Int32 nPortNumber = -1;
OUString sNewHostName;
OUString sUrlPart;
@@ -1003,6 +1030,9 @@ void ODbDataSourceAdministrationHelper::convertUrl(SfxItemSet& _rDest)
case ::dbaccess::DST_LDAP:
nPortNumberId = DSID_CONN_LDAP_PORTNUMBER;
break;
+ case ::dbaccess::DST_POSTGRES:
+ nPortNumberId = DSID_POSTGRES_PORTNUMBER;
+ break;
default:
break;
}
@@ -1023,7 +1053,7 @@ void ODbDataSourceAdministrationHelper::convertUrl(SfxItemSet& _rDest)
if ( !sNewHostName.isEmpty() )
_rDest.Put(SfxStringItem(DSID_CONN_HOSTNAME, sNewHostName));
- if ( nPortNumber != -1 && nPortNumberId != 0 )
+ if ( nPortNumber != -1 && nPortNumberId != TypedWhichId<SfxInt32Item>(0) )
_rDest.Put(SfxInt32Item(nPortNumberId, nPortNumber));
}
@@ -1049,7 +1079,7 @@ void ODbDataSourceAdministrationHelper::setDataSourceOrName( const Any& _rDataSo
// DbuTypeCollectionItem
DbuTypeCollectionItem::DbuTypeCollectionItem(sal_Int16 _nWhich, ::dbaccess::ODsnTypeCollection* _pCollection)
- :SfxPoolItem(_nWhich)
+ :SfxPoolItem(_nWhich )
,m_pCollection(_pCollection)
{
}
diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.hxx b/dbaccess/source/ui/dlg/DbAdminImpl.hxx
index 22a61eceec80..dd4adcdc525b 100644
--- a/dbaccess/source/ui/dlg/DbAdminImpl.hxx
+++ b/dbaccess/source/ui/dlg/DbAdminImpl.hxx
@@ -40,8 +40,8 @@ namespace dbaui
{
void convert(const css::uno::Reference< css::uno::XComponentContext> & xContext,
const ::dbaccess::ODsnTypeCollection* _pCollection,
- const OUString& _sOldURLPrefix,
- const OUString& _sNewURLPrefix,
+ std::u16string_view _sOldURLPrefix,
+ std::u16string_view _sNewURLPrefix,
const css::uno::Reference< css::beans::XPropertySet >& _xDatasource);
};
class IItemSetHelper;
diff --git a/dbaccess/source/ui/dlg/DriverSettings.hxx b/dbaccess/source/ui/dlg/DriverSettings.hxx
index be488c3bd1e3..72ce3d459d3f 100644
--- a/dbaccess/source/ui/dlg/DriverSettings.hxx
+++ b/dbaccess/source/ui/dlg/DriverSettings.hxx
@@ -21,7 +21,6 @@
#include <sfx2/tabdlg.hxx>
class SfxTabPage;
-namespace vcl { class Window; }
namespace dbaui
{
/// a collection class for all details a driver needs
diff --git a/dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx b/dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx
index 41ed0e867c4b..5bede295c029 100644
--- a/dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx
+++ b/dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx
@@ -11,23 +11,20 @@
#include <strings.hrc>
#include <core_resource.hxx>
-#define ALL_STRING DBA_RES(STR_QUERY_LIMIT_ALL)
-#define ALL_INT -1
-
namespace dbaui
{
QueryPropertiesDialog::QueryPropertiesDialog(
weld::Window* pParent, const bool bDistinct, const sal_Int64 nLimit )
- : GenericDialogController(pParent, "dbaccess/ui/querypropertiesdialog.ui", "QueryPropertiesDialog")
- , m_xRB_Distinct(m_xBuilder->weld_radio_button("distinct"))
- , m_xRB_NonDistinct(m_xBuilder->weld_radio_button("nondistinct"))
- , m_xLB_Limit(m_xBuilder->weld_combo_box("limitbox"))
+ : GenericDialogController(pParent, u"dbaccess/ui/querypropertiesdialog.ui"_ustr, u"QueryPropertiesDialog"_ustr)
+ , m_xRB_Distinct(m_xBuilder->weld_radio_button(u"distinct"_ustr))
+ , m_xRB_NonDistinct(m_xBuilder->weld_radio_button(u"nondistinct"_ustr))
+ , m_xLB_Limit(m_xBuilder->weld_combo_box(u"limitbox"_ustr))
{
m_xRB_Distinct->set_active(bDistinct);
m_xRB_NonDistinct->set_active(!bDistinct);
- m_xLB_Limit->append(OUString::number(ALL_INT), ALL_STRING);
+ m_xLB_Limit->append(OUString::number(-1), DBA_RES(STR_QUERY_LIMIT_ALL)); // ALL_INT and ALL_STRING
/// Default values
sal_Int64 const aDefLimitAry[] =
{
diff --git a/dbaccess/source/ui/dlg/RelationDlg.cxx b/dbaccess/source/ui/dlg/RelationDlg.cxx
index cc449d9b7970..c1bba08df1c5 100644
--- a/dbaccess/source/ui/dlg/RelationDlg.cxx
+++ b/dbaccess/source/ui/dlg/RelationDlg.cxx
@@ -22,7 +22,7 @@
#include <com/sun/star/sdbc/KeyRule.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <JoinDesignView.hxx>
#include <JoinController.hxx>
#include <connectivity/dbexception.hxx>
@@ -33,8 +33,6 @@
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::beans;
using namespace ::dbaui;
using namespace ::dbtools;
@@ -42,19 +40,19 @@ ORelationDialog::ORelationDialog( OJoinTableView* pParent,
const TTableConnectionData::value_type& pConnectionData,
bool bAllowTableSelect )
: GenericDialogController(pParent->GetFrameWeld(),
- "dbaccess/ui/relationdialog.ui", "RelationDialog")
+ u"dbaccess/ui/relationdialog.ui"_ustr, u"RelationDialog"_ustr)
, m_pParent(pParent)
, m_pOrigConnData(pConnectionData)
, m_bTriedOneUpdate(false)
- , m_xRB_NoCascUpd(m_xBuilder->weld_radio_button("addaction"))
- , m_xRB_CascUpd(m_xBuilder->weld_radio_button("addcascade"))
- , m_xRB_CascUpdNull(m_xBuilder->weld_radio_button("addnull"))
- , m_xRB_CascUpdDefault(m_xBuilder->weld_radio_button("adddefault"))
- , m_xRB_NoCascDel(m_xBuilder->weld_radio_button("delaction"))
- , m_xRB_CascDel(m_xBuilder->weld_radio_button("delcascade"))
- , m_xRB_CascDelNull(m_xBuilder->weld_radio_button("delnull"))
- , m_xRB_CascDelDefault(m_xBuilder->weld_radio_button("deldefault"))
- , m_xPB_OK(m_xBuilder->weld_button("ok"))
+ , m_xRB_NoCascUpd(m_xBuilder->weld_radio_button(u"addaction"_ustr))
+ , m_xRB_CascUpd(m_xBuilder->weld_radio_button(u"addcascade"_ustr))
+ , m_xRB_CascUpdNull(m_xBuilder->weld_radio_button(u"addnull"_ustr))
+ , m_xRB_CascUpdDefault(m_xBuilder->weld_radio_button(u"adddefault"_ustr))
+ , m_xRB_NoCascDel(m_xBuilder->weld_radio_button(u"delaction"_ustr))
+ , m_xRB_CascDel(m_xBuilder->weld_radio_button(u"delcascade"_ustr))
+ , m_xRB_CascDelNull(m_xBuilder->weld_radio_button(u"delnull"_ustr))
+ , m_xRB_CascDelDefault(m_xBuilder->weld_radio_button(u"deldefault"_ustr))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
{
// Copy connection
m_pConnData = pConnectionData->NewInstance();
diff --git a/dbaccess/source/ui/dlg/TablesSingleDlg.cxx b/dbaccess/source/ui/dlg/TablesSingleDlg.cxx
index bcf039c5e16d..1e17bf568d2d 100644
--- a/dbaccess/source/ui/dlg/TablesSingleDlg.cxx
+++ b/dbaccess/source/ui/dlg/TablesSingleDlg.cxx
@@ -25,9 +25,7 @@ namespace dbaui
{
using namespace com::sun::star::uno;
using namespace com::sun::star::sdbc;
-using namespace com::sun::star::lang;
using namespace com::sun::star::beans;
-using namespace com::sun::star::container;
// OTableSubscriptionDialog
OTableSubscriptionDialog::OTableSubscriptionDialog(weld::Window* pParent
@@ -35,7 +33,7 @@ OTableSubscriptionDialog::OTableSubscriptionDialog(weld::Window* pParent
,const Reference< XComponentContext >& _rxORB
,const css::uno::Any& _aDataSourceName)
: SfxSingleTabDialogController(pParent, _pItems,
- "dbaccess/ui/tablesfilterdialog.ui", "TablesFilterDialog")
+ u"dbaccess/ui/tablesfilterdialog.ui"_ustr, u"TablesFilterDialog"_ustr)
, m_pImpl(new ODbDataSourceAdministrationHelper(_rxORB, m_xDialog.get(), pParent, this))
, m_bStopExecution(false)
{
diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
index a494bda4c4ad..e186b139c4e1 100644
--- a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
+++ b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
@@ -28,18 +28,25 @@
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <vcl/mnemonic.hxx>
+#include <o3tl/string_view.hxx>
namespace
{
-OUString lcl_getListEntry(const OUString& rStr, sal_Int32& rIdx)
+OUString lcl_getListEntry(std::u16string_view rStr, sal_Int32& rIdx)
{
- const OUString sTkn {rStr.getToken( 0, '\t', rIdx )};
+ const OUString sTkn {o3tl::getToken(rStr, 0, '\t', rIdx )};
if (rIdx>=0)
{
- rIdx = rStr.indexOf('\t', rIdx);
- if (rIdx>=0 && ++rIdx>=rStr.getLength())
+ size_t nFnd = rStr.find('\t', rIdx);
+ if (nFnd == std::u16string_view::npos)
rIdx = -1;
+ else
+ {
+ rIdx = nFnd + 1;
+ if (rIdx >= static_cast<sal_Int32>(rStr.size()))
+ rIdx = -1;
+ }
}
return sTkn;
}
@@ -54,27 +61,27 @@ namespace dbaui
, m_aTextSeparatorList (STR_AUTOTEXTSEPARATORLIST)
, m_aTextNone (DBA_RES(STR_AUTOTEXT_FIELD_SEP_NONE))
, m_nAvailableSections( _nAvailableSections )
- , m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/textpage.ui"))
- , m_xContainer(m_xBuilder->weld_widget("TextPage"))
- , m_xExtensionHeader(m_xBuilder->weld_widget("extensionframe"))
- , m_xAccessTextFiles(m_xBuilder->weld_radio_button("textfile"))
- , m_xAccessCSVFiles(m_xBuilder->weld_radio_button("csvfile"))
- , m_xAccessOtherFiles(m_xBuilder->weld_radio_button("custom"))
- , m_xOwnExtension(m_xBuilder->weld_entry("extension"))
- , m_xExtensionExample(m_xBuilder->weld_label("example"))
- , m_xFormatHeader(m_xBuilder->weld_widget("formatframe"))
- , m_xFieldSeparatorLabel(m_xBuilder->weld_label("fieldlabel"))
- , m_xFieldSeparator(m_xBuilder->weld_combo_box("fieldseparator"))
- , m_xTextSeparatorLabel(m_xBuilder->weld_label("textlabel"))
- , m_xTextSeparator(m_xBuilder->weld_combo_box("textseparator"))
- , m_xDecimalSeparatorLabel(m_xBuilder->weld_label("decimallabel"))
- , m_xDecimalSeparator(m_xBuilder->weld_combo_box("decimalseparator"))
- , m_xThousandsSeparatorLabel(m_xBuilder->weld_label("thousandslabel"))
- , m_xThousandsSeparator(m_xBuilder->weld_combo_box("thousandsseparator"))
- , m_xRowHeader(m_xBuilder->weld_check_button("containsheaders"))
- , m_xCharSetHeader(m_xBuilder->weld_widget("charsetframe"))
- , m_xCharSetLabel(m_xBuilder->weld_label("charsetlabel"))
- , m_xCharSet(new CharSetListBox(m_xBuilder->weld_combo_box("charset")))
+ , m_xBuilder(Application::CreateBuilder(pParent, u"dbaccess/ui/textpage.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_widget(u"TextPage"_ustr))
+ , m_xExtensionHeader(m_xBuilder->weld_widget(u"extensionframe"_ustr))
+ , m_xAccessTextFiles(m_xBuilder->weld_radio_button(u"textfile"_ustr))
+ , m_xAccessCSVFiles(m_xBuilder->weld_radio_button(u"csvfile"_ustr))
+ , m_xAccessOtherFiles(m_xBuilder->weld_radio_button(u"custom"_ustr))
+ , m_xOwnExtension(m_xBuilder->weld_entry(u"extension"_ustr))
+ , m_xExtensionExample(m_xBuilder->weld_label(u"example"_ustr))
+ , m_xFormatHeader(m_xBuilder->weld_widget(u"formatframe"_ustr))
+ , m_xFieldSeparatorLabel(m_xBuilder->weld_label(u"fieldlabel"_ustr))
+ , m_xFieldSeparator(m_xBuilder->weld_combo_box(u"fieldseparator"_ustr))
+ , m_xTextSeparatorLabel(m_xBuilder->weld_label(u"textlabel"_ustr))
+ , m_xTextSeparator(m_xBuilder->weld_combo_box(u"textseparator"_ustr))
+ , m_xDecimalSeparatorLabel(m_xBuilder->weld_label(u"decimallabel"_ustr))
+ , m_xDecimalSeparator(m_xBuilder->weld_combo_box(u"decimalseparator"_ustr))
+ , m_xThousandsSeparatorLabel(m_xBuilder->weld_label(u"thousandslabel"_ustr))
+ , m_xThousandsSeparator(m_xBuilder->weld_combo_box(u"thousandsseparator"_ustr))
+ , m_xRowHeader(m_xBuilder->weld_check_button(u"containsheaders"_ustr))
+ , m_xCharSetHeader(m_xBuilder->weld_widget(u"charsetframe"_ustr))
+ , m_xCharSetLabel(m_xBuilder->weld_label(u"charsetlabel"_ustr))
+ , m_xCharSet(new CharSetListBox(m_xBuilder->weld_combo_box(u"charset"_ustr)))
{
for(sal_Int32 nIdx {0}; nIdx>=0;)
m_xFieldSeparator->append_text( lcl_getListEntry(m_aFieldSeparatorList, nIdx) );
@@ -93,24 +100,23 @@ namespace dbaui
{
short nFlag;
weld::Widget* pFrame;
- } aSections[] = {
+ } const aSections[] = {
{ TC_EXTENSION, m_xExtensionHeader.get() },
{ TC_SEPARATORS, m_xFormatHeader.get() },
{ TC_HEADER, m_xRowHeader.get() },
- { TC_CHARSET, m_xCharSetHeader.get() },
- { 0, nullptr }
+ { TC_CHARSET, m_xCharSetHeader.get() }
};
- for ( size_t section=0; section < SAL_N_ELEMENTS( aSections ) - 1; ++section )
+ for (auto const & section: aSections)
{
- if ( ( m_nAvailableSections & aSections[section].nFlag ) != 0 )
+ if ( ( m_nAvailableSections & section.nFlag ) != 0 )
{
// the section is visible, no need to do anything here
continue;
}
// hide all elements from this section
- aSections[section].pFrame->hide();
+ section.pFrame->hide();
}
m_xContainer->show();
@@ -121,7 +127,7 @@ namespace dbaui
m_aGetExtensionHandler.Call(this);
}
- IMPL_LINK_NOARG(OTextConnectionHelper, OnSetExtensionHdl, weld::ToggleButton&, void)
+ IMPL_LINK_NOARG(OTextConnectionHelper, OnSetExtensionHdl, weld::Toggleable&, void)
{
bool bDoEnable = m_xAccessOtherFiles->get_active();
m_xOwnExtension->set_sensitive(bDoEnable);
@@ -135,7 +141,7 @@ namespace dbaui
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xTextSeparator.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xDecimalSeparator.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xThousandsSeparator.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xRowHeader.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xRowHeader.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xCharSet->get_widget()));
}
@@ -350,22 +356,22 @@ namespace dbaui
return sExtension;
}
- OUString OTextConnectionHelper::GetSeparator(const weld::ComboBox& rBox, const OUString& rList)
+ OUString OTextConnectionHelper::GetSeparator(const weld::ComboBox& rBox, std::u16string_view rList)
{
sal_Unicode const nTok = '\t';
int nPos(rBox.find_text(rBox.get_active_text()));
if (nPos == -1)
- return rBox.get_active_text().copy(0);
+ return rBox.get_active_text();
if ( m_xTextSeparator.get() != &rBox || nPos != (rBox.get_count()-1) )
return OUString(
- static_cast< sal_Unicode >( rList.getToken((nPos*2)+1, nTok ).toInt32() ));
+ static_cast< sal_Unicode >( o3tl::toInt32(o3tl::getToken(rList, (nPos*2)+1, nTok )) ));
// somewhat strange ... translates for instance an "32" into " "
return OUString();
}
- void OTextConnectionHelper::SetSeparator( weld::ComboBox& rBox, const OUString& rList, const OUString& rVal )
+ void OTextConnectionHelper::SetSeparator( weld::ComboBox& rBox, std::u16string_view rList, const OUString& rVal )
{
if (rVal.getLength()==1)
{
@@ -373,9 +379,9 @@ namespace dbaui
for(sal_Int32 nIdx {0}; nIdx>=0;)
{
sal_Int32 nPrevIdx {nIdx};
- if (static_cast<sal_Unicode>(rList.getToken(1, '\t', nIdx).toInt32()) == nVal)
+ if (static_cast<sal_Unicode>(o3tl::toInt32(o3tl::getToken(rList, 1, '\t', nIdx))) == nVal)
{
- rBox.set_entry_text(rList.getToken(0, '\t', nPrevIdx));
+ rBox.set_entry_text(OUString(o3tl::getToken(rList,0, '\t', nPrevIdx)));
return;
}
}
diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx b/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
index 459260960e40..6755a422378e 100644
--- a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
+++ b/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
@@ -68,11 +68,11 @@ namespace dbaui
std::unique_ptr<weld::Label> m_xCharSetLabel;
std::unique_ptr<CharSetListBox> m_xCharSet;
- DECL_LINK(OnSetExtensionHdl, weld::ToggleButton&, void);
+ DECL_LINK(OnSetExtensionHdl, weld::Toggleable&, void);
DECL_LINK(OnEditModified, weld::Entry&, void);
- OUString GetSeparator(const weld::ComboBox& rBox, const OUString& rList);
- void SetSeparator(weld::ComboBox& rBox, const OUString& rList, const OUString& rVal);
+ OUString GetSeparator(const weld::ComboBox& rBox, std::u16string_view rList);
+ void SetSeparator(weld::ComboBox& rBox, std::u16string_view rList, const OUString& rVal);
void SetExtension(const OUString& _rVal);
public:
diff --git a/dbaccess/source/ui/dlg/UserAdmin.cxx b/dbaccess/source/ui/dlg/UserAdmin.cxx
index a3e24939709f..21e293d75f07 100644
--- a/dbaccess/source/ui/dlg/UserAdmin.cxx
+++ b/dbaccess/source/ui/dlg/UserAdmin.cxx
@@ -24,7 +24,6 @@
#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp>
#include <com/sun/star/sdbcx/XUsersSupplier.hpp>
#include <com/sun/star/sdbcx/XDrop.hpp>
-#include <ucbhelper/interactionrequest.hxx>
#include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/sdbcx/XUser.hpp>
@@ -46,11 +45,13 @@ using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::task;
using namespace dbaui;
-using namespace ucbhelper;
-using namespace comphelper;
namespace {
+#define MNI_ACTION_ADD_USER "add"
+#define MNI_ACTION_DEL_USER "delete"
+#define MNI_ACTION_CHANGE_PASSWORD "password"
+
class OPasswordDialog : public weld::GenericDialogController
{
std::unique_ptr<weld::Frame> m_xUser;
@@ -63,7 +64,7 @@ class OPasswordDialog : public weld::GenericDialogController
DECL_LINK(ModifiedHdl, weld::Entry&, void);
public:
- OPasswordDialog(weld::Window* pParent,const OUString& rUserName);
+ OPasswordDialog(weld::Window* pParent, std::u16string_view rUserName);
OUString GetOldPassword() const { return m_xEDOldPassword->get_text(); }
OUString GetNewPassword() const { return m_xEDPassword->get_text(); }
@@ -71,13 +72,13 @@ public:
}
-OPasswordDialog::OPasswordDialog(weld::Window* _pParent,const OUString& rUserName)
- : GenericDialogController(_pParent, "dbaccess/ui/password.ui", "PasswordDialog")
- , m_xUser(m_xBuilder->weld_frame("userframe"))
- , m_xEDOldPassword(m_xBuilder->weld_entry("oldpassword"))
- , m_xEDPassword(m_xBuilder->weld_entry("newpassword"))
- , m_xEDPasswordRepeat(m_xBuilder->weld_entry("confirmpassword"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
+OPasswordDialog::OPasswordDialog(weld::Window* _pParent, std::u16string_view rUserName)
+ : GenericDialogController(_pParent, u"dbaccess/ui/password.ui"_ustr, u"PasswordDialog"_ustr)
+ , m_xUser(m_xBuilder->weld_frame(u"userframe"_ustr))
+ , m_xEDOldPassword(m_xBuilder->weld_entry(u"oldpassword"_ustr))
+ , m_xEDPassword(m_xBuilder->weld_entry(u"newpassword"_ustr))
+ , m_xEDPasswordRepeat(m_xBuilder->weld_entry(u"confirmpassword"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
{
OUString sUser = m_xUser->get_label();
sUser = sUser.replaceFirst("$name$: $", rUserName);
@@ -112,21 +113,88 @@ IMPL_LINK(OPasswordDialog, ModifiedHdl, weld::Entry&, rEdit, void)
// OUserAdmin
OUserAdmin::OUserAdmin(weld::Container* pPage, weld::DialogController* pController,const SfxItemSet& _rAttrSet)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/useradminpage.ui", "UserAdminPage", _rAttrSet)
- , m_xUSER(m_xBuilder->weld_combo_box("user"))
- , m_xNEWUSER(m_xBuilder->weld_button("add"))
- , m_xCHANGEPWD(m_xBuilder->weld_button("changepass"))
- , m_xDELETEUSER(m_xBuilder->weld_button("delete"))
- , m_xTable(m_xBuilder->weld_container("table"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/useradminpage.ui"_ustr, u"UserAdminPage"_ustr, _rAttrSet)
+ , mxActionBar(m_xBuilder->weld_menu_button(u"action_menu"_ustr))
+ , m_xUSER(m_xBuilder->weld_combo_box(u"user"_ustr))
+ , m_xTable(m_xBuilder->weld_container(u"table"_ustr))
, m_xTableCtrlParent(m_xTable->CreateChildFrame())
, m_xTableCtrl(VclPtr<OTableGrantControl>::Create(m_xTableCtrlParent))
{
+ mxActionBar->append_item(u"" MNI_ACTION_ADD_USER ""_ustr, DBA_RES(STR_ADD_USER));
+ mxActionBar->append_item(u"" MNI_ACTION_DEL_USER ""_ustr, DBA_RES(STR_DELETE_USER));
+ mxActionBar->append_item(u"" MNI_ACTION_CHANGE_PASSWORD ""_ustr, DBA_RES(STR_CHANGE_PASSWORD));
+ mxActionBar->connect_selected(LINK(this,OUserAdmin,MenuSelectHdl));
+
m_xTableCtrl->Show();
m_xUSER->connect_changed(LINK(this, OUserAdmin, ListDblClickHdl));
- m_xNEWUSER->connect_clicked(LINK(this, OUserAdmin, UserHdl));
- m_xCHANGEPWD->connect_clicked(LINK(this, OUserAdmin, UserHdl));
- m_xDELETEUSER->connect_clicked(LINK(this, OUserAdmin, UserHdl));
+}
+
+IMPL_LINK(OUserAdmin, MenuSelectHdl, const OUString&, rIdent, void)
+{
+ try
+ {
+ if (rIdent == MNI_ACTION_ADD_USER) {
+ SfxPasswordDialog aPwdDlg(GetFrameWeld());
+ aPwdDlg.ShowExtras(SfxShowExtras::ALL);
+ if (aPwdDlg.run())
+ {
+ Reference<XDataDescriptorFactory> xUserFactory(m_xUsers,UNO_QUERY);
+ Reference<XPropertySet> xNewUser = xUserFactory->createDataDescriptor();
+ if(xNewUser.is())
+ {
+ xNewUser->setPropertyValue(PROPERTY_NAME,Any(aPwdDlg.GetUser()));
+ xNewUser->setPropertyValue(PROPERTY_PASSWORD,Any(aPwdDlg.GetPassword()));
+ Reference<XAppend> xAppend(m_xUsers,UNO_QUERY);
+ if(xAppend.is())
+ xAppend->appendByDescriptor(xNewUser);
+ }
+ }
+ }
+ else if (rIdent == MNI_ACTION_DEL_USER) {
+ if (m_xUsers.is() && m_xUsers->hasByName(GetUser()))
+ {
+ Reference<XDrop> xDrop(m_xUsers,UNO_QUERY);
+ if(xDrop.is())
+ {
+ std::unique_ptr<weld::MessageDialog> xQry(Application::CreateMessageDialog(GetFrameWeld(),
+ VclMessageType::Question, VclButtonsType::YesNo,
+ DBA_RES(STR_QUERY_USERADMIN_DELETE_USER)));
+ if (xQry->run() == RET_YES)
+ xDrop->dropByName(GetUser());
+ }
+ }
+ }
+ else if (rIdent == MNI_ACTION_CHANGE_PASSWORD) {
+ OUString sName = GetUser();
+ if(m_xUsers->hasByName(sName))
+ {
+ Reference<XUser> xUser;
+ m_xUsers->getByName(sName) >>= xUser;
+ if(xUser.is())
+ {
+ OPasswordDialog aDlg(GetFrameWeld(), sName);
+ if (aDlg.run() == RET_OK)
+ {
+ OUString sNewPassword,sOldPassword;
+ sNewPassword = aDlg.GetNewPassword();
+ sOldPassword = aDlg.GetOldPassword();
+
+ if(!sNewPassword.isEmpty())
+ xUser->changePassword(sOldPassword,sNewPassword);
+ }
+ }
+ }
+ }
+ FillUserNames();
+ }
+ catch(const SQLException& e)
+ {
+ ::dbtools::showError(::dbtools::SQLExceptionInfo(e), GetDialogController()->getDialog()->GetXWindow(), m_xORB);
+ }
+ catch(Exception& )
+ {
+ }
}
OUserAdmin::~OUserAdmin()
@@ -154,11 +222,8 @@ void OUserAdmin::FillUserNames()
{
m_xUSER->clear();
- m_aUserNames = m_xUsers->getElementNames();
- const OUString* pBegin = m_aUserNames.getConstArray();
- const OUString* pEnd = pBegin + m_aUserNames.getLength();
- for(;pBegin != pEnd;++pBegin)
- m_xUSER->append_text(*pBegin);
+ for (auto& name : m_xUsers->getElementNames())
+ m_xUSER->append_text(name);
m_xUSER->set_active(0);
if(m_xUsers->hasByName(m_UserName))
@@ -175,11 +240,11 @@ void OUserAdmin::FillUserNames()
}
Reference<XAppend> xAppend(m_xUsers,UNO_QUERY);
- m_xNEWUSER->set_sensitive(xAppend.is());
+ mxActionBar->set_item_sensitive(u"" MNI_ACTION_ADD_USER ""_ustr, xAppend.is());
Reference<XDrop> xDrop(m_xUsers,UNO_QUERY);
- m_xDELETEUSER->set_sensitive(xDrop.is());
+ mxActionBar->set_item_sensitive(u"" MNI_ACTION_DEL_USER ""_ustr, xDrop.is());
+ mxActionBar->set_item_sensitive(u"" MNI_ACTION_CHANGE_PASSWORD ""_ustr, m_xUsers.is());
- m_xCHANGEPWD->set_sensitive(m_xUsers.is());
m_xTableCtrl->Enable(m_xUsers.is());
}
@@ -188,77 +253,6 @@ std::unique_ptr<SfxTabPage> OUserAdmin::Create( weld::Container* pPage, weld::Di
return std::make_unique<OUserAdmin>( pPage, pController, *_rAttrSet );
}
-IMPL_LINK(OUserAdmin, UserHdl, weld::Button&, rButton, void)
-{
- try
- {
- if (&rButton == m_xNEWUSER.get())
- {
- SfxPasswordDialog aPwdDlg(GetFrameWeld());
- aPwdDlg.ShowExtras(SfxShowExtras::ALL);
- if (aPwdDlg.run())
- {
- Reference<XDataDescriptorFactory> xUserFactory(m_xUsers,UNO_QUERY);
- Reference<XPropertySet> xNewUser = xUserFactory->createDataDescriptor();
- if(xNewUser.is())
- {
- xNewUser->setPropertyValue(PROPERTY_NAME,makeAny(aPwdDlg.GetUser()));
- xNewUser->setPropertyValue(PROPERTY_PASSWORD,makeAny(aPwdDlg.GetPassword()));
- Reference<XAppend> xAppend(m_xUsers,UNO_QUERY);
- if(xAppend.is())
- xAppend->appendByDescriptor(xNewUser);
- }
- }
- }
- else if (&rButton == m_xCHANGEPWD.get())
- {
- OUString sName = GetUser();
-
- if(m_xUsers->hasByName(sName))
- {
- Reference<XUser> xUser;
- m_xUsers->getByName(sName) >>= xUser;
- if(xUser.is())
- {
- OPasswordDialog aDlg(GetFrameWeld(), sName);
- if (aDlg.run() == RET_OK)
- {
- OUString sNewPassword,sOldPassword;
- sNewPassword = aDlg.GetNewPassword();
- sOldPassword = aDlg.GetOldPassword();
-
- if(!sNewPassword.isEmpty())
- xUser->changePassword(sOldPassword,sNewPassword);
- }
- }
- }
- }
- else
- {// delete user
- if(m_xUsers.is() && m_xUsers->hasByName(GetUser()))
- {
- Reference<XDrop> xDrop(m_xUsers,UNO_QUERY);
- if(xDrop.is())
- {
- std::unique_ptr<weld::MessageDialog> xQry(Application::CreateMessageDialog(GetFrameWeld(),
- VclMessageType::Question, VclButtonsType::YesNo,
- DBA_RES(STR_QUERY_USERADMIN_DELETE_USER)));
- if (xQry->run() == RET_YES)
- xDrop->dropByName(GetUser());
- }
- }
- }
- FillUserNames();
- }
- catch(const SQLException& e)
- {
- ::dbtools::showError(::dbtools::SQLExceptionInfo(e), GetDialogController()->getDialog()->GetXWindow(), m_xORB);
- }
- catch(Exception& )
- {
- }
-}
-
IMPL_LINK_NOARG(OUserAdmin, ListDblClickHdl, weld::ComboBox&, void)
{
m_xTableCtrl->setUserName(GetUser());
diff --git a/dbaccess/source/ui/dlg/UserAdmin.hxx b/dbaccess/source/ui/dlg/UserAdmin.hxx
index e9c2a13e7876..9c376511351b 100644
--- a/dbaccess/source/ui/dlg/UserAdmin.hxx
+++ b/dbaccess/source/ui/dlg/UserAdmin.hxx
@@ -32,23 +32,20 @@ namespace dbaui
class OUserAdmin final : public OGenericAdministrationPage
{
+ std::unique_ptr<weld::MenuButton> mxActionBar;
std::unique_ptr<weld::ComboBox> m_xUSER;
- std::unique_ptr<weld::Button> m_xNEWUSER;
- std::unique_ptr<weld::Button> m_xCHANGEPWD;
- std::unique_ptr<weld::Button> m_xDELETEUSER;
std::unique_ptr<weld::Container> m_xTable;
css::uno::Reference<css::awt::XWindow> m_xTableCtrlParent;
VclPtr<OTableGrantControl> m_xTableCtrl; // show the grant rights of one user
css::uno::Reference< css::sdbc::XConnection> m_xConnection;
css::uno::Reference< css::container::XNameAccess > m_xUsers;
- css::uno::Sequence< OUString> m_aUserNames;
OUString m_UserName;
// methods
DECL_LINK(ListDblClickHdl, weld::ComboBox&, void);
- DECL_LINK(UserHdl, weld::Button&, void);
+ DECL_LINK(MenuSelectHdl, const OUString&, void);
void FillUserNames();
diff --git a/dbaccess/source/ui/dlg/UserAdminDlg.cxx b/dbaccess/source/ui/dlg/UserAdminDlg.cxx
index ec44c33994b9..a70db89f7c49 100644
--- a/dbaccess/source/ui/dlg/UserAdminDlg.cxx
+++ b/dbaccess/source/ui/dlg/UserAdminDlg.cxx
@@ -31,15 +31,13 @@
#include <connectivity/dbtools.hxx>
#include <comphelper/types.hxx>
#include <cppuhelper/exc_hlp.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaui
{
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::sdbcx;
// OUserAdminDlg
OUserAdminDlg::OUserAdminDlg(weld::Window* pParent,
@@ -47,7 +45,7 @@ namespace dbaui
const Reference< XComponentContext >& rxORB,
const css::uno::Any& rDataSourceName,
const Reference< XConnection >& xConnection)
- : SfxTabDialogController(pParent, "dbaccess/ui/useradmindialog.ui", "UserAdminDialog", pItems)
+ : SfxTabDialogController(pParent, u"dbaccess/ui/useradmindialog.ui"_ustr, u"UserAdminDialog"_ustr, pItems)
, m_pParent(pParent)
, m_pItemSet(pItems)
, m_xConnection(xConnection)
@@ -61,7 +59,7 @@ namespace dbaui
// propagate this set as our new input set and reset the example set
m_xExampleSet.reset(new SfxItemSet(*GetInputSetImpl()));
- AddTabPage("settings", OUserAdmin::Create, nullptr);
+ AddTabPage(u"settings"_ustr, OUserAdmin::Create, nullptr);
// remove the reset button - it's meaning is much too ambiguous in this dialog
RemoveResetButton();
@@ -91,7 +89,7 @@ namespace dbaui
if ( !aMetaData.supportsUserAdministration( getORB() ) )
{
OUString sError(DBA_RES(STR_USERADMIN_NOT_AVAILABLE));
- throw SQLException(sError, nullptr, "S1000", 0, Any());
+ throw SQLException(sError, nullptr, u"S1000"_ustr, 0, Any());
}
}
catch(const SQLException&)
@@ -108,7 +106,7 @@ namespace dbaui
m_pImpl->saveChanges(*GetOutputItemSet());
return nRet;
}
- void OUserAdminDlg::PageCreated(const OString& rId, SfxTabPage& _rPage)
+ void OUserAdminDlg::PageCreated(const OUString& rId, SfxTabPage& _rPage)
{
// register ourself as modified listener
static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory( m_pImpl->getORB() );
diff --git a/dbaccess/source/ui/dlg/admincontrols.cxx b/dbaccess/source/ui/dlg/admincontrols.cxx
index 88a3bdc1465f..cc98d6cf96ae 100644
--- a/dbaccess/source/ui/dlg/admincontrols.cxx
+++ b/dbaccess/source/ui/dlg/admincontrols.cxx
@@ -30,20 +30,20 @@ namespace dbaui
// MySQLNativeSettings
MySQLNativeSettings::MySQLNativeSettings(weld::Widget* pParent, const Link<weld::Widget*,void>& rControlModificationLink)
- : m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/mysqlnativesettings.ui"))
- , m_xContainer(m_xBuilder->weld_widget("MysqlNativeSettings"))
- , m_xDatabaseNameLabel(m_xBuilder->weld_label("dbnamelabel"))
- , m_xDatabaseName(m_xBuilder->weld_entry("dbname"))
- , m_xHostPortRadio(m_xBuilder->weld_radio_button("hostport"))
- , m_xSocketRadio(m_xBuilder->weld_radio_button("socketlabel"))
- , m_xNamedPipeRadio(m_xBuilder->weld_radio_button("namedpipelabel"))
- , m_xHostNameLabel(m_xBuilder->weld_label("serverlabel"))
- , m_xHostName(m_xBuilder->weld_entry("server"))
- , m_xPortLabel(m_xBuilder->weld_label("portlabel"))
- , m_xPort(m_xBuilder->weld_spin_button("port"))
- , m_xDefaultPort(m_xBuilder->weld_label("defaultport"))
- , m_xSocket(m_xBuilder->weld_entry("socket"))
- , m_xNamedPipe(m_xBuilder->weld_entry("namedpipe"))
+ : m_xBuilder(Application::CreateBuilder(pParent, u"dbaccess/ui/mysqlnativesettings.ui"_ustr))
+ , m_xContainer(m_xBuilder->weld_widget(u"MysqlNativeSettings"_ustr))
+ , m_xDatabaseNameLabel(m_xBuilder->weld_label(u"dbnamelabel"_ustr))
+ , m_xDatabaseName(m_xBuilder->weld_entry(u"dbname"_ustr))
+ , m_xHostPortRadio(m_xBuilder->weld_radio_button(u"hostport"_ustr))
+ , m_xSocketRadio(m_xBuilder->weld_radio_button(u"socketlabel"_ustr))
+ , m_xNamedPipeRadio(m_xBuilder->weld_radio_button(u"namedpipelabel"_ustr))
+ , m_xHostNameLabel(m_xBuilder->weld_label(u"serverlabel"_ustr))
+ , m_xHostName(m_xBuilder->weld_entry(u"server"_ustr))
+ , m_xPortLabel(m_xBuilder->weld_label(u"portlabel"_ustr))
+ , m_xPort(m_xBuilder->weld_spin_button(u"port"_ustr))
+ , m_xDefaultPort(m_xBuilder->weld_label(u"defaultport"_ustr))
+ , m_xSocket(m_xBuilder->weld_entry(u"socket"_ustr))
+ , m_xNamedPipe(m_xBuilder->weld_entry(u"namedpipe"_ustr))
, m_aControlModificationLink(rControlModificationLink)
{
m_xDatabaseName->connect_changed( LINK(this, MySQLNativeSettings, EditModifyHdl) );
@@ -66,7 +66,7 @@ namespace dbaui
m_xContainer->show();
}
- IMPL_LINK(MySQLNativeSettings, RadioToggleHdl, weld::ToggleButton&, rRadioButton, void)
+ IMPL_LINK(MySQLNativeSettings, RadioToggleHdl, weld::Toggleable&, rRadioButton, void)
{
m_aControlModificationLink.Call(&rRadioButton);
diff --git a/dbaccess/source/ui/dlg/admincontrols.hxx b/dbaccess/source/ui/dlg/admincontrols.hxx
index 0f691cc51460..7bd1e5edfc97 100644
--- a/dbaccess/source/ui/dlg/admincontrols.hxx
+++ b/dbaccess/source/ui/dlg/admincontrols.hxx
@@ -45,7 +45,7 @@ namespace dbaui
std::unique_ptr<weld::Entry> m_xSocket;
std::unique_ptr<weld::Entry> m_xNamedPipe;
Link<weld::Widget*,void> m_aControlModificationLink;
- DECL_LINK(RadioToggleHdl, weld::ToggleButton&, void);
+ DECL_LINK(RadioToggleHdl, weld::Toggleable&, void);
DECL_LINK(SpinModifyHdl, weld::SpinButton&, void);
DECL_LINK(EditModifyHdl, weld::Entry&, void);
diff --git a/dbaccess/source/ui/dlg/adminpages.cxx b/dbaccess/source/ui/dlg/adminpages.cxx
index 4dbdb3d6afad..c418728217b1 100644
--- a/dbaccess/source/ui/dlg/adminpages.cxx
+++ b/dbaccess/source/ui/dlg/adminpages.cxx
@@ -40,15 +40,12 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
- using namespace ::dbtools;
ISaveValueWrapper::~ISaveValueWrapper()
{
}
- OGenericAdministrationPage::OGenericAdministrationPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rId, const SfxItemSet& rAttrSet)
+ OGenericAdministrationPage::OGenericAdministrationPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rId, const SfxItemSet& rAttrSet)
: SfxTabPage(pPage, pController, rUIXMLDescription, rId, &rAttrSet)
, m_abEnableRoadmap(false)
, m_pAdminDialog(nullptr)
@@ -103,7 +100,7 @@ namespace dbaui
callModifiedHdl(pCtrl);
}
- IMPL_LINK(OGenericAdministrationPage, OnControlModifiedButtonClick, weld::ToggleButton&, rCtrl, void)
+ IMPL_LINK(OGenericAdministrationPage, OnControlModifiedButtonClick, weld::Toggleable&, rCtrl, void)
{
callModifiedHdl(&rCtrl);
}
@@ -208,7 +205,7 @@ namespace dbaui
_bChangedSomething = true;
}
- void OGenericAdministrationPage::fillInt32(SfxItemSet& _rSet, const weld::SpinButton* pEdit, sal_uInt16 _nID, bool& _bChangedSomething)
+ void OGenericAdministrationPage::fillInt32(SfxItemSet& _rSet, const weld::SpinButton* pEdit, TypedWhichId<SfxInt32Item> _nID, bool& _bChangedSomething)
{
if (pEdit && pEdit->get_value_changed_from_saved())
{
@@ -216,19 +213,19 @@ namespace dbaui
_bChangedSomething = true;
}
}
- void OGenericAdministrationPage::fillString(SfxItemSet& _rSet, const weld::Entry* pEdit, sal_uInt16 _nID, bool& _bChangedSomething)
+ void OGenericAdministrationPage::fillString(SfxItemSet& _rSet, const weld::Entry* pEdit, TypedWhichId<SfxStringItem> _nID, bool& _bChangedSomething)
{
if (pEdit && pEdit->get_value_changed_from_saved())
{
- _rSet.Put(SfxStringItem(_nID, pEdit->get_text()));
+ _rSet.Put(SfxStringItem(_nID, pEdit->get_text().trim()));
_bChangedSomething = true;
}
}
- void OGenericAdministrationPage::fillString(SfxItemSet& _rSet, const dbaui::OConnectionURLEdit* pEdit, sal_uInt16 _nID, bool& _bChangedSomething)
+ void OGenericAdministrationPage::fillString(SfxItemSet& _rSet, const dbaui::OConnectionURLEdit* pEdit, TypedWhichId<SfxStringItem> _nID, bool& _bChangedSomething)
{
if (pEdit && pEdit->get_value_changed_from_saved())
{
- _rSet.Put(SfxStringItem(_nID, pEdit->GetText()));
+ _rSet.Put(SfxStringItem(_nID, pEdit->GetText().trim()));
_bChangedSomething = true;
}
}
diff --git a/dbaccess/source/ui/dlg/adminpages.hxx b/dbaccess/source/ui/dlg/adminpages.hxx
index e42ef6359525..b3bb07274d59 100644
--- a/dbaccess/source/ui/dlg/adminpages.hxx
+++ b/dbaccess/source/ui/dlg/adminpages.hxx
@@ -19,10 +19,14 @@
#pragma once
+#include <osl/diagnose.h>
#include <sfx2/tabdlg.hxx>
#include <vcl/wizardmachine.hxx>
#include <curledit.hxx>
+class SfxInt32Item;
+class SfxStringItem;
+
namespace dbaui
{
/// helper class to wrap the savevalue and disable call
@@ -45,11 +49,11 @@ namespace dbaui
virtual void Disable() override { m_pSaveValue->set_sensitive(false); }
};
- template <> class OSaveValueWidgetWrapper<weld::ToggleButton> : public ISaveValueWrapper
+ template <> class OSaveValueWidgetWrapper<weld::Toggleable> : public ISaveValueWrapper
{
- weld::ToggleButton* m_pSaveValue;
+ weld::Toggleable* m_pSaveValue;
public:
- explicit OSaveValueWidgetWrapper(weld::ToggleButton* _pSaveValue) : m_pSaveValue(_pSaveValue)
+ explicit OSaveValueWidgetWrapper(weld::Toggleable* _pSaveValue) : m_pSaveValue(_pSaveValue)
{ OSL_ENSURE(m_pSaveValue,"Illegal argument!"); }
virtual void SaveValue() override { m_pSaveValue->save_state(); }
@@ -94,7 +98,7 @@ namespace dbaui
css::uno::Reference< css::uno::XComponentContext >
m_xORB;
public:
- OGenericAdministrationPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rId, const SfxItemSet& rAttrSet);
+ OGenericAdministrationPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rId, const SfxItemSet& rAttrSet);
/// set a handler which gets called every time something on the page has been modified
void SetModifiedHandler(const Link<OGenericAdministrationPage const *, void>& _rHandler) { m_aModifiedHandler = _rHandler; }
@@ -203,7 +207,7 @@ namespace dbaui
@param _bChangedSomething
<TRUE/> if something changed otherwise <FALSE/>
*/
- static void fillInt32(SfxItemSet& _rSet,const weld::SpinButton* pEdit,sal_uInt16 _nID, bool& _bChangedSomething);
+ static void fillInt32(SfxItemSet& _rSet,const weld::SpinButton* pEdit,TypedWhichId<SfxInt32Item> _nID, bool& _bChangedSomething);
/** fills the String value into the item set when the value changed.
@param _rSet
@@ -215,8 +219,8 @@ namespace dbaui
@param _bChangedSomething
<TRUE/> if something changed otherwise <FALSE/>
*/
- static void fillString(SfxItemSet& _rSet,const weld::Entry* pEdit,sal_uInt16 _nID, bool& _bChangedSomething);
- static void fillString(SfxItemSet& _rSet,const dbaui::OConnectionURLEdit* pEdit,sal_uInt16 _nID, bool& _bChangedSomething);
+ static void fillString(SfxItemSet& _rSet,const weld::Entry* pEdit, TypedWhichId<SfxStringItem> _nID, bool& _bChangedSomething);
+ static void fillString(SfxItemSet& _rSet,const dbaui::OConnectionURLEdit* pEdit, TypedWhichId<SfxStringItem> _nID, bool& _bChangedSomething);
protected:
/** This link be used for controls where the tabpage does not need to take any special action when the control
@@ -225,7 +229,7 @@ namespace dbaui
DECL_LINK(OnControlModified, weld::Widget*, void);
DECL_LINK(OnControlEntryModifyHdl, weld::Entry&, void);
DECL_LINK(OnControlSpinButtonModifyHdl, weld::SpinButton&, void);
- DECL_LINK(OnControlModifiedButtonClick, weld::ToggleButton&, void);
+ DECL_LINK(OnControlModifiedButtonClick, weld::Toggleable&, void);
DECL_LINK(OnTestConnectionButtonClickHdl, weld::Button&, void);
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/dlg/adodatalinks.cxx b/dbaccess/source/ui/dlg/adodatalinks.cxx
index c8bafabf1088..82af63688cc1 100644
--- a/dbaccess/source/ui/dlg/adodatalinks.cxx
+++ b/dbaccess/source/ui/dlg/adodatalinks.cxx
@@ -26,6 +26,8 @@
#include <comphelper/scopeguard.hxx>
#include <o3tl/char16_t2wchar_t.hxx>
+#include <systools/win32/comtools.hxx>
+#include <systools/win32/oleauto.hxx>
#include <initguid.h>
#include <adoid.h>
@@ -35,161 +37,94 @@
namespace {
-OUString PromptNew(long hWnd)
+OUString PromptNew(sal_IntPtr hWnd)
{
- HRESULT hr;
- IDataSourceLocator* dlPrompt = nullptr;
- ADOConnection* piTmpConnection = nullptr;
- BSTR _result=nullptr;
-
- // Initialize COM
- hr = ::CoInitializeEx( nullptr, COINIT_APARTMENTTHREADED );
- if (FAILED(hr) && hr != RPC_E_CHANGED_MODE)
- std::abort();
- const bool bDoUninit = SUCCEEDED(hr);
- comphelper::ScopeGuard g([bDoUninit] () {
- if (bDoUninit)
- CoUninitialize();
- });
-
- // Instantiate DataLinks object.
- hr = CoCreateInstance(
- CLSID_DataLinks, //clsid -- Data Links UI
- nullptr, //pUnkOuter
- CLSCTX_INPROC_SERVER, //dwClsContext
- IID_IDataSourceLocator, //riid
- reinterpret_cast<void**>(&dlPrompt) //ppvObj
- );
- if( FAILED( hr ) )
+ try
{
- return OUString();
- }
+ // Initialize COM
+ sal::systools::CoInitializeGuard aGuard(COINIT_APARTMENTTHREADED);
- dlPrompt->put_hWnd(hWnd);
- if( FAILED( hr ) )
- {
- dlPrompt->Release( );
- return OUString();
- }
+ // Instantiate DataLinks object.
+ sal::systools::COMReference<IDataSourceLocator> dlPrompt;
+ dlPrompt.CoCreateInstance(CLSID_DataLinks, //clsid -- Data Links UI
+ nullptr, //pUnkOuter
+ CLSCTX_INPROC_SERVER); //dwClsContext
- // Prompt for connection information.
- hr = dlPrompt->PromptNew(reinterpret_cast<IDispatch **>(&piTmpConnection));
+ sal::systools::ThrowIfFailed(dlPrompt->put_hWnd(hWnd), "put_hWnd failed");
- if( FAILED( hr ) || !piTmpConnection )
- {
- dlPrompt->Release( );
- return OUString();
- }
+ // Prompt for connection information.
+ sal::systools::COMReference<IDispatch> piDispatch;
+ sal::systools::ThrowIfFailed(dlPrompt->PromptNew(&piDispatch), "PromptNew failed");
+ sal::systools::COMReference<ADOConnection> piTmpConnection(piDispatch,
+ sal::systools::COM_QUERY_THROW);
+
+ sal::systools::BStr _result;
+ sal::systools::ThrowIfFailed(piTmpConnection->get_ConnectionString(&_result),
+ "get_ConnectionString failed");
- hr = piTmpConnection->get_ConnectionString(&_result);
- if( FAILED( hr ) )
+ return OUString(_result);
+ }
+ catch (const sal::systools::ComError&)
{
- piTmpConnection->Release( );
- dlPrompt->Release( );
return OUString();
}
-
- piTmpConnection->Release( );
- dlPrompt->Release( );
- // Don't we need SysFreeString(_result)?
- return OUString(o3tl::toU(_result));
}
-OUString PromptEdit(long hWnd, OUString const & connstr)
+OUString PromptEdit(sal_IntPtr hWnd, OUString const & connstr)
{
- HRESULT hr;
- IDataSourceLocator* dlPrompt = nullptr;
- ADOConnection* piTmpConnection = nullptr;
- BSTR _result=nullptr;
-
- // Initialize COM
- ::CoInitializeEx( nullptr, COINIT_APARTMENTTHREADED );
-
- hr = CoCreateInstance(CLSID_CADOConnection,
- nullptr,
- CLSCTX_INPROC_SERVER,
- IID_IADOConnection,
- reinterpret_cast<LPVOID *>(&piTmpConnection));
- if( FAILED( hr ) )
- {
- piTmpConnection->Release( );
- return connstr;
- }
-
-
- hr = piTmpConnection->put_ConnectionString(
- const_cast<BSTR>(o3tl::toW(connstr.getStr())));
- if( FAILED( hr ) )
+ try
{
- piTmpConnection->Release( );
- return connstr;
- }
+ // Initialize COM
+ sal::systools::CoInitializeGuard aGuard(COINIT_APARTMENTTHREADED);
- // Instantiate DataLinks object.
- hr = CoCreateInstance(
- CLSID_DataLinks, //clsid -- Data Links UI
- nullptr, //pUnkOuter
- CLSCTX_INPROC_SERVER, //dwClsContext
- IID_IDataSourceLocator, //riid
- reinterpret_cast<void**>(&dlPrompt) //ppvObj
- );
- if( FAILED( hr ) )
- {
- piTmpConnection->Release( );
- dlPrompt->Release( );
- return connstr;
- }
+ sal::systools::COMReference<ADOConnection> piTmpConnection;
+ piTmpConnection.CoCreateInstance(CLSID_CADOConnection, nullptr, CLSCTX_INPROC_SERVER);
- dlPrompt->put_hWnd(hWnd);
- if( FAILED( hr ) )
- {
- piTmpConnection->Release( );
- dlPrompt->Release( );
- return connstr;
- }
+ sal::systools::ThrowIfFailed(
+ piTmpConnection->put_ConnectionString(sal::systools::BStr(connstr)),
+ "put_ConnectionString failed");
- VARIANT_BOOL pbSuccess;
+ // Instantiate DataLinks object.
+ sal::systools::COMReference<IDataSourceLocator> dlPrompt;
+ dlPrompt.CoCreateInstance(CLSID_DataLinks, //clsid -- Data Links UI
+ nullptr, //pUnkOuter
+ CLSCTX_INPROC_SERVER); //dwClsContext
- // Prompt for connection information.
- hr = dlPrompt->PromptEdit(reinterpret_cast<IDispatch **>(&piTmpConnection),&pbSuccess);
- if( SUCCEEDED( hr ) && !pbSuccess ) //if user press cancel then sal_False == pbSuccess
- {
- piTmpConnection->Release( );
- dlPrompt->Release( );
- return connstr;
- }
+ sal::systools::ThrowIfFailed(dlPrompt->put_hWnd(hWnd), "put_hWnd failed");
- if( FAILED( hr ) )
- {
- // Prompt for new connection information.
- piTmpConnection->Release( );
- piTmpConnection = nullptr;
- hr = dlPrompt->PromptNew(reinterpret_cast<IDispatch **>(&piTmpConnection));
- if( FAILED( hr ) || !piTmpConnection )
+ try
{
- dlPrompt->Release( );
- return connstr;
+ // Prompt for connection information.
+ IDispatch* piDispatch = piTmpConnection.get();
+ VARIANT_BOOL pbSuccess;
+ sal::systools::ThrowIfFailed(dlPrompt->PromptEdit(&piDispatch, &pbSuccess),
+ "PromptEdit failed");
+ if (!pbSuccess) //if user press cancel then sal_False == pbSuccess
+ return connstr;
}
- }
+ catch (const sal::systools::ComError&)
+ {
+ // Prompt for new connection information.
+ sal::systools::COMReference<IDispatch> piDispatch;
+ sal::systools::ThrowIfFailed(dlPrompt->PromptNew(&piDispatch), "PromptNew failed");
+ piTmpConnection.set(piDispatch, sal::systools::COM_QUERY_THROW);
+ }
+
+ sal::systools::BStr _result;
+ sal::systools::ThrowIfFailed(piTmpConnection->get_ConnectionString(&_result),
+ "get_ConnectionString failed");
- hr = piTmpConnection->get_ConnectionString(&_result);
- if( FAILED( hr ) )
+ return OUString(_result);
+ }
+ catch (const sal::systools::ComError&)
{
- piTmpConnection->Release( );
- dlPrompt->Release( );
return connstr;
}
-
- piTmpConnection->Release( );
- dlPrompt->Release( );
- CoUninitialize();
- // Don't we need SysFreeString(_result)?
- return OUString(o3tl::toU(_result));
}
}
-OUString getAdoDatalink(long hWnd,OUString const & oldLink)
+OUString getAdoDatalink(sal_IntPtr hWnd,OUString const & oldLink)
{
OUString dataLink;
if (!oldLink.isEmpty())
diff --git a/dbaccess/source/ui/dlg/adodatalinks.hxx b/dbaccess/source/ui/dlg/adodatalinks.hxx
index 3cbbd18c3b6c..6b753f62e442 100644
--- a/dbaccess/source/ui/dlg/adodatalinks.hxx
+++ b/dbaccess/source/ui/dlg/adodatalinks.hxx
@@ -20,6 +20,7 @@
#pragma once
#include <rtl/ustring.hxx>
+#include <sal/types.h>
-OUString getAdoDatalink(long hWnd, OUString const& oldLink);
+OUString getAdoDatalink(sal_IntPtr hWnd, OUString const& oldLink);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/dlg/adtabdlg.cxx b/dbaccess/source/ui/dlg/adtabdlg.cxx
index bab1b0ca78bf..ade72252fda1 100644
--- a/dbaccess/source/ui/dlg/adtabdlg.cxx
+++ b/dbaccess/source/ui/dlg/adtabdlg.cxx
@@ -18,7 +18,7 @@
*/
#include <adtabdlg.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
#include <connectivity/dbtools.hxx>
@@ -188,18 +188,11 @@ void TableListFacade::updateTableObjectList( bool _bAllowViews )
// if no views are allowed remove the views also out the table name filter
if ( !_bAllowViews )
{
- const OUString* pTableBegin = sTables.getConstArray();
- const OUString* pTableEnd = pTableBegin + sTables.getLength();
- std::vector< OUString > aTables(pTableBegin,pTableEnd);
-
- const OUString* pViewBegin = sViews.getConstArray();
- const OUString* pViewEnd = pViewBegin + sViews.getLength();
- ::comphelper::UStringMixEqual aEqualFunctor;
- for(;pViewBegin != pViewEnd;++pViewBegin)
- aTables.erase(std::remove_if(aTables.begin(),aTables.end(),
- [&aEqualFunctor, pViewBegin](const OUString& lhs)
- { return aEqualFunctor(lhs, *pViewBegin); } )
- , aTables.end());
+ std::vector<OUString> aTables(sTables.begin(), sTables.end());
+
+ for (auto& view : sViews)
+ std::erase_if(aTables, [Equal = comphelper::UStringMixEqual(), &view](auto& s)
+ { return Equal(s, view); });
sTables = Sequence< OUString>(aTables.data(), aTables.size());
sViews = Sequence< OUString>();
}
@@ -274,7 +267,7 @@ void QueryListFacade::_elementInserted( const container::ContainerEvent& _rEvent
if ( _rEvent.Accessor >>= sName )
{
OUString aQueryImage(ImageProvider::getDefaultImageResourceID(css::sdb::application::DatabaseObject::QUERY));
- m_rQueryList.append("", sName, aQueryImage);
+ m_rQueryList.append(u""_ustr, sName, aQueryImage);
}
}
@@ -304,7 +297,7 @@ void QueryListFacade::updateTableObjectList( bool /*_bAllowViews*/ )
const Sequence< OUString > aQueryNames = xQueries->getElementNames();
for ( auto const & name : aQueryNames )
- m_rQueryList.append("", name, aQueryImage);
+ m_rQueryList.append(u""_ustr, name, aQueryImage);
}
catch( const Exception& )
{
@@ -331,15 +324,15 @@ bool QueryListFacade::isLeafSelected() const
}
OAddTableDlg::OAddTableDlg(weld::Window* pParent, IAddTableDialogContext& _rContext)
- : GenericDialogController(pParent, "dbaccess/ui/tablesjoindialog.ui", "TablesJoinDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/tablesjoindialog.ui"_ustr, u"TablesJoinDialog"_ustr)
, m_rContext(_rContext)
- , m_xCaseTables(m_xBuilder->weld_radio_button("tables"))
- , m_xCaseQueries(m_xBuilder->weld_radio_button("queries"))
+ , m_xCaseTables(m_xBuilder->weld_radio_button(u"tables"_ustr))
+ , m_xCaseQueries(m_xBuilder->weld_radio_button(u"queries"_ustr))
// false means: do not show any buttons
- , m_xTableList(new OTableTreeListBox(m_xBuilder->weld_tree_view("tablelist"), false))
- , m_xQueryList(m_xBuilder->weld_tree_view("querylist"))
- , m_xAddButton(m_xBuilder->weld_button("add"))
- , m_xCloseButton(m_xBuilder->weld_button("close"))
+ , m_xTableList(new OTableTreeListBox(m_xBuilder->weld_tree_view(u"tablelist"_ustr), false))
+ , m_xQueryList(m_xBuilder->weld_tree_view(u"querylist"_ustr))
+ , m_xAddButton(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xCloseButton(m_xBuilder->weld_button(u"close"_ustr))
{
weld::TreeView& rTableList = m_xTableList->GetWidget();
Size aSize(rTableList.get_approximate_digit_width() * 23,
@@ -347,14 +340,13 @@ OAddTableDlg::OAddTableDlg(weld::Window* pParent, IAddTableDialogContext& _rCont
rTableList.set_size_request(aSize.Width(), aSize.Height());
m_xQueryList->set_size_request(aSize.Width(), aSize.Height());
- m_xCaseTables->connect_clicked( LINK( this, OAddTableDlg, OnTypeSelected ) );
- m_xCaseQueries->connect_clicked( LINK( this, OAddTableDlg, OnTypeSelected ) );
+ m_xCaseTables->connect_toggled(LINK(this, OAddTableDlg, OnTypeSelected));
m_xAddButton->connect_clicked( LINK( this, OAddTableDlg, AddClickHdl ) );
m_xCloseButton->connect_clicked( LINK( this, OAddTableDlg, CloseClickHdl ) );
rTableList.connect_row_activated( LINK( this, OAddTableDlg, TableListDoubleClickHdl ) );
- rTableList.connect_changed( LINK( this, OAddTableDlg, TableListSelectHdl ) );
+ rTableList.connect_selection_changed(LINK(this, OAddTableDlg, TableListSelectHdl));
m_xQueryList->connect_row_activated( LINK( this, OAddTableDlg, TableListDoubleClickHdl ) );
- m_xQueryList->connect_changed( LINK( this, OAddTableDlg, TableListSelectHdl ) );
+ m_xQueryList->connect_selection_changed(LINK(this, OAddTableDlg, TableListSelectHdl));
rTableList.set_selection_mode(SelectionMode::Single);
m_xTableList->SuppressEmptyFolders();
@@ -435,7 +427,7 @@ IMPL_LINK_NOARG( OAddTableDlg, CloseClickHdl, weld::Button&, void )
m_xDialog->response(RET_CLOSE);
}
-IMPL_LINK_NOARG( OAddTableDlg, OnTypeSelected, weld::Button&, void )
+IMPL_LINK_NOARG(OAddTableDlg, OnTypeSelected, weld::Toggleable&, void)
{
if ( m_xCaseTables->get_active() )
impl_switchTo( Tables );
diff --git a/dbaccess/source/ui/dlg/advancedsettings.cxx b/dbaccess/source/ui/dlg/advancedsettings.cxx
index 6ec06a9dbeb7..09d7430fc926 100644
--- a/dbaccess/source/ui/dlg/advancedsettings.cxx
+++ b/dbaccess/source/ui/dlg/advancedsettings.cxx
@@ -46,7 +46,7 @@ namespace dbaui
struct BooleanSettingDesc
{
std::unique_ptr<weld::CheckButton>& xControl; // the dialog's control which displays this setting
- OString sControlId; // the widget name of the control in the .ui
+ OUString sControlId; // the widget name of the control in the .ui
sal_uInt16 nItemId; // the ID of the item (in an SfxItemSet) which corresponds to this setting
bool bInvertedDisplay; // true if and only if the checkbox is checked when the item is sal_False, and vice versa
bool bOptionalBool; // type is OptionalBool
@@ -54,24 +54,24 @@ namespace dbaui
// SpecialSettingsPage
SpecialSettingsPage::SpecialSettingsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs, const DataSourceMetaData& _rDSMeta)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/specialsettingspage.ui", "SpecialSettingsPage", _rCoreAttrs)
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/specialsettingspage.ui"_ustr, u"SpecialSettingsPage"_ustr, _rCoreAttrs)
, m_aBooleanSettings {
- { m_xIsSQL92Check, "usesql92", DSID_SQL92CHECK, false, false },
- { m_xAppendTableAlias, "append", DSID_APPEND_TABLE_ALIAS, false, false },
- { m_xAsBeforeCorrelationName, "useas", DSID_AS_BEFORE_CORRNAME, false, false },
- { m_xEnableOuterJoin, "useoj", DSID_ENABLEOUTERJOIN, false, false },
- { m_xIgnoreDriverPrivileges, "ignoreprivs", DSID_IGNOREDRIVER_PRIV, false, false },
- { m_xParameterSubstitution, "replaceparams", DSID_PARAMETERNAMESUBST, false, false },
- { m_xSuppressVersionColumn, "displayver", DSID_SUPPRESSVERSIONCL, true, false },
- { m_xCatalog, "usecatalogname", DSID_CATALOG, false, false },
- { m_xSchema, "useschemaname", DSID_SCHEMA, false, false },
- { m_xIndexAppendix, "createindex", DSID_INDEXAPPENDIX, false, false },
- { m_xDosLineEnds, "eol", DSID_DOSLINEENDS, false, false },
- { m_xCheckRequiredFields, "inputchecks", DSID_CHECK_REQUIRED_FIELDS, false, false },
- { m_xIgnoreCurrency, "ignorecurrency", DSID_IGNORECURRENCY, false, false },
- { m_xEscapeDateTime, "useodbcliterals", DSID_ESCAPE_DATETIME, false, false },
- { m_xPrimaryKeySupport, "primarykeys", DSID_PRIMARY_KEY_SUPPORT, false, false },
- { m_xRespectDriverResultSetType, "resulttype", DSID_RESPECTRESULTSETTYPE, false, false } }
+ { m_xIsSQL92Check, u"usesql92"_ustr, DSID_SQL92CHECK, false, false },
+ { m_xAppendTableAlias, u"append"_ustr, DSID_APPEND_TABLE_ALIAS, false, false },
+ { m_xAsBeforeCorrelationName, u"useas"_ustr, DSID_AS_BEFORE_CORRNAME, false, false },
+ { m_xEnableOuterJoin, u"useoj"_ustr, DSID_ENABLEOUTERJOIN, false, false },
+ { m_xIgnoreDriverPrivileges, u"ignoreprivs"_ustr, DSID_IGNOREDRIVER_PRIV, false, false },
+ { m_xParameterSubstitution, u"replaceparams"_ustr, DSID_PARAMETERNAMESUBST, false, false },
+ { m_xSuppressVersionColumn, u"displayver"_ustr, DSID_SUPPRESSVERSIONCL, true, false },
+ { m_xCatalog, u"usecatalogname"_ustr, DSID_CATALOG, false, false },
+ { m_xSchema, u"useschemaname"_ustr, DSID_SCHEMA, false, false },
+ { m_xIndexAppendix, u"createindex"_ustr, DSID_INDEXAPPENDIX, false, false },
+ { m_xDosLineEnds, u"eol"_ustr, DSID_DOSLINEENDS, false, false },
+ { m_xCheckRequiredFields, u"inputchecks"_ustr, DSID_CHECK_REQUIRED_FIELDS, false, false },
+ { m_xIgnoreCurrency, u"ignorecurrency"_ustr, DSID_IGNORECURRENCY, false, false },
+ { m_xEscapeDateTime, u"useodbcliterals"_ustr, DSID_ESCAPE_DATETIME, false, false },
+ { m_xPrimaryKeySupport, u"primarykeys"_ustr, DSID_PRIMARY_KEY_SUPPORT, false, false },
+ { m_xRespectDriverResultSetType, u"resulttype"_ustr, DSID_RESPECTRESULTSETTYPE, false, false } }
, m_bHasBooleanComparisonMode( _rDSMeta.getFeatureSet().has( DSID_BOOLEANCOMPARISON ) )
, m_bHasMaxRowScan( _rDSMeta.getFeatureSet().has( DSID_MAX_ROW_SCAN ) )
{
@@ -97,8 +97,8 @@ namespace dbaui
// create the controls for the boolean comparison mode
if ( m_bHasBooleanComparisonMode )
{
- m_xBooleanComparisonModeLabel = m_xBuilder->weld_label("comparisonft");
- m_xBooleanComparisonMode = m_xBuilder->weld_combo_box("comparison");
+ m_xBooleanComparisonModeLabel = m_xBuilder->weld_label(u"comparisonft"_ustr);
+ m_xBooleanComparisonMode = m_xBuilder->weld_combo_box(u"comparison"_ustr);
m_xBooleanComparisonMode->connect_changed(LINK(this, SpecialSettingsPage, BooleanComparisonSelectHdl));
m_xBooleanComparisonModeLabel->show();
m_xBooleanComparisonMode->show();
@@ -106,15 +106,15 @@ namespace dbaui
// create the controls for the max row scan
if ( m_bHasMaxRowScan )
{
- m_xMaxRowScanLabel = m_xBuilder->weld_label("rowsft");
- m_xMaxRowScan = m_xBuilder->weld_spin_button("rows");
+ m_xMaxRowScanLabel = m_xBuilder->weld_label(u"rowsft"_ustr);
+ m_xMaxRowScan = m_xBuilder->weld_spin_button(u"rows"_ustr);
m_xMaxRowScan->connect_value_changed(LINK(this, OGenericAdministrationPage, OnControlSpinButtonModifyHdl));
m_xMaxRowScanLabel->show();
m_xMaxRowScan->show();
}
}
- IMPL_LINK(SpecialSettingsPage, OnTriStateToggleHdl, weld::ToggleButton&, rToggle, void)
+ IMPL_LINK(SpecialSettingsPage, OnTriStateToggleHdl, weld::Toggleable&, rToggle, void)
{
auto eOldState = m_aTriStates[&rToggle];
switch (eOldState)
@@ -133,7 +133,7 @@ namespace dbaui
OnToggleHdl(rToggle);
}
- IMPL_LINK(SpecialSettingsPage, OnToggleHdl, weld::ToggleButton&, rBtn, void)
+ IMPL_LINK(SpecialSettingsPage, OnToggleHdl, weld::Toggleable&, rBtn, void)
{
if (&rBtn == m_xAppendTableAlias.get() && m_xAsBeforeCorrelationName)
{
@@ -170,7 +170,7 @@ namespace dbaui
{
if (booleanSetting.xControl)
{
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(booleanSetting.xControl.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(booleanSetting.xControl.get()));
}
}
@@ -217,7 +217,7 @@ namespace dbaui
else
OSL_FAIL( "SpecialSettingsPage::implInitControls: unknown boolean item type!" );
- if ( !aValue )
+ if ( !aValue.has_value() )
{
booleanSetting.xControl->set_state(TRISTATE_INDET);
}
@@ -284,20 +284,18 @@ namespace dbaui
// GeneratedValuesPage
GeneratedValuesPage::GeneratedValuesPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs)
- : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/generatedvaluespage.ui", "GeneratedValuesPage", _rCoreAttrs)
- , m_xAutoRetrievingEnabled(m_xBuilder->weld_check_button("autoretrieve"))
- , m_xGrid(m_xBuilder->weld_widget("grid"))
- , m_xAutoIncrementLabel(m_xBuilder->weld_label("statementft"))
- , m_xAutoIncrement(m_xBuilder->weld_entry("statement"))
- , m_xAutoRetrievingLabel(m_xBuilder->weld_label("queryft"))
- , m_xAutoRetrieving(m_xBuilder->weld_entry("query"))
+ : OGenericAdministrationPage(pPage, pController, u"dbaccess/ui/generatedvaluespage.ui"_ustr, u"GeneratedValuesPage"_ustr, _rCoreAttrs)
+ , m_xAutoRetrievingEnabled(m_xBuilder->weld_check_button(u"autoretrieve"_ustr))
+ , m_xGrid(m_xBuilder->weld_widget(u"grid"_ustr))
+ , m_xAutoIncrement(m_xBuilder->weld_entry(u"statement"_ustr))
+ , m_xAutoRetrieving(m_xBuilder->weld_entry(u"query"_ustr))
{
m_xAutoRetrievingEnabled->connect_toggled(LINK(this, GeneratedValuesPage, OnAutoToggleHdl));
m_xAutoIncrement->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
m_xAutoRetrieving->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
}
- IMPL_LINK(GeneratedValuesPage, OnAutoToggleHdl, weld::ToggleButton&, rBtn, void)
+ IMPL_LINK(GeneratedValuesPage, OnAutoToggleHdl, weld::Toggleable&, rBtn, void)
{
m_xGrid->set_sensitive(rBtn.get_active());
OnControlModifiedButtonClick(rBtn);
@@ -314,7 +312,7 @@ namespace dbaui
void GeneratedValuesPage::fillControls( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
{
- _rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::ToggleButton>( m_xAutoRetrievingEnabled.get() ) );
+ _rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Toggleable>( m_xAutoRetrievingEnabled.get() ) );
_rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Entry>( m_xAutoIncrement.get() ) );
_rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Entry>( m_xAutoRetrieving.get() ) );
}
@@ -358,7 +356,7 @@ namespace dbaui
// AdvancedSettingsDialog
AdvancedSettingsDialog::AdvancedSettingsDialog(weld::Window* pParent, SfxItemSet* _pItems,
const Reference< XComponentContext >& _rxContext, const Any& _aDataSourceName )
- : SfxTabDialogController(pParent, "dbaccess/ui/advancedsettingsdialog.ui", "AdvancedSettingsDialog", _pItems)
+ : SfxTabDialogController(pParent, u"dbaccess/ui/advancedsettingsdialog.ui"_ustr, u"AdvancedSettingsDialog"_ustr, _pItems)
{
m_pImpl.reset(new ODbDataSourceAdministrationHelper(_rxContext, m_xDialog.get(), pParent, this));
m_pImpl->setDataSourceOrName(_aDataSourceName);
@@ -375,15 +373,15 @@ namespace dbaui
// auto-generated values?
if (rFeatures.supportsGeneratedValues())
- AddTabPage("generated", ODriversSettings::CreateGeneratedValuesPage, nullptr);
+ AddTabPage(u"generated"_ustr, ODriversSettings::CreateGeneratedValuesPage, nullptr);
else
- RemoveTabPage("generated");
+ RemoveTabPage(u"generated"_ustr);
// any "special settings"?
if (rFeatures.supportsAnySpecialSetting())
- AddTabPage("special", ODriversSettings::CreateSpecialSettingsPage, nullptr);
+ AddTabPage(u"special"_ustr, ODriversSettings::CreateSpecialSettingsPage, nullptr);
else
- RemoveTabPage("special");
+ RemoveTabPage(u"special"_ustr);
// remove the reset button - it's meaning is much too ambiguous in this dialog
RemoveResetButton();
@@ -412,7 +410,7 @@ namespace dbaui
return nRet;
}
- void AdvancedSettingsDialog::PageCreated(const OString& rId, SfxTabPage& _rPage)
+ void AdvancedSettingsDialog::PageCreated(const OUString& rId, SfxTabPage& _rPage)
{
// register ourself as modified listener
static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory( getORB() );
diff --git a/dbaccess/source/ui/dlg/advancedsettings.hxx b/dbaccess/source/ui/dlg/advancedsettings.hxx
index 181ccbb84faf..9eaca4a41b48 100644
--- a/dbaccess/source/ui/dlg/advancedsettings.hxx
+++ b/dbaccess/source/ui/dlg/advancedsettings.hxx
@@ -54,7 +54,7 @@ namespace dbaui
std::unique_ptr<weld::Label> m_xMaxRowScanLabel;
std::unique_ptr<weld::SpinButton> m_xMaxRowScan;
- std::map<weld::ToggleButton*, TriState> m_aTriStates;
+ std::map<weld::Toggleable*, TriState> m_aTriStates;
std::vector< BooleanSettingDesc > m_aBooleanSettings;
@@ -62,8 +62,8 @@ namespace dbaui
bool m_bHasMaxRowScan;
public:
- DECL_LINK(OnToggleHdl, weld::ToggleButton&, void);
- DECL_LINK(OnTriStateToggleHdl, weld::ToggleButton&, void);
+ DECL_LINK(OnToggleHdl, weld::Toggleable&, void);
+ DECL_LINK(OnTriStateToggleHdl, weld::Toggleable&, void);
virtual bool FillItemSet ( SfxItemSet* _rCoreAttrs ) override;
@@ -88,9 +88,7 @@ namespace dbaui
{
std::unique_ptr<weld::CheckButton> m_xAutoRetrievingEnabled;
std::unique_ptr<weld::Widget> m_xGrid;
- std::unique_ptr<weld::Label> m_xAutoIncrementLabel;
std::unique_ptr<weld::Entry> m_xAutoIncrement;
- std::unique_ptr<weld::Label> m_xAutoRetrievingLabel;
std::unique_ptr<weld::Entry> m_xAutoRetrieving;
public:
@@ -100,7 +98,7 @@ namespace dbaui
virtual ~GeneratedValuesPage() override;
private:
- DECL_LINK(OnAutoToggleHdl, weld::ToggleButton&, void);
+ DECL_LINK(OnAutoToggleHdl, weld::Toggleable&, void);
// subclasses must override this, but it isn't pure virtual
virtual void implInitControls(const SfxItemSet& _rSet, bool _bSaveValue) override;
diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx b/dbaccess/source/ui/dlg/dbadmin.cxx
index e37541bfd271..27b226256736 100644
--- a/dbaccess/source/ui/dlg/dbadmin.cxx
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@ -38,17 +38,14 @@ namespace dbaui
{
using namespace com::sun::star::uno;
using namespace com::sun::star::sdbc;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::util;
using namespace com::sun::star::beans;
-using namespace com::sun::star::container;
// ODbAdminDialog
ODbAdminDialog::ODbAdminDialog(weld::Window* pParent,
SfxItemSet const * _pItems,
const Reference< XComponentContext >& _rxContext)
- : SfxTabDialogController(pParent, "dbaccess/ui/admindialog.ui", "AdminDialog", _pItems)
- , m_sMainPageID("advanced")
+ : SfxTabDialogController(pParent, u"dbaccess/ui/admindialog.ui"_ustr, u"AdminDialog"_ustr, _pItems)
+ , m_sMainPageID(u"advanced"_ustr)
{
m_pImpl.reset(new ODbDataSourceAdministrationHelper(_rxContext, m_xDialog.get(), pParent, this));
@@ -71,7 +68,7 @@ short ODbAdminDialog::Ok()
// TODO : AR_ERROR is not handled correctly, we always close the dialog here
}
-void ODbAdminDialog::PageCreated(const OString& rId, SfxTabPage& _rPage)
+void ODbAdminDialog::PageCreated(const OUString& rId, SfxTabPage& _rPage)
{
// register ourself as modified listener
static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory( getORB() );
@@ -80,7 +77,7 @@ void ODbAdminDialog::PageCreated(const OString& rId, SfxTabPage& _rPage)
SfxTabDialogController::PageCreated(rId, _rPage);
}
-void ODbAdminDialog::addDetailPage(const OString& rPageId, const char* pTextId, CreateTabPage pCreateFunc)
+void ODbAdminDialog::addDetailPage(const OUString& rPageId, TranslateId pTextId, CreateTabPage pCreateFunc)
{
AddTabPage(rPageId, DBA_RES(pTextId), pCreateFunc);
}
@@ -91,43 +88,44 @@ void ODbAdminDialog::impl_selectDataSource(const css::uno::Any& _aDataSourceName
Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource();
impl_resetPages( xDatasource );
- const DbuTypeCollectionItem& rCollectionItem = dynamic_cast<const DbuTypeCollectionItem&>(*getOutputSet()->GetItem(DSID_TYPECOLLECTION));
- ::dbaccess::ODsnTypeCollection* pCollection = rCollectionItem.getCollection();
+ const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>(getOutputSet()->GetItem(DSID_TYPECOLLECTION));
+ assert(pCollectionItem && "must exist");
+ ::dbaccess::ODsnTypeCollection* pCollection = pCollectionItem->getCollection();
::dbaccess::DATASOURCE_TYPE eType = pCollection->determineType(getDatasourceType(*getOutputSet()));
// and insert the new ones
switch ( eType )
{
case ::dbaccess::DST_DBASE:
- addDetailPage("dbase", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateDbase);
+ addDetailPage(u"dbase"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateDbase);
break;
case ::dbaccess::DST_ADO:
- addDetailPage("ado", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateAdo);
+ addDetailPage(u"ado"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateAdo);
break;
case ::dbaccess::DST_FLAT:
- addDetailPage("text", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateText);
+ addDetailPage(u"text"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateText);
break;
case ::dbaccess::DST_ODBC:
- addDetailPage("odbc", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateODBC);
+ addDetailPage(u"odbc"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateODBC);
break;
case ::dbaccess::DST_MYSQL_ODBC:
- addDetailPage("mysqlodbc", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLODBC);
+ addDetailPage(u"mysqlodbc"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLODBC);
break;
case ::dbaccess::DST_MYSQL_JDBC:
- addDetailPage("mysqljdbc", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLJDBC);
+ addDetailPage(u"mysqljdbc"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateMySQLJDBC);
break;
case ::dbaccess::DST_ORACLE_JDBC:
- addDetailPage("oraclejdbc", STR_PAGETITLE_ADVANCED, ODriversSettings::CreateOracleJDBC);
+ addDetailPage(u"oraclejdbc"_ustr, STR_PAGETITLE_ADVANCED, ODriversSettings::CreateOracleJDBC);
break;
case ::dbaccess::DST_LDAP:
- addDetailPage("ldap",STR_PAGETITLE_ADVANCED,ODriversSettings::CreateLDAP);
+ addDetailPage(u"ldap"_ustr,STR_PAGETITLE_ADVANCED,ODriversSettings::CreateLDAP);
break;
case ::dbaccess::DST_USERDEFINE1: /// first user defined driver
case ::dbaccess::DST_USERDEFINE2:
@@ -141,7 +139,7 @@ void ODbAdminDialog::impl_selectDataSource(const css::uno::Any& _aDataSourceName
case ::dbaccess::DST_USERDEFINE10:
{
OUString aTitle(DBA_RES(STR_PAGETITLE_ADVANCED));
- AddTabPage("user" + OString::number(eType - dbaccess::DST_USERDEFINE1 + 1), aTitle, ODriversSettings::CreateUser);
+ AddTabPage("user" + OUString::number(eType - dbaccess::DST_USERDEFINE1 + 1), aTitle, ODriversSettings::CreateUser);
}
break;
default:
@@ -177,13 +175,14 @@ void ODbAdminDialog::impl_resetPages(const Reference< XPropertySet >& _rxDatasou
// special case: MySQL Native does not have the generic "advanced" page
- const DbuTypeCollectionItem& rCollectionItem = dynamic_cast<const DbuTypeCollectionItem&>(*getOutputSet()->GetItem(DSID_TYPECOLLECTION));
- ::dbaccess::ODsnTypeCollection* pCollection = rCollectionItem.getCollection();
+ const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>(getOutputSet()->GetItem(DSID_TYPECOLLECTION));
+ assert(pCollectionItem && "must exist");
+ ::dbaccess::ODsnTypeCollection* pCollection = pCollectionItem->getCollection();
if ( pCollection->determineType(getDatasourceType( *m_xExampleSet )) == ::dbaccess::DST_MYSQL_NATIVE )
{
- OString sMySqlNative("mysqlnative");
+ OUString sMySqlNative(u"mysqlnative"_ustr);
AddTabPage(sMySqlNative, DBA_RES(STR_PAGETITLE_CONNECTION), ODriversSettings::CreateMySQLNATIVE);
- RemoveTabPage("advanced");
+ RemoveTabPage(u"advanced"_ustr);
m_sMainPageID = sMySqlNative;
}
@@ -262,169 +261,135 @@ void ODbAdminDialog::clearPassword()
m_pImpl->clearPassword();
}
-void ODbAdminDialog::createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, SfxItemPool*& _rpPool, std::vector<SfxPoolItem*>*& _rpDefaults, ::dbaccess::ODsnTypeCollection* _pTypeCollection)
+static ItemInfoPackage& getItemInfoPackageAdminDlg()
{
- // just to be sure...
- _rpSet = nullptr;
- _rpPool = nullptr;
- _rpDefaults = nullptr;
-
- const OUString sFilterAll( "%" );
- // create and initialize the defaults
- _rpDefaults = new std::vector<SfxPoolItem*>(DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1);
- SfxPoolItem** pCounter = _rpDefaults->data(); // want to modify this without affecting the out param _rppDefaults
- *pCounter++ = new SfxStringItem(DSID_NAME, OUString());
- *pCounter++ = new SfxStringItem(DSID_ORIGINALNAME, OUString());
- *pCounter++ = new SfxStringItem(DSID_CONNECTURL, OUString());
- *pCounter++ = new OStringListItem(DSID_TABLEFILTER, Sequence< OUString >(&sFilterAll, 1));
- *pCounter++ = new DbuTypeCollectionItem(DSID_TYPECOLLECTION, _pTypeCollection);
- *pCounter++ = new SfxBoolItem(DSID_INVALID_SELECTION, false);
- *pCounter++ = new SfxBoolItem(DSID_READONLY, false);
- *pCounter++ = new SfxStringItem(DSID_USER, OUString());
- *pCounter++ = new SfxStringItem(DSID_PASSWORD, OUString());
- *pCounter++ = new SfxStringItem(DSID_ADDITIONALOPTIONS, OUString());
- *pCounter++ = new SfxStringItem(DSID_CHARSET, OUString());
- *pCounter++ = new SfxBoolItem(DSID_PASSWORDREQUIRED, false);
- *pCounter++ = new SfxBoolItem(DSID_SHOWDELETEDROWS, false);
- *pCounter++ = new SfxBoolItem(DSID_ALLOWLONGTABLENAMES, false);
- *pCounter++ = new SfxStringItem(DSID_JDBCDRIVERCLASS, OUString());
- *pCounter++ = new SfxStringItem(DSID_FIELDDELIMITER, OUString(','));
- *pCounter++ = new SfxStringItem(DSID_TEXTDELIMITER, OUString('"'));
- *pCounter++ = new SfxStringItem(DSID_DECIMALDELIMITER, OUString('.'));
- *pCounter++ = new SfxStringItem(DSID_THOUSANDSDELIMITER, OUString());
- *pCounter++ = new SfxStringItem(DSID_TEXTFILEEXTENSION, "txt");
- *pCounter++ = new SfxBoolItem(DSID_TEXTFILEHEADER, true);
- *pCounter++ = new SfxBoolItem(DSID_PARAMETERNAMESUBST, false);
- *pCounter++ = new SfxInt32Item(DSID_CONN_PORTNUMBER, 8100);
- *pCounter++ = new SfxBoolItem(DSID_SUPPRESSVERSIONCL, false);
- *pCounter++ = new SfxBoolItem(DSID_CONN_SHUTSERVICE, false);
- *pCounter++ = new SfxInt32Item(DSID_CONN_DATAINC, 20);
- *pCounter++ = new SfxInt32Item(DSID_CONN_CACHESIZE, 20);
- *pCounter++ = new SfxStringItem(DSID_CONN_CTRLUSER, OUString());
- *pCounter++ = new SfxStringItem(DSID_CONN_CTRLPWD, OUString());
- *pCounter++ = new SfxBoolItem(DSID_USECATALOG, false);
- *pCounter++ = new SfxStringItem(DSID_CONN_HOSTNAME, OUString());
- *pCounter++ = new SfxStringItem(DSID_CONN_LDAP_BASEDN, OUString());
- *pCounter++ = new SfxInt32Item(DSID_CONN_LDAP_PORTNUMBER, 389);
- *pCounter++ = new SfxInt32Item(DSID_CONN_LDAP_ROWCOUNT, 100);
- *pCounter++ = new SfxBoolItem(DSID_SQL92CHECK, false);
- *pCounter++ = new SfxStringItem(DSID_AUTOINCREMENTVALUE, OUString());
- *pCounter++ = new SfxStringItem(DSID_AUTORETRIEVEVALUE, OUString());
- *pCounter++ = new SfxBoolItem(DSID_AUTORETRIEVEENABLED, false);
- *pCounter++ = new SfxBoolItem(DSID_APPEND_TABLE_ALIAS, false);
- *pCounter++ = new SfxInt32Item(DSID_MYSQL_PORTNUMBER, 3306);
- *pCounter++ = new SfxBoolItem(DSID_IGNOREDRIVER_PRIV, true);
- *pCounter++ = new SfxInt32Item(DSID_BOOLEANCOMPARISON, 0);
- *pCounter++ = new SfxInt32Item(DSID_ORACLE_PORTNUMBER, 1521);
- *pCounter++ = new SfxBoolItem(DSID_ENABLEOUTERJOIN, true);
- *pCounter++ = new SfxBoolItem(DSID_CATALOG, true);
- *pCounter++ = new SfxBoolItem(DSID_SCHEMA, true);
- *pCounter++ = new SfxBoolItem(DSID_INDEXAPPENDIX, true);
- *pCounter++ = new SfxBoolItem(DSID_CONN_LDAP_USESSL, false);
- *pCounter++ = new SfxStringItem(DSID_DOCUMENT_URL, OUString());
- *pCounter++ = new SfxBoolItem(DSID_DOSLINEENDS, false);
- *pCounter++ = new SfxStringItem(DSID_DATABASENAME, OUString());
- *pCounter++ = new SfxBoolItem(DSID_AS_BEFORE_CORRNAME, false);
- *pCounter++ = new SfxBoolItem(DSID_CHECK_REQUIRED_FIELDS, true);
- *pCounter++ = new SfxBoolItem(DSID_IGNORECURRENCY, false);
- *pCounter++ = new SfxStringItem(DSID_CONN_SOCKET, OUString());
- *pCounter++ = new SfxBoolItem(DSID_ESCAPE_DATETIME, true);
- *pCounter++ = new SfxStringItem(DSID_NAMED_PIPE, OUString());
- *pCounter++ = new OptionalBoolItem( DSID_PRIMARY_KEY_SUPPORT );
- *pCounter++ = new SfxInt32Item(DSID_MAX_ROW_SCAN, 100);
- *pCounter++ = new SfxBoolItem( DSID_RESPECTRESULTSETTYPE,false );
-
- // create the pool
- static SfxItemInfo const aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1] =
+ class ItemInfoPackageAdminDlg : public ItemInfoPackage
{
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
- {0,false},
+ typedef std::array<ItemInfoStatic, DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1> ItemInfoArrayAdminDlg;
+ ItemInfoArrayAdminDlg maItemInfos {{
+ // m_nWhich, m_pItem, m_nSlotID, m_nItemInfoFlags
+ { DSID_NAME, new SfxStringItem(DSID_NAME, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ORIGINALNAME, new SfxStringItem(DSID_ORIGINALNAME, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONNECTURL, new SfxStringItem(DSID_CONNECTURL, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+
+ // gets added in constructor below once for LO runtime as static default
+ { DSID_TABLEFILTER, nullptr, 0, SFX_ITEMINFOFLAG_NONE },
+
+ // gets added by callback for each new Pool as dynamic default
+ { DSID_TYPECOLLECTION, nullptr, 0, SFX_ITEMINFOFLAG_NONE },
+
+ { DSID_INVALID_SELECTION, new SfxBoolItem(DSID_INVALID_SELECTION, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_READONLY, new SfxBoolItem(DSID_READONLY, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_USER, new SfxStringItem(DSID_USER, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_PASSWORD, new SfxStringItem(DSID_PASSWORD, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ADDITIONALOPTIONS, new SfxStringItem(DSID_ADDITIONALOPTIONS, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CHARSET, new SfxStringItem(DSID_CHARSET, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_PASSWORDREQUIRED, new SfxBoolItem(DSID_PASSWORDREQUIRED, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_SHOWDELETEDROWS, new SfxBoolItem(DSID_SHOWDELETEDROWS, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ALLOWLONGTABLENAMES, new SfxBoolItem(DSID_ALLOWLONGTABLENAMES, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_JDBCDRIVERCLASS, new SfxStringItem(DSID_JDBCDRIVERCLASS, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_FIELDDELIMITER, new SfxStringItem(DSID_FIELDDELIMITER, OUString(',')), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_TEXTDELIMITER, new SfxStringItem(DSID_TEXTDELIMITER, OUString('"')), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_DECIMALDELIMITER, new SfxStringItem(DSID_DECIMALDELIMITER, OUString('.')), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_THOUSANDSDELIMITER, new SfxStringItem(DSID_THOUSANDSDELIMITER, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_TEXTFILEEXTENSION, new SfxStringItem(DSID_TEXTFILEEXTENSION, u"txt"_ustr), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_TEXTFILEHEADER, new SfxBoolItem(DSID_TEXTFILEHEADER, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_PARAMETERNAMESUBST, new SfxBoolItem(DSID_PARAMETERNAMESUBST, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_PORTNUMBER, new SfxInt32Item(DSID_CONN_PORTNUMBER, 8100), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_SUPPRESSVERSIONCL, new SfxBoolItem(DSID_SUPPRESSVERSIONCL, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_SHUTSERVICE, new SfxBoolItem(DSID_CONN_SHUTSERVICE, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_DATAINC, new SfxInt32Item(DSID_CONN_DATAINC, 20), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_CACHESIZE, new SfxInt32Item(DSID_CONN_CACHESIZE, 20), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_CTRLUSER, new SfxStringItem(DSID_CONN_CTRLUSER, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_CTRLPWD, new SfxStringItem(DSID_CONN_CTRLPWD, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_USECATALOG, new SfxBoolItem(DSID_USECATALOG, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_HOSTNAME, new SfxStringItem(DSID_CONN_HOSTNAME, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_LDAP_BASEDN, new SfxStringItem(DSID_CONN_LDAP_BASEDN, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_LDAP_PORTNUMBER, new SfxInt32Item(DSID_CONN_LDAP_PORTNUMBER, 389), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_LDAP_ROWCOUNT, new SfxInt32Item(DSID_CONN_LDAP_ROWCOUNT, 100), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_SQL92CHECK, new SfxBoolItem(DSID_SQL92CHECK, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_AUTOINCREMENTVALUE, new SfxStringItem(DSID_AUTOINCREMENTVALUE, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_AUTORETRIEVEVALUE, new SfxStringItem(DSID_AUTORETRIEVEVALUE, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_AUTORETRIEVEENABLED, new SfxBoolItem(DSID_AUTORETRIEVEENABLED, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_APPEND_TABLE_ALIAS, new SfxBoolItem(DSID_APPEND_TABLE_ALIAS, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_MYSQL_PORTNUMBER, new SfxInt32Item(DSID_MYSQL_PORTNUMBER, 3306), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_IGNOREDRIVER_PRIV, new SfxBoolItem(DSID_IGNOREDRIVER_PRIV, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_BOOLEANCOMPARISON, new SfxInt32Item(DSID_BOOLEANCOMPARISON, 0), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ORACLE_PORTNUMBER, new SfxInt32Item(DSID_ORACLE_PORTNUMBER, 1521), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ENABLEOUTERJOIN, new SfxBoolItem(DSID_ENABLEOUTERJOIN, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CATALOG, new SfxBoolItem(DSID_CATALOG, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_SCHEMA, new SfxBoolItem(DSID_SCHEMA, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_INDEXAPPENDIX, new SfxBoolItem(DSID_INDEXAPPENDIX, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_LDAP_USESSL, new SfxBoolItem(DSID_CONN_LDAP_USESSL, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_DOCUMENT_URL, new SfxStringItem(DSID_DOCUMENT_URL, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_DOSLINEENDS, new SfxBoolItem(DSID_DOSLINEENDS, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_DATABASENAME, new SfxStringItem(DSID_DATABASENAME, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_AS_BEFORE_CORRNAME, new SfxBoolItem(DSID_AS_BEFORE_CORRNAME, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CHECK_REQUIRED_FIELDS, new SfxBoolItem(DSID_CHECK_REQUIRED_FIELDS, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_IGNORECURRENCY, new SfxBoolItem(DSID_IGNORECURRENCY, false), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_CONN_SOCKET, new SfxStringItem(DSID_CONN_SOCKET, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_ESCAPE_DATETIME, new SfxBoolItem(DSID_ESCAPE_DATETIME, true), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_NAMED_PIPE, new SfxStringItem(DSID_NAMED_PIPE, OUString()), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_PRIMARY_KEY_SUPPORT, new OptionalBoolItem( DSID_PRIMARY_KEY_SUPPORT ), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_MAX_ROW_SCAN, new SfxInt32Item(DSID_MAX_ROW_SCAN, 100), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_RESPECTRESULTSETTYPE, new SfxBoolItem( DSID_RESPECTRESULTSETTYPE,false ), 0, SFX_ITEMINFOFLAG_NONE },
+ { DSID_POSTGRES_PORTNUMBER, new SfxInt32Item(DSID_POSTGRES_PORTNUMBER, 5432), 0, SFX_ITEMINFOFLAG_NONE }
+ }};
+
+ virtual const ItemInfoStatic& getItemInfoStatic(size_t nIndex) const override { return maItemInfos[nIndex]; }
+
+ public:
+ ItemInfoPackageAdminDlg()
+ {
+ static constexpr OUString sFilterAll( u"%"_ustr );
+ setItemAtItemInfoStatic(
+ new OStringListItem(DSID_TABLEFILTER, Sequence< OUString >{sFilterAll}),
+ maItemInfos[DSID_TABLEFILTER - DSID_FIRST_ITEM_ID]);
+ }
+
+ virtual size_t size() const override { return maItemInfos.size(); }
+ virtual const ItemInfo& getItemInfo(size_t nIndex, SfxItemPool& /*rPool*/) override { return maItemInfos[nIndex]; }
};
- OSL_ENSURE(SAL_N_ELEMENTS(aItemInfos) == DSID_LAST_ITEM_ID,"Invalid Ids!");
- _rpPool = new SfxItemPool("DSAItemPool", DSID_FIRST_ITEM_ID, DSID_LAST_ITEM_ID,
- aItemInfos, _rpDefaults);
- _rpPool->FreezeIdRanges();
+ static std::unique_ptr<ItemInfoPackageAdminDlg> g_aItemInfoPackageAdminDlg;
+ if (!g_aItemInfoPackageAdminDlg)
+ g_aItemInfoPackageAdminDlg.reset(new ItemInfoPackageAdminDlg);
+ return *g_aItemInfoPackageAdminDlg;
+}
+
+void ODbAdminDialog::createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Reference<SfxItemPool>& _rpPool, ::dbaccess::ODsnTypeCollection* _pTypeCollection)
+{
+ // just to be sure...
+ _rpSet = nullptr;
+ _rpPool = nullptr;
+ _rpPool = new SfxItemPool(u"DSAItemPool"_ustr);
+
+ // here we have to use the callback to create all needed default entries since
+ // the DSID_TYPECOLLECTION needs the local given _pTypeCollection. Thus this will
+ // be a ItemInfoDynamic created by SfxItemPool::registerItemInfoPackage. That
+ // (and the contained Item) will be owned by the Pool and cleaned up when it goes
+ // down (see SfxItemPool::cleanupItemInfos())
+ _rpPool->registerItemInfoPackage(
+ getItemInfoPackageAdminDlg(),
+ [&_pTypeCollection](sal_uInt16 nWhich)
+ {
+ SfxPoolItem* pRetval(nullptr);
+ if (DSID_TYPECOLLECTION == nWhich)
+ pRetval = new DbuTypeCollectionItem(DSID_TYPECOLLECTION, _pTypeCollection);
+ return pRetval;
+ });
// and, finally, the set
_rpSet.reset(new SfxItemSet(*_rpPool));
}
-void ODbAdminDialog::destroyItemSet(std::unique_ptr<SfxItemSet>& _rpSet, SfxItemPool*& _rpPool, std::vector<SfxPoolItem*>*& _rpDefaults)
+void ODbAdminDialog::destroyItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Reference<SfxItemPool>& _rpPool)
{
// _first_ delete the set (referring the pool)
_rpSet.reset();
// delete the pool
- if (_rpPool)
- {
- _rpPool->ReleaseDefaults(true);
- // the "true" means delete the items, too
- SfxItemPool::Free(_rpPool);
- _rpPool = nullptr;
- }
-
- // reset the defaults ptr
- _rpDefaults = nullptr;
- // no need to explicitly delete the defaults, this has been done by the ReleaseDefaults
+ _rpPool = nullptr;
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/dlg/dbfindex.cxx b/dbaccess/source/ui/dlg/dbfindex.cxx
index 011050e8f8cf..77f974648369 100644
--- a/dbaccess/source/ui/dlg/dbfindex.cxx
+++ b/dbaccess/source/ui/dlg/dbfindex.cxx
@@ -29,6 +29,7 @@
#include <ucbhelper/content.hxx>
#include <svl/filenotation.hxx>
#include <rtl/strbuf.hxx>
+#include <utility>
namespace dbaui
{
@@ -36,21 +37,21 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
using namespace ::svt;
-constexpr OStringLiteral aGroupIdent("dBase III");
-
-
-ODbaseIndexDialog::ODbaseIndexDialog(weld::Window * pParent, const OUString& aDataSrcName)
- : GenericDialogController(pParent, "dbaccess/ui/dbaseindexdialog.ui", "DBaseIndexDialog")
- , m_aDSN(aDataSrcName)
- , m_xPB_OK(m_xBuilder->weld_button("ok"))
- , m_xCB_Tables(m_xBuilder->weld_combo_box("table"))
- , m_xIndexes(m_xBuilder->weld_widget("frame"))
- , m_xLB_TableIndexes(m_xBuilder->weld_tree_view("tableindex"))
- , m_xLB_FreeIndexes(m_xBuilder->weld_tree_view("freeindex"))
- , m_xAdd(m_xBuilder->weld_button("add"))
- , m_xRemove(m_xBuilder->weld_button("remove"))
- , m_xAddAll(m_xBuilder->weld_button("addall"))
- , m_xRemoveAll(m_xBuilder->weld_button("removeall"))
+constexpr OString aGroupIdent("dBase III"_ostr);
+
+
+ODbaseIndexDialog::ODbaseIndexDialog(weld::Window * pParent, OUString aDataSrcName)
+ : GenericDialogController(pParent, u"dbaccess/ui/dbaseindexdialog.ui"_ustr, u"DBaseIndexDialog"_ustr)
+ , m_aDSN(std::move(aDataSrcName))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xCB_Tables(m_xBuilder->weld_combo_box(u"table"_ustr))
+ , m_xIndexes(m_xBuilder->weld_widget(u"frame"_ustr))
+ , m_xLB_TableIndexes(m_xBuilder->weld_tree_view(u"tableindex"_ustr))
+ , m_xLB_FreeIndexes(m_xBuilder->weld_tree_view(u"freeindex"_ustr))
+ , m_xAdd(m_xBuilder->weld_button(u"add"_ustr))
+ , m_xRemove(m_xBuilder->weld_button(u"remove"_ustr))
+ , m_xAddAll(m_xBuilder->weld_button(u"addall"_ustr))
+ , m_xRemoveAll(m_xBuilder->weld_button(u"removeall"_ustr))
{
int nWidth = m_xLB_TableIndexes->get_approximate_digit_width() * 18;
int nHeight = m_xLB_TableIndexes->get_height_rows(10);
@@ -64,8 +65,10 @@ ODbaseIndexDialog::ODbaseIndexDialog(weld::Window * pParent, const OUString& aDa
m_xRemoveAll->connect_clicked( LINK(this, ODbaseIndexDialog, RemoveAllClickHdl) );
m_xPB_OK->connect_clicked( LINK(this, ODbaseIndexDialog, OKClickHdl) );
- m_xLB_FreeIndexes->connect_changed( LINK(this, ODbaseIndexDialog, OnListEntrySelected) );
- m_xLB_TableIndexes->connect_changed( LINK(this, ODbaseIndexDialog, OnListEntrySelected) );
+ m_xLB_FreeIndexes->connect_selection_changed(
+ LINK(this, ODbaseIndexDialog, OnListEntrySelected));
+ m_xLB_TableIndexes->connect_selection_changed(
+ LINK(this, ODbaseIndexDialog, OnListEntrySelected));
Init();
SetCtrls();
@@ -116,7 +119,7 @@ void ODbaseIndexDialog::implInsertIndex(const OTableIndex& _rIndex, TableIndexLi
_rDisplay.select(0);
}
-OTableIndex ODbaseIndexDialog::RemoveTableIndex( const OUString& _rTableName, const OUString& _rIndexName )
+OTableIndex ODbaseIndexDialog::RemoveTableIndex( std::u16string_view _rTableName, const OUString& _rIndexName )
{
OTableIndex aReturn;
@@ -130,7 +133,7 @@ OTableIndex ODbaseIndexDialog::RemoveTableIndex( const OUString& _rTableName, co
return implRemoveIndex(_rIndexName, aTablePos->aIndexList, *m_xLB_TableIndexes, true/*_bMustExist*/);
}
-void ODbaseIndexDialog::InsertTableIndex( const OUString& _rTableName, const OTableIndex& _rIndex)
+void ODbaseIndexDialog::InsertTableIndex( std::u16string_view _rTableName, const OTableIndex& _rIndex)
{
TableInfoList::iterator aTablePos = std::find_if(m_aTableInfoList.begin(), m_aTableInfoList.end(),
[&] (const OTableInfo& arg) { return arg.aTableName == _rTableName; });
@@ -253,9 +256,6 @@ void ODbaseIndexDialog::Init()
// first assume for all indexes they're free
- OUString const aIndexExt("ndx");
- OUString const aTableExt("dbf");
-
std::vector< OUString > aUsedIndexes;
aURL.SetSmartProtocol(INetProtocol::File);
@@ -266,17 +266,17 @@ void ODbaseIndexDialog::Init()
osl::FileBase::getSystemPathFromFileURL(rURL,aName);
aURL.SetSmartURL(aName);
OUString aExt = aURL.getExtension();
- if (aExt == aIndexExt)
+ if (aExt == "ndx")
{
m_aFreeIndexList.emplace_back(aURL.getName() );
}
- else if (aExt == aTableExt)
+ else if (aExt == "dbf")
{
m_aTableInfoList.emplace_back(aURL.getName() );
OTableInfo& rTabInfo = m_aTableInfoList.back();
// open the INF file
- aURL.setExtension("inf");
+ aURL.setExtension(u"inf");
OFileNotation aTransformer(aURL.GetURLNoPass(), OFileNotation::N_URL);
Config aInfFile( aTransformer.get(OFileNotation::N_SYSTEM) );
aInfFile.SetGroup( aGroupIdent );
@@ -363,14 +363,13 @@ void OTableInfo::WriteInfFile( const OUString& rDSN ) const
}
aURL.SetSmartURL(aDsn);
aURL.Append(aTableName);
- aURL.setExtension("inf");
+ aURL.setExtension(u"inf");
OFileNotation aTransformer(aURL.GetURLNoPass(), OFileNotation::N_URL);
Config aInfFile( aTransformer.get(OFileNotation::N_SYSTEM) );
aInfFile.SetGroup( aGroupIdent );
// first, delete all table indices
- OString aNDX;
sal_uInt16 nKeyCnt = aInfFile.GetKeyCount();
sal_uInt16 nKey = 0;
@@ -378,7 +377,7 @@ void OTableInfo::WriteInfFile( const OUString& rDSN ) const
{
// Does the key point to an index file?...
OString aKeyName = aInfFile.GetKeyName( nKey );
- aNDX = aKeyName.copy(0,3);
+ OString aNDX = aKeyName.copy(0,3);
//...if yes, delete index file, nKey is at subsequent key
if (aNDX == "NDX")
@@ -414,7 +413,7 @@ void OTableInfo::WriteInfFile( const OUString& rDSN ) const
try
{
::ucbhelper::Content aContent(aURL.GetURLNoPass(),Reference<XCommandEnvironment>(), comphelper::getProcessComponentContext());
- aContent.executeCommand( "delete", makeAny( true ) );
+ aContent.executeCommand( u"delete"_ustr, Any( true ) );
}
catch (const Exception& )
{
diff --git a/dbaccess/source/ui/dlg/dbfindex.hxx b/dbaccess/source/ui/dlg/dbfindex.hxx
index 0349b6c58b75..7b86a450f53d 100644
--- a/dbaccess/source/ui/dlg/dbfindex.hxx
+++ b/dbaccess/source/ui/dlg/dbfindex.hxx
@@ -19,6 +19,7 @@
#pragma once
+#include <utility>
#include <vcl/weld.hxx>
#include <deque>
@@ -34,7 +35,7 @@ private:
public:
OTableIndex() { }
- explicit OTableIndex( const OUString& rFileName ) : aIndexFileName( rFileName ) { }
+ explicit OTableIndex( OUString aFileName ) : aIndexFileName(std::move( aFileName )) { }
const OUString& GetIndexFileName() const { return aIndexFileName; }
};
@@ -42,7 +43,6 @@ public:
typedef std::deque< OTableIndex > TableIndexList;
// OTableInfo
-class ODbaseIndexDialog;
/** holds the INF file of a table
*/
class OTableInfo
@@ -53,7 +53,7 @@ private:
TableIndexList aIndexList;
public:
- explicit OTableInfo( const OUString& rName ) : aTableName(rName) { }
+ explicit OTableInfo( OUString aName ) : aTableName(std::move(aName)) { }
void WriteInfFile( const OUString& rDSN ) const;
};
@@ -63,7 +63,6 @@ typedef std::deque< OTableInfo > TableInfoList;
// IndexDialog
class ODbaseIndexDialog : public weld::GenericDialogController
{
-protected:
OUString m_aDSN;
TableInfoList m_aTableInfoList;
TableIndexList m_aFreeIndexList;
@@ -87,6 +86,7 @@ protected:
DECL_LINK( OKClickHdl, weld::Button&, void );
DECL_LINK( OnListEntrySelected, weld::TreeView&, void );
+protected:
void Init();
void SetCtrls();
@@ -95,13 +95,13 @@ protected:
OTableIndex RemoveFreeIndex( const OUString& _rName, bool _bMustExist ) { return implRemoveIndex(_rName, m_aFreeIndexList, *m_xLB_FreeIndexes, _bMustExist); }
void InsertFreeIndex( const OTableIndex& _rIndex ) { implInsertIndex(_rIndex, m_aFreeIndexList, *m_xLB_FreeIndexes); }
- OTableIndex RemoveTableIndex( const OUString& _rTableName, const OUString& _rIndexName );
- void InsertTableIndex( const OUString& _rTableName, const OTableIndex& _rIndex );
+ OTableIndex RemoveTableIndex( std::u16string_view _rTableName, const OUString& _rIndexName );
+ void InsertTableIndex( std::u16string_view _rTableName, const OTableIndex& _rIndex );
void checkButtons();
public:
- ODbaseIndexDialog(weld::Window * pParent, const OUString& rDataSrcName);
+ ODbaseIndexDialog(weld::Window * pParent, OUString aDataSrcName);
virtual ~ODbaseIndexDialog() override;
};
diff --git a/dbaccess/source/ui/dlg/dbwiz.cxx b/dbaccess/source/ui/dlg/dbwiz.cxx
index d39fd3c79c29..f34e58c1717e 100644
--- a/dbaccess/source/ui/dlg/dbwiz.cxx
+++ b/dbaccess/source/ui/dlg/dbwiz.cxx
@@ -35,7 +35,6 @@ namespace dbaui
{
using namespace com::sun::star::uno;
using namespace com::sun::star::sdbc;
-using namespace com::sun::star::lang;
using namespace com::sun::star::util;
using namespace com::sun::star::beans;
using namespace com::sun::star::container;
@@ -77,8 +76,9 @@ ODbTypeWizDialog::ODbTypeWizDialog(weld::Window* _pParent, SfxItemSet const * _p
m_xFinish->set_help_id(HID_DBWIZ_FINISH);
// no local resources needed anymore
- const DbuTypeCollectionItem& rCollectionItem = dynamic_cast<const DbuTypeCollectionItem&>(*_pItems->GetItem(DSID_TYPECOLLECTION));
- m_pCollection = rCollectionItem.getCollection();
+ const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>(_pItems->GetItem(DSID_TYPECOLLECTION));
+ assert(pCollectionItem && "must exist");
+ m_pCollection = pCollectionItem->getCollection();
ActivatePage();
setTitleBase(DBA_RES(STR_DATABASE_TYPE_CHANGE));
@@ -137,7 +137,6 @@ WizardState ODbTypeWizDialog::determineNextState( WizardState _nCurrentState ) c
case ::dbaccess::DST_KAB:
case ::dbaccess::DST_MACAB:
case ::dbaccess::DST_MSACCESS:
- case ::dbaccess::DST_MSACCESS_2007:
case ::dbaccess::DST_JDBC:
case ::dbaccess::DST_CALC:
case ::dbaccess::DST_WRITER:
@@ -214,10 +213,10 @@ void ODbTypeWizDialog::clearPassword()
std::unique_ptr<BuilderPage> ODbTypeWizDialog::createPage(WizardState _nState)
{
- const char* pStringId = STR_PAGETITLE_ADVANCED;
+ TranslateId pStringId = STR_PAGETITLE_ADVANCED;
std::unique_ptr<BuilderPage> xPage;
- OString sIdent(OString::number(_nState));
+ OUString sIdent(OUString::number(_nState));
weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
switch(_nState)
@@ -303,7 +302,7 @@ void ODbTypeWizDialog::enableConfirmSettings( bool _bEnable )
// As soon as it is to be used more wide-spread, we should find a proper concept
// for enabling both the Next and Finish buttons, depending on the current page state.
// Plus, the concept must also care for the case where those pages are embedded into
- // anormal tab dialog.
+ // a normal tab dialog.
}
void ODbTypeWizDialog::saveDatasource()
diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx
index 1dd342c12401..ec6c9040fd03 100644
--- a/dbaccess/source/ui/dlg/dbwizsetup.cxx
+++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx
@@ -43,7 +43,6 @@
#include <cppuhelper/implbase.hxx>
#include <com/sun/star/frame/TerminationVetoException.hpp>
#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/sdb/DatabaseContext.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
@@ -61,9 +60,10 @@
#include <comphelper/interaction.hxx>
#include <comphelper/namedvaluecollection.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <connectivity/DriversConfig.hxx>
+#include <utility>
namespace dbaui
{
@@ -72,7 +72,6 @@ using namespace vcl;
using namespace com::sun::star;
using namespace com::sun::star::uno;
using namespace com::sun::star::sdbc;
-using namespace com::sun::star::sdbcx;
using namespace com::sun::star::task;
using namespace com::sun::star::lang;
using namespace com::sun::star::io;
@@ -106,6 +105,7 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
, m_sRM_JDBCText( DBA_RES( STR_PAGETITLE_JDBC ) )
, m_sRM_MySQLNativePageTitle( DBA_RES( STR_PAGETITLE_MYSQL_NATIVE ) )
, m_sRM_OracleText( DBA_RES( STR_PAGETITLE_ORACLE ) )
+ , m_sRM_PostgresText( DBA_RES( STR_PAGETITLE_POSTGRES ) )
, m_sRM_MySQLText( DBA_RES( STR_PAGETITLE_MYSQL ) )
, m_sRM_ODBCText( DBA_RES( STR_PAGETITLE_ODBC ) )
, m_sRM_DocumentOrSpreadSheetText( DBA_RES( STR_PAGETITLE_DOCUMENT_OR_SPREADSHEET ) )
@@ -115,15 +115,14 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
, m_pGeneralPage( nullptr )
, m_pMySQLIntroPage( nullptr )
, m_pFinalPage( nullptr )
- , m_pCollection( nullptr )
{
// no local resources needed anymore
// extract the datasource type collection from the item set
- const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>( _pItems->GetItem(DSID_TYPECOLLECTION) );
- if (pCollectionItem)
- m_pCollection = pCollectionItem->getCollection();
+ const DbuTypeCollectionItem* pCollectionItem = dynamic_cast<const DbuTypeCollectionItem*>(_pItems->GetItem(DSID_TYPECOLLECTION));
+ assert(pCollectionItem && "must exist");
+ m_pCollection = pCollectionItem->getCollection();
- OSL_ENSURE(m_pCollection, "ODbTypeWizDialogSetup::ODbTypeWizDialogSetup : really need a DSN type collection !");
+ assert(m_pCollection && "ODbTypeWizDialogSetup::ODbTypeWizDialogSetup : really need a DSN type collection !");
m_pImpl.reset(new ODbDataSourceAdministrationHelper(_rxORB, m_xAssistant.get(), _pParent, this));
m_pImpl->setDataSourceOrName(_aDataSourceName);
@@ -138,7 +137,7 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
::dbaccess::ODsnTypeCollection::TypeIterator aIter = m_pCollection->begin();
::dbaccess::ODsnTypeCollection::TypeIterator aEnd = m_pCollection->end();
- for(PathId i = 1;aIter != aEnd;++aIter,++i)
+ for(auto i = 1;aIter != aEnd;++aIter,++i)
{
const OUString& sURLPrefix = aIter.getURLPrefix();
WizardPath aPath;
@@ -147,17 +146,21 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(weld::Window* _pParent
aPath.push_back(PAGE_DBSETUPWIZARD_AUTHENTIFICATION);
aPath.push_back(PAGE_DBSETUPWIZARD_FINAL);
- declareAuthDepPath(sURLPrefix,i,aPath);
+ declareAuthDepPath(sURLPrefix,static_cast<PathId>(i),aPath);
}
WizardPath aPath;
aPath.push_back(PAGE_DBSETUPWIZARD_INTRO);
declarePath( static_cast<PathId>(m_pCollection->size()+1), aPath);
+ // Set general help ID for the roadmap
+ SetRoadmapHelpId(HID_DBWIZ_ROADMAP);
+
m_xPrevPage->set_help_id(HID_DBWIZ_PREVIOUS);
m_xNextPage->set_help_id(HID_DBWIZ_NEXT);
m_xCancel->set_help_id(HID_DBWIZ_CANCEL);
m_xFinish->set_help_id(HID_DBWIZ_FINISH);
+ m_xHelp->set_help_id(HID_DBWIZ_HELP);
ActivatePage();
setTitleBase(DBA_RES(STR_DBWIZARDTITLE));
m_xAssistant->set_current_page(0);
@@ -210,6 +213,9 @@ OUString ODbTypeWizDialogSetup::getStateDisplayName(WizardState _nState) const
case PAGE_DBSETUPWIZARD_ORACLE:
sRoadmapItem = m_sRM_OracleText;
break;
+ case PAGE_DBSETUPWIZARD_POSTGRES:
+ sRoadmapItem = m_sRM_PostgresText;
+ break;
case PAGE_DBSETUPWIZARD_MYSQL_INTRO:
sRoadmapItem = m_sRM_MySQLText;
break;
@@ -255,19 +261,12 @@ IMPL_LINK_NOARG(ODbTypeWizDialogSetup, OnTypeSelected, OGeneralPage&, void)
static void lcl_removeUnused(const ::comphelper::NamedValueCollection& _aOld,const ::comphelper::NamedValueCollection& _aNew,::comphelper::NamedValueCollection& _rDSInfo)
{
_rDSInfo.merge(_aNew,true);
- uno::Sequence< beans::NamedValue > aOldValues = _aOld.getNamedValues();
- const beans::NamedValue* pIter = aOldValues.getConstArray();
- const beans::NamedValue* pEnd = pIter + aOldValues.getLength();
- for(;pIter != pEnd;++pIter)
- {
- if ( !_aNew.has(pIter->Name) )
- {
- _rDSInfo.remove(pIter->Name);
- }
- }
+ for (auto& val : _aOld.getNamedValues())
+ if (!_aNew.has(val.Name))
+ _rDSInfo.remove(val.Name);
}
-void DataSourceInfoConverter::convert(const Reference<XComponentContext> & xContext, const ::dbaccess::ODsnTypeCollection* _pCollection,const OUString& _sOldURLPrefix,const OUString& _sNewURLPrefix,const css::uno::Reference< css::beans::XPropertySet >& _xDatasource)
+void DataSourceInfoConverter::convert(const Reference<XComponentContext> & xContext, const ::dbaccess::ODsnTypeCollection* _pCollection, std::u16string_view _sOldURLPrefix, std::u16string_view _sNewURLPrefix,const css::uno::Reference< css::beans::XPropertySet >& _xDatasource)
{
if ( _pCollection->getPrefix(_sOldURLPrefix) == _pCollection->getPrefix(_sNewURLPrefix) )
return ;
@@ -282,7 +281,7 @@ void DataSourceInfoConverter::convert(const Reference<XComponentContext> & xCont
lcl_removeUnused(aOldProperties,aNewProperties,aDS);
aDS >>= aInfo;
- _xDatasource->setPropertyValue(PROPERTY_INFO,uno::makeAny(aInfo));
+ _xDatasource->setPropertyValue(PROPERTY_INFO,uno::Any(aInfo));
}
void ODbTypeWizDialogSetup::activateDatabasePath()
@@ -293,7 +292,7 @@ void ODbTypeWizDialogSetup::activateDatabasePath()
{
sal_Int32 nCreateNewDBIndex = m_pCollection->getIndexOf( m_pGeneralPage->GetSelectedType() );
if ( nCreateNewDBIndex == -1 )
- nCreateNewDBIndex = m_pCollection->getIndexOf( "sdbc:dbase:" );
+ nCreateNewDBIndex = m_pCollection->getIndexOf( u"sdbc:dbase:" );
OSL_ENSURE( nCreateNewDBIndex != -1, "ODbTypeWizDialogSetup::activateDatabasePath: the GeneralPage should have prevented this!" );
activatePath( static_cast< PathId >( nCreateNewDBIndex + 1 ), true );
@@ -305,6 +304,9 @@ void ODbTypeWizDialogSetup::activateDatabasePath()
{
OUString sOld = m_sURL;
m_sURL = m_pGeneralPage->GetSelectedType();
+ if (m_sURL.startsWith("sdbc:mysql:") && sOld.startsWith("sdbc:mysql:"))
+ m_sURL = sOld; // The type of MySQL connection was already set elsewhere; just use it,
+ // instead of the hardcoded one from the selector
DataSourceInfoConverter::convert(getORB(), m_pCollection,sOld,m_sURL,m_pImpl->getCurrentDataSource());
::dbaccess::DATASOURCE_TYPE eType = VerifyDataSourceType(m_pCollection->determineType(m_sURL));
if (eType == ::dbaccess::DST_UNKNOWN)
@@ -457,7 +459,7 @@ std::unique_ptr<BuilderPage> ODbTypeWizDialogSetup::createPage(WizardState _nSta
{
std::unique_ptr<OGenericAdministrationPage> xPage;
- OString sIdent(OString::number(_nState));
+ OUString sIdent(OUString::number(_nState));
weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
switch(_nState)
@@ -487,16 +489,16 @@ std::unique_ptr<BuilderPage> ODbTypeWizDialogSetup::createPage(WizardState _nSta
break;
case PAGE_DBSETUPWIZARD_MYSQL_ODBC:
- m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix("sdbc:mysql:odbc:")));
+ m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(u"sdbc:mysql:odbc:")));
xPage = OConnectionTabPageSetup::CreateODBCTabPage(pPageContainer, this, *m_pOutSet);
break;
case PAGE_DBSETUPWIZARD_MYSQL_JDBC:
- m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix("sdbc:mysql:jdbc:")));
+ m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(u"sdbc:mysql:jdbc:")));
xPage = OGeneralSpecialJDBCConnectionPageSetup::CreateMySQLJDBCTabPage(pPageContainer, this, *m_pOutSet);
break;
case PAGE_DBSETUPWIZARD_MYSQL_NATIVE:
- m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix("sdbc:mysql:mysqlc:")));
+ m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, m_pCollection->getPrefix(u"sdbc:mysql:mysqlc:")));
xPage = MySQLNativeSetupPage::Create(pPageContainer, this, *m_pOutSet);
break;
@@ -504,6 +506,10 @@ std::unique_ptr<BuilderPage> ODbTypeWizDialogSetup::createPage(WizardState _nSta
xPage = OGeneralSpecialJDBCConnectionPageSetup::CreateOracleJDBCTabPage(pPageContainer, this, *m_pOutSet);
break;
+ case PAGE_DBSETUPWIZARD_POSTGRES:
+ xPage = OPostgresConnectionPageSetup::CreatePostgresTabPage(pPageContainer, this, *m_pOutSet);
+ break;
+
case PAGE_DBSETUPWIZARD_LDAP:
xPage = OLDAPConnectionPageSetup::CreateLDAPTabPage(pPageContainer, this, *m_pOutSet);
break;
@@ -646,12 +652,11 @@ namespace
{
bool lcl_handle( const Reference< XInteractionHandler2 >& _rxHandler, const Any& _rRequest )
{
- OInteractionRequest* pRequest = new OInteractionRequest( _rRequest );
- Reference < XInteractionRequest > xRequest( pRequest );
- OInteractionAbort* pAbort = new OInteractionAbort;
+ rtl::Reference<OInteractionRequest> pRequest = new OInteractionRequest( _rRequest );
+ rtl::Reference<OInteractionAbort> pAbort = new OInteractionAbort;
pRequest->addContinuation( pAbort );
- return _rxHandler->handleInteractionRequest( xRequest );
+ return _rxHandler->handleInteractionRequest( pRequest );
}
}
@@ -671,10 +676,10 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
CreateDatabase();
::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
- aArgs.put( "Overwrite", true );
- aArgs.put( "InteractionHandler", xHandler );
- aArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
- aArgs.put( "IgnoreFirebirdMigration", true );
+ aArgs.put( u"Overwrite"_ustr, true );
+ aArgs.put( u"InteractionHandler"_ustr, xHandler );
+ aArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::USE_CONFIG );
+ aArgs.put( u"IgnoreFirebirdMigration"_ustr, true );
OUString sPath = ODbDataSourceAdministrationHelper::getDocumentUrl( *m_pOutSet );
xStore->storeAsURL( sPath, aArgs.getPropertyValues() );
@@ -692,16 +697,13 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
{
if ( !lcl_handle( xHandler, aError ) )
{
- InteractiveIOException aRequest;
- aRequest.Classification = InteractionClassification_ERROR;
- if ( aError.isExtractableTo( ::cppu::UnoType< IOException >::get() ) )
- // assume saving the document failed
- aRequest.Code = IOErrorCode_CANT_WRITE;
- else
- aRequest.Code = IOErrorCode_GENERAL;
- aRequest.Message = e.Message;
- aRequest.Context = e.Context;
- lcl_handle( xHandler, makeAny( aRequest ) );
+ css::ucb::IOErrorCode code
+ = aError.isExtractableTo(::cppu::UnoType<IOException>::get())
+ ? IOErrorCode_CANT_WRITE // assume saving the document failed
+ : IOErrorCode_GENERAL;
+ InteractiveIOException aRequest(e.Message, e.Context,
+ InteractionClassification_ERROR, code);
+ lcl_handle( xHandler, Any( aRequest ) );
}
}
}
@@ -740,7 +742,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource();
OSL_ENSURE(xDatasource.is(),"DataSource is null!");
if ( xDatasource.is() )
- xDatasource->setPropertyValue( PROPERTY_INFO, makeAny( m_pCollection->getDefaultDBSettings( eType ) ) );
+ xDatasource->setPropertyValue( PROPERTY_INFO, Any( m_pCollection->getDefaultDBSettings( eType ) ) );
m_pImpl->translateProperties(xDatasource,*m_pOutSet);
}
else if ( m_pCollection->isFileSystemBased(eType) )
@@ -751,13 +753,13 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
createUniqueFolderName(&aDBPathURL);
sUrl = aDBPathURL.GetMainURL( INetURLObject::DecodeMechanism::NONE);
xSimpleFileAccess->createFolder(sUrl);
- sUrl = eType.concat(sUrl);
+ sUrl = eType + sUrl;
}
m_pOutSet->Put(SfxStringItem(DSID_CONNECTURL, sUrl));
m_pImpl->saveChanges(*m_pOutSet);
}
- void ODbTypeWizDialogSetup::RegisterDataSourceByLocation(const OUString& _sPath)
+ void ODbTypeWizDialogSetup::RegisterDataSourceByLocation(std::u16string_view _sPath)
{
Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource();
Reference< XDatabaseContext > xDatabaseContext( DatabaseContext::create(getORB()) );
@@ -773,15 +775,14 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION,
FileDialogFlags::NONE, m_xAssistant.get());
+ aFileDlg.SetContext(sfx2::FileDialogHelper::BaseSaveAs);
std::shared_ptr<const SfxFilter> pFilter = getStandardDatabaseFilter();
if ( pFilter )
{
- INetURLObject aWorkURL( m_sWorkPath );
- aFileDlg.SetDisplayFolder( aWorkURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ));
-
OUString sDefaultName = DBA_RES( STR_DATABASEDEFAULTNAME );
OUString sExtension = pFilter->GetDefaultExtension();
- sDefaultName += sExtension.replaceAt( 0, 1, OUString() );
+ sDefaultName += sExtension.replaceAt( 0, 1, u"" );
+ INetURLObject aWorkURL( m_sWorkPath );
aWorkURL.Append( sDefaultName );
sDefaultName = createUniqueFileName( aWorkURL );
aFileDlg.SetFileName( sDefaultName );
@@ -817,7 +818,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
if (bFolderExists)
{
i++;
- pURL->setName(sLastSegmentName.concat(OUString::number(i)));
+ pURL->setName(Concat2View(sLastSegmentName + OUString::number(i)));
}
}
}
@@ -835,7 +836,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
bElementExists = xSimpleFileAccess->exists( aExistenceCheck.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
if ( bElementExists )
{
- aExistenceCheck.setBase( BaseName.concat( OUString::number( i ) ) );
+ aExistenceCheck.setBase( Concat2View(BaseName + OUString::number( i ) ));
++i;
}
}
@@ -862,7 +863,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
OAsynchronousLink m_aAsyncCaller;
public:
- AsyncLoader( const Reference< XComponentContext >& _rxORB, const OUString& _rURL );
+ AsyncLoader( const Reference< XComponentContext >& _xORB, OUString _aURL );
void doLoadAsync();
@@ -876,8 +877,8 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
DECL_LINK( OnOpenDocument, void*, void );
};
- AsyncLoader::AsyncLoader( const Reference< XComponentContext >& _rxORB, const OUString& _rURL )
- :m_sURL( _rURL )
+ AsyncLoader::AsyncLoader( const Reference< XComponentContext >& _rxORB, OUString _aURL )
+ :m_sURL(std::move( _aURL ))
,m_aAsyncCaller( LINK( this, AsyncLoader, OnOpenDocument ) )
{
try
@@ -914,14 +915,14 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
if ( m_xFrameLoader.is() )
{
::comphelper::NamedValueCollection aLoadArgs;
- aLoadArgs.put( "InteractionHandler", m_xInteractionHandler );
- aLoadArgs.put( "MacroExecutionMode", MacroExecMode::USE_CONFIG );
+ aLoadArgs.put( u"InteractionHandler"_ustr, m_xInteractionHandler );
+ aLoadArgs.put( u"MacroExecutionMode"_ustr, MacroExecMode::USE_CONFIG );
Sequence< PropertyValue > aLoadArgPV;
aLoadArgs >>= aLoadArgPV;
m_xFrameLoader->loadComponentFromURL( m_sURL,
- "_default",
+ u"_default"_ustr,
FrameSearchFlag::ALL,
aLoadArgPV
);
@@ -969,8 +970,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument()
try
{
- AsyncLoader* pAsyncLoader = new AsyncLoader( getORB(), m_pGeneralPage->GetSelectedDocumentURL() );
- ::rtl::Reference< AsyncLoader > xKeepAlive( pAsyncLoader );
+ rtl::Reference<AsyncLoader> pAsyncLoader = new AsyncLoader( getORB(), m_pGeneralPage->GetSelectedDocumentURL() );
pAsyncLoader->doLoadAsync();
}
catch( const Exception& )
diff --git a/dbaccess/source/ui/dlg/detailpages.cxx b/dbaccess/source/ui/dlg/detailpages.cxx
index 1ce6475b6573..65af148913ba 100644
--- a/dbaccess/source/ui/dlg/detailpages.cxx
+++ b/dbaccess/source/ui/dlg/detailpages.cxx
@@ -45,34 +45,29 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::container;
- using namespace ::dbtools;
OCommonBehaviourTabPage::OCommonBehaviourTabPage(weld::Container* pPage, weld::DialogController* pController,
- const OUString& rUIXMLDescription, const OString& rId, const SfxItemSet& rCoreAttrs,
+ const OUString& rUIXMLDescription, const OUString& rId, const SfxItemSet& rCoreAttrs,
OCommonBehaviourTabPageFlags nControlFlags)
: OGenericAdministrationPage(pPage, pController, rUIXMLDescription, rId, rCoreAttrs)
, m_nControlFlags(nControlFlags)
{
if (m_nControlFlags & OCommonBehaviourTabPageFlags::UseOptions)
{
- m_xOptionsLabel = m_xBuilder->weld_label("optionslabel");
+ m_xOptionsLabel = m_xBuilder->weld_label(u"optionslabel"_ustr);
m_xOptionsLabel->show();
- m_xOptions = m_xBuilder->weld_entry("options");
+ m_xOptions = m_xBuilder->weld_entry(u"options"_ustr);
m_xOptions->show();
m_xOptions->connect_changed(LINK(this,OGenericAdministrationPage,OnControlEntryModifyHdl));
}
if (m_nControlFlags & OCommonBehaviourTabPageFlags::UseCharset)
{
- m_xDataConvertLabel = m_xBuilder->weld_label("charsetheader");
+ m_xDataConvertLabel = m_xBuilder->weld_label(u"charsetheader"_ustr);
m_xDataConvertLabel->show();
- m_xCharsetLabel = m_xBuilder->weld_label("charsetlabel");
+ m_xCharsetLabel = m_xBuilder->weld_label(u"charsetlabel"_ustr);
m_xCharsetLabel->show();
- m_xCharset.reset(new CharSetListBox(m_xBuilder->weld_combo_box("charset")));
+ m_xCharset.reset(new CharSetListBox(m_xBuilder->weld_combo_box(u"charset"_ustr)));
m_xCharset->show();
m_xCharset->connect_changed(LINK(this, OCommonBehaviourTabPage, CharsetSelectHdl));
}
@@ -157,14 +152,14 @@ namespace dbaui
// ODbaseDetailsPage
ODbaseDetailsPage::ODbaseDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/dbasepage.ui", "DbasePage",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/dbasepage.ui"_ustr, u"DbasePage"_ustr,
_rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset)
- , m_xShowDeleted(m_xBuilder->weld_check_button("showDelRowsCheckbutton"))
- , m_xFT_Message(m_xBuilder->weld_label("specMessageLabel"))
- , m_xIndexes(m_xBuilder->weld_button("indiciesButton"))
+ , m_xShowDeleted(m_xBuilder->weld_check_button(u"showDelRowsCheckbutton"_ustr))
+ , m_xFT_Message(m_xBuilder->weld_label(u"specMessageLabel"_ustr))
+ , m_xIndexes(m_xBuilder->weld_button(u"indiciesButton"_ustr))
{
m_xIndexes->connect_clicked(LINK(this, ODbaseDetailsPage, OnButtonClicked));
- m_xShowDeleted->connect_clicked(LINK(this, ODbaseDetailsPage, OnButtonClicked));
+ m_xShowDeleted->connect_toggled(LINK(this, ODbaseDetailsPage, OnButtonToggled));
}
ODbaseDetailsPage::~ODbaseDetailsPage()
@@ -209,24 +204,23 @@ namespace dbaui
return bChangedSomething;
}
- IMPL_LINK(ODbaseDetailsPage, OnButtonClicked, weld::Button&, rButton, void)
+ IMPL_LINK_NOARG(ODbaseDetailsPage, OnButtonClicked, weld::Button&, void)
{
- if (m_xIndexes.get() == &rButton)
- {
- ODbaseIndexDialog aIndexDialog(GetFrameWeld(), m_sDsn);
- aIndexDialog.run();
- }
- else
- {
- m_xFT_Message->set_visible(m_xShowDeleted->get_active());
- // it was one of the checkboxes -> we count as modified from now on
- callModifiedHdl();
- }
+ ODbaseIndexDialog aIndexDialog(GetFrameWeld(), m_sDsn);
+ aIndexDialog.run();
}
+ IMPL_LINK_NOARG(ODbaseDetailsPage, OnButtonToggled, weld::Toggleable&, void)
+ {
+ m_xFT_Message->set_visible(m_xShowDeleted->get_active());
+ // it was the checkbox -> we count as modified from now on
+ callModifiedHdl();
+ }
+
+
// OAdoDetailsPage
OAdoDetailsPage::OAdoDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/autocharsetpage.ui", "AutoCharset",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/autocharsetpage.ui"_ustr, u"AutoCharset"_ustr,
rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset )
{
@@ -239,9 +233,9 @@ namespace dbaui
// OOdbcDetailsPage
OOdbcDetailsPage::OOdbcDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/odbcpage.ui", "ODBC", rCoreAttrs,
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/odbcpage.ui"_ustr, u"ODBC"_ustr, rCoreAttrs,
OCommonBehaviourTabPageFlags::UseCharset | OCommonBehaviourTabPageFlags::UseOptions)
- , m_xUseCatalog(m_xBuilder->weld_check_button("useCatalogCheckbutton"))
+ , m_xUseCatalog(m_xBuilder->weld_check_button(u"useCatalogCheckbutton"_ustr))
{
m_xUseCatalog->connect_toggled(LINK(this, OGenericAdministrationPage, OnControlModifiedButtonClick));
}
@@ -276,13 +270,13 @@ namespace dbaui
}
// OOdbcDetailsPage
OUserDriverDetailsPage::OUserDriverDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/userdetailspage.ui", "UserDetailsPage",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/userdetailspage.ui"_ustr, u"UserDetailsPage"_ustr,
rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset | OCommonBehaviourTabPageFlags::UseOptions)
- , m_xFTHostname(m_xBuilder->weld_label("hostnameft"))
- , m_xEDHostname(m_xBuilder->weld_entry("hostname"))
- , m_xPortNumber(m_xBuilder->weld_label("portnumberft"))
- , m_xNFPortNumber(m_xBuilder->weld_spin_button("portnumber"))
- , m_xUseCatalog(m_xBuilder->weld_check_button("usecatalog"))
+ , m_xFTHostname(m_xBuilder->weld_label(u"hostnameft"_ustr))
+ , m_xEDHostname(m_xBuilder->weld_entry(u"hostname"_ustr))
+ , m_xPortNumber(m_xBuilder->weld_label(u"portnumberft"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portnumber"_ustr))
+ , m_xUseCatalog(m_xBuilder->weld_check_button(u"usecatalog"_ustr))
{
m_xUseCatalog->connect_toggled(LINK(this, OGenericAdministrationPage, OnControlModifiedButtonClick));
}
@@ -310,7 +304,7 @@ namespace dbaui
{
OCommonBehaviourTabPage::fillControls(_rControlList);
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xEDHostname.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xUseCatalog.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xUseCatalog.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::SpinButton>(m_xNFPortNumber.get()));
}
void OUserDriverDetailsPage::fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
@@ -344,7 +338,7 @@ namespace dbaui
}
// OMySQLODBCDetailsPage
OMySQLODBCDetailsPage::OMySQLODBCDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/autocharsetpage.ui", "AutoCharset",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/autocharsetpage.ui"_ustr, u"AutoCharset"_ustr,
rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset )
{
}
@@ -356,17 +350,17 @@ namespace dbaui
// OMySQLJDBCDetailsPage
OGeneralSpecialJDBCDetailsPage::OGeneralSpecialJDBCDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs ,sal_uInt16 _nPortId, bool bShowSocket)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/generalspecialjdbcdetailspage.ui", "GeneralSpecialJDBCDetails",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/generalspecialjdbcdetailspage.ui"_ustr, u"GeneralSpecialJDBCDetails"_ustr,
rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset)
, m_nPortId(_nPortId)
, m_bUseClass(true)
- , m_xEDHostname(m_xBuilder->weld_entry("hostNameEntry"))
- , m_xNFPortNumber(m_xBuilder->weld_spin_button("portNumberSpinbutton"))
- , m_xFTSocket(m_xBuilder->weld_label("socketLabel"))
- , m_xEDSocket(m_xBuilder->weld_entry("socketEntry"))
- , m_xFTDriverClass(m_xBuilder->weld_label("driverClassLabel"))
- , m_xEDDriverClass(m_xBuilder->weld_entry("jdbcDriverClassEntry"))
- , m_xTestJavaDriver(m_xBuilder->weld_button("testDriverClassButton"))
+ , m_xEDHostname(m_xBuilder->weld_entry(u"hostNameEntry"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portNumberSpinbutton"_ustr))
+ , m_xFTSocket(m_xBuilder->weld_label(u"socketLabel"_ustr))
+ , m_xEDSocket(m_xBuilder->weld_entry(u"socketEntry"_ustr))
+ , m_xFTDriverClass(m_xBuilder->weld_label(u"driverClassLabel"_ustr))
+ , m_xEDDriverClass(m_xBuilder->weld_entry(u"jdbcDriverClassEntry"_ustr))
+ , m_xTestJavaDriver(m_xBuilder->weld_button(u"testDriverClassButton"_ustr))
{
const SfxStringItem* pUrlItem = rCoreAttrs.GetItem<SfxStringItem>(DSID_CONNECTURL);
const DbuTypeCollectionItem* pTypesItem = rCoreAttrs.GetItem<DbuTypeCollectionItem>(DSID_TYPECOLLECTION);
@@ -443,7 +437,7 @@ namespace dbaui
OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
// to get the correct value when saveValue was called by base class
- if ( m_bUseClass && m_xEDDriverClass->get_text().trim().isEmpty() )
+ if ( m_bUseClass && o3tl::trim(m_xEDDriverClass->get_text()).empty() )
{
m_xEDDriverClass->set_text(m_sDefaultJdbcDriverName);
m_xEDDriverClass->save_value();
@@ -451,14 +445,14 @@ namespace dbaui
}
IMPL_LINK_NOARG(OGeneralSpecialJDBCDetailsPage, OnTestJavaClickHdl, weld::Button&, void)
{
- OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
+ assert(m_pAdminDialog && "No Admin dialog set! ->GPF");
OSL_ENSURE(m_bUseClass,"Who called me?");
bool bSuccess = false;
#if HAVE_FEATURE_JAVA
try
{
- if (!m_xEDDriverClass->get_text().trim().isEmpty())
+ if (!o3tl::trim(m_xEDDriverClass->get_text()).empty())
{
// TODO change jvmaccess
::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM( m_pAdminDialog->getORB() );
@@ -470,7 +464,7 @@ namespace dbaui
{
}
#endif
- const char* pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
+ TranslateId pMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
const MessageType mt = bSuccess ? MessageType::Info : MessageType::Error;
OSQLMessageBox aMsg(GetFrameWeld(), DBA_RES(pMessage), OUString(), MessBoxStyle::Ok | MessBoxStyle::DefaultOk, mt);
aMsg.run();
@@ -479,7 +473,7 @@ namespace dbaui
void OGeneralSpecialJDBCDetailsPage::callModifiedHdl(weld::Widget* pControl)
{
if (m_bUseClass && pControl == m_xEDDriverClass.get())
- m_xTestJavaDriver->set_sensitive(!m_xEDDriverClass->get_text().trim().isEmpty());
+ m_xTestJavaDriver->set_sensitive(!o3tl::trim(m_xEDDriverClass->get_text()).empty());
// tell the listener we were modified
OGenericAdministrationPage::callModifiedHdl();
@@ -487,14 +481,14 @@ namespace dbaui
// MySQLNativePage
MySQLNativePage::MySQLNativePage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/mysqlnativepage.ui", "MysqlNativePage", rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset)
- , m_xMySQLSettingsContainer(m_xBuilder->weld_widget("MySQLSettingsContainer"))
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/mysqlnativepage.ui"_ustr, u"MysqlNativePage"_ustr, rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset)
+ , m_xMySQLSettingsContainer(m_xBuilder->weld_widget(u"MySQLSettingsContainer"_ustr))
, m_xMySQLSettings(new MySQLNativeSettings(m_xMySQLSettingsContainer.get(), LINK(this,OGenericAdministrationPage,OnControlModified)))
- , m_xSeparator1(m_xBuilder->weld_label("connectionheader"))
- , m_xSeparator2(m_xBuilder->weld_label("userheader"))
- , m_xUserNameLabel(m_xBuilder->weld_label("usernamelabel"))
- , m_xUserName(m_xBuilder->weld_entry("username"))
- , m_xPasswordRequired(m_xBuilder->weld_check_button("passwordrequired"))
+ , m_xSeparator1(m_xBuilder->weld_label(u"connectionheader"_ustr))
+ , m_xSeparator2(m_xBuilder->weld_label(u"userheader"_ustr))
+ , m_xUserNameLabel(m_xBuilder->weld_label(u"usernamelabel"_ustr))
+ , m_xUserName(m_xBuilder->weld_entry(u"username"_ustr))
+ , m_xPasswordRequired(m_xBuilder->weld_check_button(u"passwordrequired"_ustr))
{
m_xUserName->connect_changed(LINK(this,OGenericAdministrationPage,OnControlEntryModifyHdl));
}
@@ -510,7 +504,7 @@ namespace dbaui
m_xMySQLSettings->fillControls( _rControlList );
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xUserName.get()));
- _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xPasswordRequired.get()));
+ _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xPasswordRequired.get()));
}
void MySQLNativePage::fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
@@ -577,12 +571,12 @@ namespace dbaui
// OLDAPDetailsPage
OLDAPDetailsPage::OLDAPDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/ldappage.ui", "LDAP",
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/ldappage.ui"_ustr, u"LDAP"_ustr,
rCoreAttrs, OCommonBehaviourTabPageFlags::NONE)
- , m_xETBaseDN(m_xBuilder->weld_entry("baseDNEntry"))
- , m_xCBUseSSL(m_xBuilder->weld_check_button("useSSLCheckbutton"))
- , m_xNFPortNumber(m_xBuilder->weld_spin_button("portNumberSpinbutton"))
- , m_xNFRowCount(m_xBuilder->weld_spin_button("LDAPRowCountspinbutton"))
+ , m_xETBaseDN(m_xBuilder->weld_entry(u"baseDNEntry"_ustr))
+ , m_xCBUseSSL(m_xBuilder->weld_check_button(u"useSSLCheckbutton"_ustr))
+ , m_xNFPortNumber(m_xBuilder->weld_spin_button(u"portNumberSpinbutton"_ustr))
+ , m_xNFRowCount(m_xBuilder->weld_spin_button(u"LDAPRowCountspinbutton"_ustr))
{
m_xETBaseDN->connect_changed(LINK(this,OGenericAdministrationPage,OnControlEntryModifyHdl));
m_xNFPortNumber->connect_value_changed(LINK(this,OGenericAdministrationPage,OnControlSpinButtonModifyHdl));
@@ -613,7 +607,7 @@ namespace dbaui
return bChangedSomething;
}
- IMPL_LINK(OLDAPDetailsPage, OnCheckBoxClick, weld::ToggleButton&, rCheckBox, void)
+ IMPL_LINK(OLDAPDetailsPage, OnCheckBoxClick, weld::Toggleable&, rCheckBox, void)
{
OnControlModifiedButtonClick(rCheckBox);
callModifiedHdl();
@@ -653,7 +647,7 @@ namespace dbaui
// OTextDetailsPage
OTextDetailsPage::OTextDetailsPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs)
- : OCommonBehaviourTabPage(pPage, pController, "dbaccess/ui/emptypage.ui", "EmptyPage", rCoreAttrs, OCommonBehaviourTabPageFlags::NONE)
+ : OCommonBehaviourTabPage(pPage, pController, u"dbaccess/ui/emptypage.ui"_ustr, u"EmptyPage"_ustr, rCoreAttrs, OCommonBehaviourTabPageFlags::NONE)
, m_xTextConnectionHelper(new OTextConnectionHelper(m_xContainer.get(), TC_EXTENSION | TC_HEADER | TC_SEPARATORS | TC_CHARSET))
{
}
diff --git a/dbaccess/source/ui/dlg/detailpages.hxx b/dbaccess/source/ui/dlg/detailpages.hxx
index 07ea1bb1ab88..aa01c12f930e 100644
--- a/dbaccess/source/ui/dlg/detailpages.hxx
+++ b/dbaccess/source/ui/dlg/detailpages.hxx
@@ -54,16 +54,10 @@ namespace dbaui
std::unique_ptr<weld::Label> m_xCharsetLabel;
std::unique_ptr<CharSetListBox> m_xCharset;
- std::unique_ptr<weld::CheckButton> m_xAutoRetrievingEnabled;
- std::unique_ptr<weld::Label> m_xAutoIncrementLabel;
- std::unique_ptr<weld::Entry> m_xAutoIncrement;
- std::unique_ptr<weld::Label> m_xAutoRetrievingLabel;
- std::unique_ptr<weld::Entry> m_xAutoRetrieving;
-
public:
virtual bool FillItemSet (SfxItemSet* _rCoreAttrs) override;
- OCommonBehaviourTabPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rId, const SfxItemSet& _rCoreAttrs, OCommonBehaviourTabPageFlags nControlFlags);
+ OCommonBehaviourTabPage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rId, const SfxItemSet& _rCoreAttrs, OCommonBehaviourTabPageFlags nControlFlags);
protected:
virtual ~OCommonBehaviourTabPage() override;
@@ -101,6 +95,7 @@ namespace dbaui
private:
DECL_LINK(OnButtonClicked, weld::Button&, void);
+ DECL_LINK(OnButtonToggled, weld::Toggleable&, void);
};
// OAdoDetailsPage
@@ -170,7 +165,7 @@ namespace dbaui
DECL_LINK(OnTestJavaClickHdl, weld::Button&, void);
OUString m_sDefaultJdbcDriverName;
- sal_uInt16 m_nPortId;
+ TypedWhichId<SfxInt32Item> m_nPortId;
bool m_bUseClass;
std::unique_ptr<weld::Entry> m_xEDHostname;
@@ -224,7 +219,7 @@ namespace dbaui
std::unique_ptr<weld::SpinButton> m_xNFPortNumber;
std::unique_ptr<weld::SpinButton> m_xNFRowCount;
- DECL_LINK(OnCheckBoxClick, weld::ToggleButton&, void);
+ DECL_LINK(OnCheckBoxClick, weld::Toggleable&, void);
};
// OTextDetailsPage
diff --git a/dbaccess/source/ui/dlg/directsql.cxx b/dbaccess/source/ui/dlg/directsql.cxx
index 41415850bbc4..97ae2046983e 100644
--- a/dbaccess/source/ui/dlg/directsql.cxx
+++ b/dbaccess/source/ui/dlg/directsql.cxx
@@ -20,24 +20,38 @@
#include <core_resource.hxx>
#include <directsql.hxx>
#include <sqledit.hxx>
+#include <strings.hxx>
#include <strings.hrc>
#include <comphelper/types.hxx>
-#include <editeng/colritem.hxx>
-#include <editeng/wghtitem.hxx>
-#include <editeng/eeitem.hxx>
#include <osl/mutex.hxx>
#include <rtl/ustrbuf.hxx>
-#include <svl/itemset.hxx>
-#include <tools/diagnose_ex.h>
-#include <vcl/event.hxx>
+#include <rtl/ustring.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/XMultipleResults.hpp>
+#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
+
+// tdf#140298 - remember user settings within the current session
+// memp is filled in dtor and restored after initialization
+namespace
+{
+ struct memParam {
+ std::vector<OUString> SQLHistory;
+ bool DirectSQL;
+ bool ShowOutput;
+ };
+ memParam memp;
+}
namespace dbaui
{
+
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::lang;
@@ -46,15 +60,16 @@ namespace dbaui
// DirectSQLDialog
DirectSQLDialog::DirectSQLDialog(weld::Window* _pParent, const Reference< XConnection >& _rxConn)
- : GenericDialogController(_pParent, "dbaccess/ui/directsqldialog.ui", "DirectSQLDialog")
- , m_xExecute(m_xBuilder->weld_button("execute"))
- , m_xSQLHistory(m_xBuilder->weld_combo_box("sqlhistory"))
- , m_xStatus(m_xBuilder->weld_text_view("status"))
- , m_xShowOutput(m_xBuilder->weld_check_button("showoutput"))
- , m_xOutput(m_xBuilder->weld_text_view("output"))
- , m_xClose(m_xBuilder->weld_button("close"))
- , m_xSQL(new SQLEditView)
- , m_xSQLEd(new weld::CustomWeld(*m_xBuilder, "sql", *m_xSQL))
+ : GenericDialogController(_pParent, u"dbaccess/ui/directsqldialog.ui"_ustr, u"DirectSQLDialog"_ustr)
+ , m_xExecute(m_xBuilder->weld_button(u"execute"_ustr))
+ , m_xSQLHistory(m_xBuilder->weld_combo_box(u"sqlhistory"_ustr))
+ , m_xStatus(m_xBuilder->weld_text_view(u"status"_ustr))
+ , m_xDirectSQL(m_xBuilder->weld_check_button(u"directsql"_ustr))
+ , m_xShowOutput(m_xBuilder->weld_check_button(u"showoutput"_ustr))
+ , m_xOutput(m_xBuilder->weld_text_view(u"output"_ustr))
+ , m_xClose(m_xBuilder->weld_button(u"close"_ustr))
+ , m_xSQL(new SQLEditView(m_xBuilder->weld_scrolled_window(u"scrolledwindow"_ustr, true)))
+ , m_xSQLEd(new weld::CustomWeld(*m_xBuilder, u"sql"_ustr, *m_xSQL))
, m_nStatusCount(1)
, m_xConnection(_rxConn)
, m_pClosingEvent(nullptr)
@@ -65,6 +80,7 @@ namespace dbaui
m_xSQLEd->set_size_request(nWidth, nHeight);
m_xStatus->set_size_request(-1, nHeight);
m_xOutput->set_size_request(-1, nHeight);
+ m_xSQLHistory->set_size_request(nWidth, -1);
m_xSQL->GrabFocus();
@@ -72,6 +88,16 @@ namespace dbaui
m_xClose->connect_clicked(LINK(this, DirectSQLDialog, OnCloseClick));
m_xSQLHistory->connect_changed(LINK(this, DirectSQLDialog, OnListEntrySelected));
+ m_xDirectSQL->set_active(true);
+ m_xShowOutput->set_active(true);
+
+ for (size_t i = 0; i < memp.SQLHistory.size(); i++)
+ {
+ implAddToStatementHistory(memp.SQLHistory[i], true);
+ m_xDirectSQL->set_active(memp.DirectSQL);
+ m_xShowOutput->set_active(memp.ShowOutput);
+ }
+
// add a dispose listener to the connection
Reference< XComponent > xConnComp(m_xConnection, UNO_QUERY);
OSL_ENSURE(xConnComp.is(), "DirectSQLDialog::DirectSQLDialog: invalid connection!");
@@ -84,6 +110,9 @@ namespace dbaui
DirectSQLDialog::~DirectSQLDialog()
{
+ memp.DirectSQL = m_xDirectSQL->get_active();
+ memp.ShowOutput = m_xShowOutput->get_active();
+
::osl::MutexGuard aGuard(m_aMutex);
if (m_pClosingEvent)
Application::RemoveUserEvent(m_pClosingEvent);
@@ -113,13 +142,25 @@ namespace dbaui
sal_Int32 DirectSQLDialog::getHistorySize() const
{
- CHECK_INVARIANTS("DirectSQLDialog::getHistorySize");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::getHistorySize: " << pError);
+ }
+ #endif
return m_aStatementHistory.size();
}
void DirectSQLDialog::implEnsureHistoryLimit()
{
- CHECK_INVARIANTS("DirectSQLDialog::implEnsureHistoryLimit");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::implEnsureHistoryLimit: " << pError);
+ }
+ #endif
if (getHistorySize() <= g_nHistoryLimit)
// nothing to do
@@ -134,12 +175,20 @@ namespace dbaui
}
}
- void DirectSQLDialog::implAddToStatementHistory(const OUString& _rStatement)
+ void DirectSQLDialog::implAddToStatementHistory(const OUString& _rStatement, const bool bFromMemory)
{
- CHECK_INVARIANTS("DirectSQLDialog::implAddToStatementHistory");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::implAddToStatementHistor: " << pError);
+ }
+ #endif
// add the statement to the history
m_aStatementHistory.push_back(_rStatement);
+ if (!bFromMemory)
+ memp.SQLHistory.push_back(_rStatement);
// normalize the statement, and remember the normalized form, too
OUString sNormalized = _rStatement.replaceAll("\n", " ");
@@ -173,7 +222,13 @@ namespace dbaui
void DirectSQLDialog::implExecuteStatement(const OUString& _rStatement)
{
- CHECK_INVARIANTS("DirectSQLDialog::implExecuteStatement");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::implExecuteStatement: " << pError);
+ }
+ #endif
::osl::MutexGuard aGuard(m_aMutex);
@@ -186,6 +241,19 @@ namespace dbaui
// create a statement
Reference< XStatement > xStatement = m_xConnection->createStatement();
+ if (m_xDirectSQL->get_active())
+ {
+ Reference< css::beans::XPropertySet > xStatementProps(xStatement, UNO_QUERY_THROW);
+ try
+ {
+ xStatementProps->setPropertyValue(PROPERTY_ESCAPE_PROCESSING, Any(false));
+ }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ }
+
Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
css::uno::Reference< css::sdbc::XMultipleResults > xMR ( xStatement, UNO_QUERY );
@@ -199,7 +267,8 @@ namespace dbaui
display(xRS);
}
else
- addOutputText(OUString::number(xMR->getUpdateCount()) + " rows updated\n");
+ addOutputText(
+ Concat2View(OUString::number(xMR->getUpdateCount()) + " rows updated\n"));
for (;;)
{
hasRS = xMR->getMoreResults();
@@ -215,7 +284,28 @@ namespace dbaui
}
else
{
- if (_rStatement.toAsciiUpperCase().startsWith("SELECT"))
+ const OUString upperStatement = _rStatement.toAsciiUpperCase();
+ if (upperStatement.startsWith("UPDATE"))
+ {
+ sal_Int32 resultCount = xStatement->executeUpdate(_rStatement);
+ addOutputText(Concat2View(OUString::number(resultCount) + " rows updated\n"));
+ }
+ else if (upperStatement.startsWith("INSERT"))
+ {
+ sal_Int32 resultCount = xStatement->executeUpdate(_rStatement);
+ addOutputText(Concat2View(OUString::number(resultCount) + " rows inserted\n"));
+ }
+ else if (upperStatement.startsWith("DELETE"))
+ {
+ sal_Int32 resultCount = xStatement->executeUpdate(_rStatement);
+ addOutputText(Concat2View(OUString::number(resultCount) + " rows deleted\n"));
+ }
+ else if (upperStatement.startsWith("CREATE"))
+ {
+ xStatement->executeUpdate(_rStatement);
+ addOutputText(u"Command executed\n");
+ }
+ else if (upperStatement.startsWith("SELECT") || m_xShowOutput->get_active())
{
css::uno::Reference< css::sdbc::XResultSet > xRS = xStatement->executeQuery(_rStatement);
if (m_xShowOutput->get_active())
@@ -224,7 +314,7 @@ namespace dbaui
else
{
sal_Int32 resultCount = xStatement->executeUpdate(_rStatement);
- addOutputText(OUString::number(resultCount) + " rows updated\n");
+ addOutputText(Concat2View(OUString::number(resultCount) + " rows updated\n"));
}
}
// successful
@@ -248,6 +338,10 @@ namespace dbaui
void DirectSQLDialog::display(const css::uno::Reference< css::sdbc::XResultSet >& xRS)
{
+
+ const Reference<XResultSetMetaData> xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(xRS,UNO_QUERY_THROW)->getMetaData();
+ const sal_Int32 nColumnsCount = xResultSetMetaData->getColumnCount();
+ sal_Int32 nRowCount = 0;
// get a handle for the rows
css::uno::Reference< css::sdbc::XRow > xRow( xRS, css::uno::UNO_QUERY );
// work through each of the rows
@@ -258,24 +352,45 @@ namespace dbaui
// work along the columns until that are none left
try
{
- int i = 1;
- for (;;)
+ for (sal_Int32 i = 1; i <= nColumnsCount; ++i)
{
- // be dumb, treat everything as a string
- out.append(xRow->getString(i)).append(",");
- i++;
+ switch (xResultSetMetaData->getColumnType(i))
+ {
+ // tdf#153317, at least "Bit" type in Mysql/MariaDB gives: "\000" or "\001"
+ // so retrieve Sequence from getBytes, test if it has a length of 1 (so we avoid BLOB/CLOB or other complex types)
+ // and test if the value of first byte is one of those.
+ // In this case, there's a good chance it's a "Bit" field
+ case css::sdbc::DataType::BIT:
+ {
+ auto seq = xRow->getBytes(i);
+ if ((seq.getLength() == 1) && (seq[0] >= 0) && (seq[0] <= 1))
+ {
+ out.append(OUString::number(static_cast<int>(seq[0])) + ",");
+ }
+ else
+ {
+ out.append(xRow->getString(i) + ",");
+ }
+ break;
+ }
+ // for the rest, be dumb, treat everything as a string
+ default:
+ out.append(xRow->getString(i) + ",");
+ }
}
+ nRowCount++;
}
// trap for when we fall off the end of the row
catch (const SQLException&)
{
}
// report the output
- addOutputText(out.makeStringAndClear());
+ addOutputText(out);
}
+ addOutputText(DBA_RES_PLURAL(STR_COMMAND_NROWS, nRowCount).replaceAll("%1", OUString::number(nRowCount)));
}
- void DirectSQLDialog::addStatusText(const OUString& _rMessage)
+ void DirectSQLDialog::addStatusText(std::u16string_view _rMessage)
{
OUString sAppendMessage = OUString::number(m_nStatusCount++) + ": " + _rMessage + "\n\n";
@@ -285,9 +400,9 @@ namespace dbaui
m_xStatus->select_region(sCompleteMessage.getLength(), sCompleteMessage.getLength());
}
- void DirectSQLDialog::addOutputText(const OUString& _rMessage)
+ void DirectSQLDialog::addOutputText(std::u16string_view _rMessage)
{
- OUString sAppendMessage = _rMessage + "\n";
+ OUString sAppendMessage = OUString::Concat(_rMessage) + "\n";
OUString sCompleteMessage = m_xOutput->get_text() + sAppendMessage;
m_xOutput->set_text(sCompleteMessage);
@@ -295,7 +410,13 @@ namespace dbaui
void DirectSQLDialog::executeCurrent()
{
- CHECK_INVARIANTS("DirectSQLDialog::executeCurrent");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::executeCurrent: " << pError);
+ }
+ #endif
OUString sStatement = m_xSQL->GetText();
@@ -310,7 +431,13 @@ namespace dbaui
void DirectSQLDialog::switchToHistory(sal_Int32 _nHistoryPos)
{
- CHECK_INVARIANTS("DirectSQLDialog::switchToHistory");
+ #ifdef DBG_UTIL
+ {
+ const char* pError = impl_CheckInvariants();
+ if (pError)
+ SAL_WARN("dbaccess.ui", "DirectSQLDialog::switchToHistory: " << pError);
+ }
+ #endif
if ((_nHistoryPos >= 0) && (_nHistoryPos < getHistorySize()))
{
diff --git a/dbaccess/source/ui/dlg/dlgattr.cxx b/dbaccess/source/ui/dlg/dlgattr.cxx
index ce42469873c4..2e8b16910584 100644
--- a/dbaccess/source/ui/dlg/dlgattr.cxx
+++ b/dbaccess/source/ui/dlg/dlgattr.cxx
@@ -25,7 +25,6 @@
#include <svx/dialogs.hrc>
#include <svl/itemset.hxx>
-#include <svl/zforlist.hxx>
#include <svx/svxids.hrc>
using namespace dbaui;
@@ -33,27 +32,27 @@ using namespace dbaui;
SbaSbAttrDlg::SbaSbAttrDlg(weld::Widget* pParent, const SfxItemSet* pCellAttrs,
SvNumberFormatter* pFormatter, bool bHasFormat)
- : SfxTabDialogController(pParent, "dbaccess/ui/fielddialog.ui", "FieldDialog", pCellAttrs)
+ : SfxTabDialogController(pParent, u"dbaccess/ui/fielddialog.ui"_ustr, u"FieldDialog"_ustr, pCellAttrs)
{
- pNumberInfoItem.reset( new SvxNumberInfoItem( pFormatter, 0 ) );
+ pNumberInfoItem.reset( new SvxNumberInfoItem( pFormatter, SID_ATTR_NUMBERFORMAT_INFO ) );
if (bHasFormat)
- AddTabPage("format", RID_SVXPAGE_NUMBERFORMAT);
+ AddTabPage(u"format"_ustr, RID_SVXPAGE_NUMBERFORMAT);
else
- RemoveTabPage("format");
- AddTabPage("alignment", RID_SVXPAGE_ALIGNMENT);
+ RemoveTabPage(u"format"_ustr);
+ AddTabPage(u"alignment"_ustr, RID_SVXPAGE_ALIGNMENT);
}
SbaSbAttrDlg::~SbaSbAttrDlg()
{
}
-void SbaSbAttrDlg::PageCreated(const OString& rPageId, SfxTabPage& rTabPage)
+void SbaSbAttrDlg::PageCreated(const OUString& rPageId, SfxTabPage& rTabPage)
{
SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
if (rPageId == "format")
{
- aSet.Put (SvxNumberInfoItem( pNumberInfoItem->GetNumberFormatter(), static_cast<sal_uInt16>(SID_ATTR_NUMBERFORMAT_INFO)));
+ aSet.Put (SvxNumberInfoItem( pNumberInfoItem->GetNumberFormatter(), SID_ATTR_NUMBERFORMAT_INFO));
rTabPage.PageCreated(aSet);
}
}
diff --git a/dbaccess/source/ui/dlg/dlgsave.cxx b/dbaccess/source/ui/dlg/dlgsave.cxx
index ce5d16881f1d..0bb460428d46 100644
--- a/dbaccess/source/ui/dlg/dlgsave.cxx
+++ b/dbaccess/source/ui/dlg/dlgsave.cxx
@@ -24,58 +24,18 @@
#include <com/sun/star/sdbc/XRow.hpp>
#include <connectivity/dbtools.hxx>
#include <UITools.hxx>
-#include <SqlNameEdit.hxx>
-#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <objectnamecheck.hxx>
-#include <tools/diagnose_ex.h>
+#include <utility>
+#include <comphelper/diagnose_ex.hxx>
using namespace dbaui;
using namespace dbtools;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
-namespace dbaui
-{
-class OSaveAsDlgImpl
-{
-public:
- OUString m_aQryLabel;
- OUString m_sTblLabel;
- OUString m_aName;
- const IObjectNameCheck& m_rObjectNameCheck;
- css::uno::Reference< css::sdbc::XDatabaseMetaData> m_xMetaData;
- sal_Int32 m_nType;
- SADFlags m_nFlags;
-
- OSQLNameChecker m_aChecker;
-
- std::unique_ptr<weld::Label> m_xDescription;
- std::unique_ptr<weld::Label> m_xCatalogLbl;
- std::unique_ptr<weld::ComboBox> m_xCatalog;
- std::unique_ptr<weld::Label> m_xSchemaLbl;
- std::unique_ptr<weld::ComboBox> m_xSchema;
- std::unique_ptr<weld::Label> m_xLabel;
- std::unique_ptr<weld::Entry> m_xTitle;
- std::unique_ptr<weld::Button> m_xPB_OK;
-
- DECL_LINK(TextFilterHdl, OUString&, bool);
-
- OSaveAsDlgImpl( weld::Builder* pParent, sal_Int32 _rType,
- const css::uno::Reference< css::sdbc::XConnection>& _xConnection,
- const OUString& rDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags);
- OSaveAsDlgImpl( weld::Builder* pParent,
- const OUString& rDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags);
-};
-
-} // dbaui
-
-IMPL_LINK(OSaveAsDlgImpl, TextFilterHdl, OUString&, rTest, bool)
+
+IMPL_LINK(OSaveAsDlg, TextFilterHdl, OUString&, rTest, bool)
{
OUString sCorrected;
if (m_aChecker.checkString(rTest, sCorrected))
@@ -83,69 +43,6 @@ IMPL_LINK(OSaveAsDlgImpl, TextFilterHdl, OUString&, rTest, bool)
return true;
}
-OSaveAsDlgImpl::OSaveAsDlgImpl(weld::Builder* pBuilder,
- sal_Int32 _rType,
- const Reference< XConnection>& _xConnection,
- const OUString& rDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags)
- : m_aQryLabel(DBA_RES(STR_QRY_LABEL))
- , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
- , m_aName(rDefault)
- , m_rObjectNameCheck( _rObjectNameCheck )
- , m_nType(_rType)
- , m_nFlags(_nFlags)
- , m_aChecker(OUString())
- , m_xDescription(pBuilder->weld_label("descriptionft"))
- , m_xCatalogLbl(pBuilder->weld_label("catalogft"))
- , m_xCatalog(pBuilder->weld_combo_box("catalog"))
- , m_xSchemaLbl(pBuilder->weld_label("schemaft"))
- , m_xSchema(pBuilder->weld_combo_box("schema"))
- , m_xLabel(pBuilder->weld_label("titleft"))
- , m_xTitle(pBuilder->weld_entry("title"))
- , m_xPB_OK(pBuilder->weld_button("ok"))
-{
- if ( _xConnection.is() )
- m_xMetaData = _xConnection->getMetaData();
-
- if (m_xMetaData.is())
- {
- OUString sExtraNameChars(m_xMetaData->getExtraNameCharacters());
- m_aChecker.setAllowedChars(sExtraNameChars);
- }
-
- m_xTitle->connect_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
- m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
- m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
-}
-
-OSaveAsDlgImpl::OSaveAsDlgImpl(weld::Builder* pBuilder,
- const OUString& rDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags)
- : m_aQryLabel(DBA_RES(STR_QRY_LABEL))
- , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
- , m_aName(rDefault)
- , m_rObjectNameCheck( _rObjectNameCheck )
- , m_nType(CommandType::COMMAND)
- , m_nFlags(_nFlags)
- , m_aChecker(OUString())
- , m_xDescription(pBuilder->weld_label("descriptionft"))
- , m_xCatalogLbl(pBuilder->weld_label("catalogft"))
- , m_xCatalog(pBuilder->weld_combo_box("catalog"))
- , m_xSchemaLbl(pBuilder->weld_label("schemaft"))
- , m_xSchema(pBuilder->weld_combo_box("schema"))
- , m_xLabel(pBuilder->weld_label("titleft"))
- , m_xTitle(pBuilder->weld_entry("title"))
- , m_xPB_OK(pBuilder->weld_button("ok"))
-{
- m_xTitle->connect_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
- m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
- m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl));
-}
-
-using namespace ::com::sun::star::lang;
-
namespace
{
typedef Reference< XResultSet > (SAL_CALL XDatabaseMetaData::*FGetMetaStrings)();
@@ -183,71 +80,95 @@ OSaveAsDlg::OSaveAsDlg( weld::Window * pParent,
const OUString& rDefault,
const IObjectNameCheck& _rObjectNameCheck,
SADFlags _nFlags)
- : GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/savedialog.ui"_ustr, u"SaveDialog"_ustr)
, m_xContext( _rxContext )
+ , m_aName(rDefault)
+ , m_rObjectNameCheck( _rObjectNameCheck )
+ , m_nType(_rType)
+ , m_nFlags(_nFlags)
+ , m_aChecker(OUString())
+ , m_xDescription(m_xBuilder->weld_label(u"descriptionft"_ustr))
+ , m_xCatalogLbl(m_xBuilder->weld_label(u"catalogft"_ustr))
+ , m_xCatalog(m_xBuilder->weld_combo_box(u"catalog"_ustr))
+ , m_xSchemaLbl(m_xBuilder->weld_label(u"schemaft"_ustr))
+ , m_xSchema(m_xBuilder->weld_combo_box(u"schema"_ustr))
+ , m_xLabel(m_xBuilder->weld_label(u"titleft"_ustr))
+ , m_xTitle(m_xBuilder->weld_entry(u"title"_ustr))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
{
- m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),_rType,_xConnection,rDefault,_rObjectNameCheck,_nFlags) );
+ if ( _xConnection.is() )
+ m_xMetaData = _xConnection->getMetaData();
+
+ if (m_xMetaData.is())
+ {
+ OUString sExtraNameChars(m_xMetaData->getExtraNameCharacters());
+ m_aChecker.setAllowedChars(sExtraNameChars);
+ }
+
+ m_xTitle->connect_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
switch (_rType) {
case CommandType::QUERY:
- implInitOnlyTitle(m_pImpl->m_aQryLabel);
+ implInitOnlyTitle(DBA_RES(STR_QRY_LABEL));
break;
case CommandType::TABLE:
- OSL_ENSURE( m_pImpl->m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" );
+ OSL_ENSURE( m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" );
{
- m_pImpl->m_xLabel->set_label(m_pImpl->m_sTblLabel);
- if(m_pImpl->m_xMetaData.is() && !m_pImpl->m_xMetaData->supportsCatalogsInTableDefinitions()) {
- m_pImpl->m_xCatalogLbl->hide();
- m_pImpl->m_xCatalog->hide();
+ m_xLabel->set_label(DBA_RES(STR_TBL_LABEL));
+ if(m_xMetaData.is() && !m_xMetaData->supportsCatalogsInTableDefinitions()) {
+ m_xCatalogLbl->hide();
+ m_xCatalog->hide();
} else {
// now fill the catalogs
- lcl_fillComboList( *m_pImpl->m_xCatalog, _xConnection,
+ lcl_fillComboList( *m_xCatalog, _xConnection,
&XDatabaseMetaData::getCatalogs, _xConnection->getCatalog() );
}
- if ( !m_pImpl->m_xMetaData->supportsSchemasInTableDefinitions()) {
- m_pImpl->m_xSchemaLbl->hide();
- m_pImpl->m_xSchema->hide();
+ if ( !m_xMetaData->supportsSchemasInTableDefinitions()) {
+ m_xSchemaLbl->hide();
+ m_xSchema->hide();
} else {
- lcl_fillComboList( *m_pImpl->m_xSchema, _xConnection,
- &XDatabaseMetaData::getSchemas, m_pImpl->m_xMetaData->getUserName() );
+ lcl_fillComboList( *m_xSchema, _xConnection,
+ &XDatabaseMetaData::getSchemas, m_xMetaData->getUserName() );
}
- OSL_ENSURE(m_pImpl->m_xMetaData.is(),"The metadata can not be null!");
- if(m_pImpl->m_aName.indexOf('.') != -1) {
+ OSL_ENSURE(m_xMetaData.is(),"The metadata can not be null!");
+ if(m_aName.indexOf('.') != -1) {
OUString sCatalog,sSchema,sTable;
- ::dbtools::qualifiedNameComponents(m_pImpl->m_xMetaData,
- m_pImpl->m_aName,
+ ::dbtools::qualifiedNameComponents(m_xMetaData,
+ m_aName,
sCatalog,
sSchema,
sTable,
::dbtools::EComposeRule::InDataManipulation);
- int nPos = m_pImpl->m_xCatalog->find_text(sCatalog);
+ int nPos = m_xCatalog->find_text(sCatalog);
if (nPos != -1)
- m_pImpl->m_xCatalog->set_active(nPos);
+ m_xCatalog->set_active(nPos);
if ( !sSchema.isEmpty() ) {
- nPos = m_pImpl->m_xSchema->find_text(sSchema);
+ nPos = m_xSchema->find_text(sSchema);
if (nPos != -1)
- m_pImpl->m_xSchema->set_active(nPos);
+ m_xSchema->set_active(nPos);
}
- m_pImpl->m_xTitle->set_text(sTable);
+ m_xTitle->set_text(sTable);
} else
- m_pImpl->m_xTitle->set_text(m_pImpl->m_aName);
- m_pImpl->m_xTitle->select_region(0, -1);
+ m_xTitle->set_text(m_aName);
+ m_xTitle->select_region(0, -1);
- sal_Int32 nLength = m_pImpl->m_xMetaData.is() ? m_pImpl->m_xMetaData->getMaxTableNameLength() : 0;
+ sal_Int32 nLength = m_xMetaData.is() ? m_xMetaData->getMaxTableNameLength() : 0;
if (nLength)
{
- m_pImpl->m_xTitle->set_max_length(nLength);
- m_pImpl->m_xSchema->set_entry_max_length(nLength);
- m_pImpl->m_xCatalog->set_entry_max_length(nLength);
+ m_xTitle->set_max_length(nLength);
+ m_xSchema->set_entry_max_length(nLength);
+ m_xCatalog->set_entry_max_length(nLength);
}
bool bCheck = _xConnection.is() && isSQL92CheckEnabled(_xConnection);
- m_pImpl->m_aChecker.setCheck(bCheck); // enable non valid sql chars as well
+ m_aChecker.setCheck(bCheck); // enable non valid sql chars as well
}
break;
@@ -264,10 +185,25 @@ OSaveAsDlg::OSaveAsDlg(weld::Window * pParent,
const OUString& _sLabel,
const IObjectNameCheck& _rObjectNameCheck,
SADFlags _nFlags)
- : GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/savedialog.ui"_ustr, u"SaveDialog"_ustr)
, m_xContext( _rxContext )
+ , m_aName(rDefault)
+ , m_rObjectNameCheck( _rObjectNameCheck )
+ , m_nType(CommandType::COMMAND)
+ , m_nFlags(_nFlags)
+ , m_aChecker(OUString())
+ , m_xDescription(m_xBuilder->weld_label(u"descriptionft"_ustr))
+ , m_xCatalogLbl(m_xBuilder->weld_label(u"catalogft"_ustr))
+ , m_xCatalog(m_xBuilder->weld_combo_box(u"catalog"_ustr))
+ , m_xSchemaLbl(m_xBuilder->weld_label(u"schemaft"_ustr))
+ , m_xSchema(m_xBuilder->weld_combo_box(u"schema"_ustr))
+ , m_xLabel(m_xBuilder->weld_label(u"titleft"_ustr))
+ , m_xTitle(m_xBuilder->weld_entry(u"title"_ustr))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
{
- m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),rDefault,_rObjectNameCheck,_nFlags) );
+ m_xTitle->connect_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
implInitOnlyTitle(_sLabel);
implInit();
}
@@ -278,13 +214,13 @@ OSaveAsDlg::~OSaveAsDlg()
IMPL_LINK_NOARG(OSaveAsDlg, ButtonClickHdl, weld::Button&, void)
{
- m_pImpl->m_aName = m_pImpl->m_xTitle->get_text();
+ m_aName = m_xTitle->get_text();
- OUString sNameToCheck( m_pImpl->m_aName );
+ OUString sNameToCheck( m_aName );
- if ( m_pImpl->m_nType == CommandType::TABLE ) {
+ if ( m_nType == CommandType::TABLE ) {
sNameToCheck = ::dbtools::composeTableName(
- m_pImpl->m_xMetaData,
+ m_xMetaData,
getCatalog(),
getSchema(),
sNameToCheck,
@@ -294,58 +230,58 @@ IMPL_LINK_NOARG(OSaveAsDlg, ButtonClickHdl, weld::Button&, void)
}
SQLExceptionInfo aNameError;
- if ( m_pImpl->m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) )
+ if ( m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) )
m_xDialog->response(RET_OK);
showError(aNameError, m_xDialog->GetXWindow(), m_xContext);
- m_pImpl->m_xTitle->grab_focus();
+ m_xTitle->grab_focus();
}
IMPL_LINK_NOARG(OSaveAsDlg, EditModifyHdl, weld::Entry&, void)
{
- m_pImpl->m_xPB_OK->set_sensitive(!m_pImpl->m_xTitle->get_text().isEmpty());
+ m_xPB_OK->set_sensitive(!m_xTitle->get_text().isEmpty());
}
void OSaveAsDlg::implInitOnlyTitle(const OUString& _rLabel)
{
- m_pImpl->m_xLabel->set_label(_rLabel);
- m_pImpl->m_xCatalogLbl->hide();
- m_pImpl->m_xCatalog->hide();
- m_pImpl->m_xSchemaLbl->hide();
- m_pImpl->m_xSchema->hide();
-
- m_pImpl->m_xTitle->set_text(m_pImpl->m_aName);
- m_pImpl->m_aChecker.setCheck(false); // enable non valid sql chars as well
+ m_xLabel->set_label(_rLabel);
+ m_xCatalogLbl->hide();
+ m_xCatalog->hide();
+ m_xSchemaLbl->hide();
+ m_xSchema->hide();
+
+ m_xTitle->set_text(m_aName);
+ m_aChecker.setCheck(false); // enable non valid sql chars as well
}
void OSaveAsDlg::implInit()
{
- if ( !( m_pImpl->m_nFlags & SADFlags::AdditionalDescription ) ) {
+ if ( !( m_nFlags & SADFlags::AdditionalDescription ) ) {
// hide the description window
- m_pImpl->m_xDescription->hide();
+ m_xDescription->hide();
}
- if ( SADFlags::TitlePasteAs == ( m_pImpl->m_nFlags & SADFlags::TitlePasteAs ) )
+ if ( SADFlags::TitlePasteAs == ( m_nFlags & SADFlags::TitlePasteAs ) )
m_xDialog->set_title( DBA_RES( STR_TITLE_PASTE_AS ) );
- else if ( SADFlags::TitleRename == ( m_pImpl->m_nFlags & SADFlags::TitleRename ) )
+ else if ( SADFlags::TitleRename == ( m_nFlags & SADFlags::TitleRename ) )
m_xDialog->set_title( DBA_RES( STR_TITLE_RENAME ) );
- m_pImpl->m_xPB_OK->connect_clicked(LINK(this,OSaveAsDlg,ButtonClickHdl));
- m_pImpl->m_xTitle->connect_changed(LINK(this,OSaveAsDlg,EditModifyHdl));
- m_pImpl->m_xTitle->grab_focus();
+ m_xPB_OK->connect_clicked(LINK(this,OSaveAsDlg,ButtonClickHdl));
+ m_xTitle->connect_changed(LINK(this,OSaveAsDlg,EditModifyHdl));
+ m_xTitle->grab_focus();
}
const OUString& OSaveAsDlg::getName() const
{
- return m_pImpl->m_aName;
+ return m_aName;
}
OUString OSaveAsDlg::getCatalog() const
{
- return m_pImpl->m_xCatalog->get_visible() ? m_pImpl->m_xCatalog->get_active_text() : OUString();
+ return m_xCatalog->get_visible() ? m_xCatalog->get_active_text() : OUString();
}
OUString OSaveAsDlg::getSchema() const
{
- return m_pImpl->m_xSchema->get_visible() ? m_pImpl->m_xSchema->get_active_text() : OUString();
+ return m_xSchema->get_visible() ? m_xSchema->get_active_text() : OUString();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/dlg/dlgsize.cxx b/dbaccess/source/ui/dlg/dlgsize.cxx
index 5b9f3a1ae839..ad1d1e4f5dc5 100644
--- a/dbaccess/source/ui/dlg/dlgsize.cxx
+++ b/dbaccess/source/ui/dlg/dlgsize.cxx
@@ -26,11 +26,11 @@ namespace dbaui
#define DEF_COL_WIDTH 227
DlgSize::DlgSize(weld::Window* pParent, sal_Int32 nVal, bool bRow, sal_Int32 _nAlternativeStandard )
- : GenericDialogController(pParent, bRow ? OUString("dbaccess/ui/rowheightdialog.ui") : OUString("dbaccess/ui/colwidthdialog.ui"),
- bRow ? OString("RowHeightDialog") : OString("ColWidthDialog"))
+ : GenericDialogController(pParent, bRow ? u"dbaccess/ui/rowheightdialog.ui"_ustr : u"dbaccess/ui/colwidthdialog.ui"_ustr,
+ bRow ? u"RowHeightDialog"_ustr : u"ColWidthDialog"_ustr)
, m_nPrevValue(nVal)
- , m_xMF_VALUE(m_xBuilder->weld_metric_spin_button("value", FieldUnit::CM))
- , m_xCB_STANDARD(m_xBuilder->weld_check_button("automatic"))
+ , m_xMF_VALUE(m_xBuilder->weld_metric_spin_button(u"value"_ustr, FieldUnit::CM))
+ , m_xCB_STANDARD(m_xBuilder->weld_check_button(u"automatic"_ustr))
{
sal_Int32 nStandard(bRow ? DEF_ROW_HEIGHT : DEF_COL_WIDTH);
if ( _nAlternativeStandard > 0 )
@@ -63,14 +63,14 @@ sal_Int32 DlgSize::GetValue() const
return static_cast<sal_Int32>(m_xMF_VALUE->get_value( FieldUnit::CM ));
}
-IMPL_LINK_NOARG(DlgSize, CbClickHdl, weld::ToggleButton&, void)
+IMPL_LINK_NOARG(DlgSize, CbClickHdl, weld::Toggleable&, void)
{
m_xMF_VALUE->set_sensitive(!m_xCB_STANDARD->get_active());
if (m_xCB_STANDARD->get_active())
{
// don't use getValue as this will use m_xCB_STANDARD->to determine if we're standard
m_nPrevValue = static_cast<sal_Int32>(m_xMF_VALUE->get_value(FieldUnit::CM));
- m_xMF_VALUE->set_text("");
+ m_xMF_VALUE->set_text(u""_ustr);
}
else
{
diff --git a/dbaccess/source/ui/dlg/dsnItem.hxx b/dbaccess/source/ui/dlg/dsnItem.hxx
index 4ae414881e57..8f73921af359 100644
--- a/dbaccess/source/ui/dlg/dsnItem.hxx
+++ b/dbaccess/source/ui/dlg/dsnItem.hxx
@@ -35,6 +35,7 @@ namespace dbaui
::dbaccess::ODsnTypeCollection* m_pCollection;
public:
+ DECLARE_ITEM_TYPE_FUNCTION(DbuTypeCollectionItem)
DbuTypeCollectionItem(sal_Int16 nWhich, ::dbaccess::ODsnTypeCollection* _pCollection);
DbuTypeCollectionItem(const DbuTypeCollectionItem& _rSource);
diff --git a/dbaccess/source/ui/dlg/dsselect.cxx b/dbaccess/source/ui/dlg/dsselect.cxx
index 4c0b9a836382..3d4a17b8ffcd 100644
--- a/dbaccess/source/ui/dlg/dsselect.cxx
+++ b/dbaccess/source/ui/dlg/dsselect.cxx
@@ -24,17 +24,9 @@
namespace dbaui
{
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::ui::dialogs;
-
ODatasourceSelectDialog::ODatasourceSelectDialog(weld::Window* _pParent, const std::set<OUString>& _rDatasources)
- : GenericDialogController(_pParent, "dbaccess/ui/choosedatasourcedialog.ui", "ChooseDataSourceDialog")
- , m_xDatasource(m_xBuilder->weld_tree_view("treeview"))
- , m_xOk(m_xBuilder->weld_button("ok"))
- , m_xCancel(m_xBuilder->weld_button("cancel"))
- , m_xManageDatasources(m_xBuilder->weld_button("organize"))
+ : GenericDialogController(_pParent, u"dbaccess/ui/choosedatasourcedialog.ui"_ustr, u"ChooseDataSourceDialog"_ustr)
+ , m_xDatasource(m_xBuilder->weld_tree_view(u"treeview"_ustr))
{
m_xDatasource->set_size_request(-1, m_xDatasource->get_height_rows(6));
diff --git a/dbaccess/source/ui/dlg/dsselect.hxx b/dbaccess/source/ui/dlg/dsselect.hxx
index 70aedf2e4d31..bae8a35ac4db 100644
--- a/dbaccess/source/ui/dlg/dsselect.hxx
+++ b/dbaccess/source/ui/dlg/dsselect.hxx
@@ -25,17 +25,12 @@
#include <memory>
#include <set>
-class SfxItemSet;
namespace dbaui
{
-
// ODatasourceSelector
class ODatasourceSelectDialog final : public weld::GenericDialogController
{
std::unique_ptr<weld::TreeView> m_xDatasource;
- std::unique_ptr<weld::Button> m_xOk;
- std::unique_ptr<weld::Button> m_xCancel;
- std::unique_ptr<weld::Button> m_xManageDatasources;
#ifdef HAVE_ODBC_ADMINISTRATION
std::unique_ptr<OOdbcManagement> m_xODBCManagement;
#endif
@@ -43,17 +38,13 @@ class ODatasourceSelectDialog final : public weld::GenericDialogController
public:
ODatasourceSelectDialog(weld::Window* pParent, const std::set<OUString>& rDatasources);
virtual ~ODatasourceSelectDialog() override;
- OUString GetSelected() const {
- return m_xDatasource->get_selected_text();
- }
- void Select( const OUString& _rEntry ) {
- m_xDatasource->select_text(_rEntry);
- }
+ OUString GetSelected() const { return m_xDatasource->get_selected_text(); }
+ void Select(const OUString& _rEntry) { m_xDatasource->select_text(_rEntry); }
virtual short run() override;
private:
- DECL_LINK( ListDblClickHdl, weld::TreeView&, bool );
+ DECL_LINK(ListDblClickHdl, weld::TreeView&, bool);
#ifdef HAVE_ODBC_ADMINISTRATION
DECL_LINK(ManageClickHdl, weld::Button&, void);
DECL_LINK(ManageProcessFinished, void*, void);
@@ -61,6 +52,6 @@ private:
void fillListBox(const std::set<OUString>& _rDatasources);
};
-} // namespace dbaui
+} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/dlg/generalpage.cxx b/dbaccess/source/ui/dlg/generalpage.cxx
index 1ad3e8272595..2030860d1ac6 100644
--- a/dbaccess/source/ui/dlg/generalpage.cxx
+++ b/dbaccess/source/ui/dlg/generalpage.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_features.h>
#include <core_resource.hxx>
#include "dsnItem.hxx"
#include "generalpage.hxx"
@@ -25,16 +26,17 @@
#include <dsitems.hxx>
#include <sfx2/filedlghelper.hxx>
#include <sfx2/docfilt.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <svl/stritem.hxx>
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include <UITools.hxx>
+#include <officecfg/Office/Common.hxx>
#include <comphelper/processfactory.hxx>
#include <unotools/confignode.hxx>
#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
-#include <svtools/miscopt.hxx>
#include <sal/log.hxx>
#include <dbwizsetup.hxx>
@@ -48,11 +50,11 @@ namespace dbaui
// OGeneralPage
OGeneralPage::OGeneralPage(weld::Container* pPage, weld::DialogController* pController, const OUString& _rUIXMLDescription, const SfxItemSet& _rItems)
- : OGenericAdministrationPage(pPage, pController, _rUIXMLDescription, "PageGeneral", _rItems)
- , m_xSpecialMessage(m_xBuilder->weld_label("specialMessage"))
+ : OGenericAdministrationPage(pPage, pController, _rUIXMLDescription, u"PageGeneral"_ustr, _rItems)
+ , m_xSpecialMessage(m_xBuilder->weld_label(u"specialMessage"_ustr))
, m_eLastMessage(smNone)
, m_bInitTypeList(true)
- , m_xDatasourceType(m_xBuilder->weld_combo_box("datasourceType"))
+ , m_xDatasourceType(m_xBuilder->weld_combo_box(u"datasourceType"_ustr))
, m_pCollection(nullptr)
{
// extract the datasource type collection from the item set
@@ -76,7 +78,7 @@ namespace dbaui
OUString eType;
OUString sDisplayName;
- DisplayedType( const OUString& _eType, const OUString& _rDisplayName ) : eType( _eType ), sDisplayName( _rDisplayName ) { }
+ DisplayedType( OUString _eType, OUString _sDisplayName ) : eType(std::move( _eType )), sDisplayName(std::move( _sDisplayName )) { }
};
typedef std::vector< DisplayedType > DisplayedTypes;
@@ -142,9 +144,6 @@ namespace dbaui
DisplayedTypes aDisplayedTypes;
::dbaccess::ODsnTypeCollection::TypeIterator aEnd = m_pCollection->end();
-
- SvtMiscOptions aMiscOptions;
-
for ( ::dbaccess::ODsnTypeCollection::TypeIterator aTypeLoop = m_pCollection->begin();
aTypeLoop != aEnd;
++aTypeLoop
@@ -157,8 +156,11 @@ namespace dbaui
if (m_xEmbeddedDBType->find_text(sDisplayName) == -1 &&
dbaccess::ODsnTypeCollection::isEmbeddedDatabase(sURLPrefix))
{
- if( !aMiscOptions.IsExperimentalMode() && sURLPrefix.startsWith("sdbc:embedded:firebird") )
+#if !HAVE_FEATURE_MACOSX_SANDBOX
+ if( !officecfg::Office::Common::Misc::ExperimentalMode::get()
+ && sURLPrefix.startsWith("sdbc:embedded:firebird") )
continue;
+#endif
aDisplayedTypes.emplace_back( sURLPrefix, sDisplayName );
m_bIsDisplayedTypesEmpty = false;
}
@@ -173,17 +175,17 @@ namespace dbaui
{
}
- void OGeneralPage::switchMessage(const OUString& _sURLPrefix)
+ void OGeneralPage::switchMessage(std::u16string_view _sURLPrefix)
{
SPECIAL_MESSAGE eMessage = smNone;
- if ( _sURLPrefix.isEmpty()/*_eType == m_eNotSupportedKnownType*/ )
+ if ( _sURLPrefix.empty()/*_eType == m_eNotSupportedKnownType*/ )
{
eMessage = smUnsupportedType;
}
if ( eMessage != m_eLastMessage )
{
- const char* pResId = nullptr;
+ TranslateId pResId;
if ( smUnsupportedType == eMessage )
pResId = STR_UNSUPPORTED_DATASOURCE_TYPE;
OUString sMessage;
@@ -224,31 +226,29 @@ namespace dbaui
OUString OGeneralPageWizard::getEmbeddedDBName( const SfxItemSet& _rSet )
{
+ if (!m_pCollection)
+ return {};
// first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
bool bValid, bReadonly;
getFlags( _rSet, bValid, bReadonly );
-
- // if the selection is invalid, disable everything
-
- implSetCurrentType( OUString() );
+ if (!bValid)
+ return {};
// compare the DSN prefix with the registered ones
- OUString sDisplayName;
-
- if (m_pCollection && bValid)
- {
- implSetCurrentType( dbaccess::ODsnTypeCollection::getEmbeddedDatabase() );
- sDisplayName = m_pCollection->getTypeDisplayName( m_eCurrentSelection );
- onTypeSelected(m_eCurrentSelection);
- }
-
- // select the correct datasource type
- if ( dbaccess::ODsnTypeCollection::isEmbeddedDatabase( m_eCurrentSelection )
- && m_xEmbeddedDBType->find_text(sDisplayName) == -1 )
+ OUString sDBURL;
+ if (const SfxStringItem* pUrlItem = _rSet.GetItem<SfxStringItem>(DSID_CONNECTURL))
+ if (dbaccess::ODsnTypeCollection::isEmbeddedDatabase(pUrlItem->GetValue()))
+ sDBURL = pUrlItem->GetValue();
+ if (sDBURL.isEmpty())
+ sDBURL = dbaccess::ODsnTypeCollection::getEmbeddedDatabase();
+ OUString sDisplayName = m_pCollection->getTypeDisplayName(sDBURL);
+
+ // ensure presence of the correct datasource type
+ if (!sDisplayName.isEmpty() && m_xEmbeddedDBType->find_text(sDisplayName) == -1)
{ // this indicates it's really a type which is known in general, but not supported on the current platform
// show a message saying so
// eSpecialMessage = smUnsupportedType;
- insertEmbeddedDBTypeEntryData( m_eCurrentSelection, sDisplayName );
+ insertEmbeddedDBTypeEntryData(sDBURL, sDisplayName);
}
return sDisplayName;
@@ -299,7 +299,7 @@ namespace dbaui
// representative for all MySQl databases)
// Also, embedded databases (embedded HSQL, at the moment), are not to appear in the list of
// databases to connect to.
- bool OGeneralPage::approveDatasourceType( const OUString& _sURLPrefix, OUString& _inout_rDisplayName )
+ bool OGeneralPage::approveDatasourceType( std::u16string_view _sURLPrefix, OUString& _inout_rDisplayName )
{
return approveDatasourceType( m_pCollection->determineType(_sURLPrefix), _inout_rDisplayName );
}
@@ -310,7 +310,7 @@ namespace dbaui
{
// do not display the Connector/OOo driver itself, it is always wrapped via the MySQL-Driver, if
// this driver is installed
- if ( m_pCollection->hasDriver( "sdbc:mysql:mysqlc:" ) )
+ if ( m_pCollection->hasDriver( u"sdbc:mysql:mysqlc:" ) )
_inout_rDisplayName.clear();
}
@@ -402,7 +402,7 @@ namespace dbaui
// OGeneralPageDialog
OGeneralPageDialog::OGeneralPageDialog(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rItems)
- : OGeneralPage(pPage, pController, "dbaccess/ui/generalpagedialog.ui", _rItems)
+ : OGeneralPage(pPage, pController, u"dbaccess/ui/generalpagedialog.ui"_ustr, _rItems)
{
}
@@ -445,17 +445,16 @@ namespace dbaui
// OGeneralPageWizard
OGeneralPageWizard::OGeneralPageWizard(weld::Container* pPage, ODbTypeWizDialogSetup* pController, const SfxItemSet& _rItems)
- : OGeneralPage( pPage, pController, "dbaccess/ui/generalpagewizard.ui", _rItems )
- , m_xRB_CreateDatabase(m_xBuilder->weld_radio_button("createDatabase"))
- , m_xRB_OpenExistingDatabase(m_xBuilder->weld_radio_button("openExistingDatabase"))
- , m_xRB_ConnectDatabase(m_xBuilder->weld_radio_button("connectDatabase"))
- , m_xFT_EmbeddedDBLabel(m_xBuilder->weld_label("embeddeddbLabel"))
- , m_xEmbeddedDBType(m_xBuilder->weld_combo_box("embeddeddbList"))
- , m_xFT_DocListLabel(m_xBuilder->weld_label("docListLabel"))
- , m_xFT_HelpText(m_xBuilder->weld_label("helpText"))
- , m_xLB_DocumentList(new OpenDocumentListBox(m_xBuilder->weld_combo_box("documentList"), "com.sun.star.sdb.OfficeDatabaseDocument"))
- , m_xPB_OpenDatabase(new OpenDocumentButton(m_xBuilder->weld_button("openDatabase"), "com.sun.star.sdb.OfficeDatabaseDocument"))
- , m_xFT_NoEmbeddedDBLabel(m_xBuilder->weld_label("noembeddeddbLabel"))
+ : OGeneralPage( pPage, pController, u"dbaccess/ui/generalpagewizard.ui"_ustr, _rItems )
+ , m_xRB_CreateDatabase(m_xBuilder->weld_radio_button(u"createDatabase"_ustr))
+ , m_xRB_OpenExistingDatabase(m_xBuilder->weld_radio_button(u"openExistingDatabase"_ustr))
+ , m_xRB_ConnectDatabase(m_xBuilder->weld_radio_button(u"connectDatabase"_ustr))
+ , m_xFT_EmbeddedDBLabel(m_xBuilder->weld_label(u"embeddeddbLabel"_ustr))
+ , m_xEmbeddedDBType(m_xBuilder->weld_combo_box(u"embeddeddbList"_ustr))
+ , m_xFT_DocListLabel(m_xBuilder->weld_label(u"docListLabel"_ustr))
+ , m_xLB_DocumentList(new OpenDocumentListBox(m_xBuilder->weld_combo_box(u"documentList"_ustr), "com.sun.star.sdb.OfficeDatabaseDocument"))
+ , m_xPB_OpenDatabase(new OpenDocumentButton(m_xBuilder->weld_button(u"openDatabase"_ustr), u"com.sun.star.sdb.OfficeDatabaseDocument"_ustr))
+ , m_xFT_NoEmbeddedDBLabel(m_xBuilder->weld_label(u"noembeddeddbLabel"_ustr))
, m_eOriginalCreationMode(eCreateNew)
, m_bInitEmbeddedDBList(true)
, m_bIsDisplayedTypesEmpty(true)
@@ -463,16 +462,16 @@ namespace dbaui
// If no driver for embedded DBs is installed, and no dBase driver, then hide the "Create new database" option
sal_Int32 nCreateNewDBIndex = m_pCollection->getIndexOf( dbaccess::ODsnTypeCollection::getEmbeddedDatabase() );
if ( nCreateNewDBIndex == -1 )
- nCreateNewDBIndex = m_pCollection->getIndexOf( "sdbc:dbase:" );
+ nCreateNewDBIndex = m_pCollection->getIndexOf( u"sdbc:dbase:" );
bool bHideCreateNew = ( nCreateNewDBIndex == -1 );
// also, if our application policies tell us to hide the option, do it
::utl::OConfigurationTreeRoot aConfig( ::utl::OConfigurationTreeRoot::createWithComponentContext(
::comphelper::getProcessComponentContext(),
- "/org.openoffice.Office.DataAccess/Policies/Features/Base"
+ u"/org.openoffice.Office.DataAccess/Policies/Features/Base"_ustr
) );
bool bAllowCreateLocalDatabase( true );
- OSL_VERIFY( aConfig.getNodeValue( "CreateLocalDatabase" ) >>= bAllowCreateLocalDatabase );
+ OSL_VERIFY( aConfig.getNodeValue( u"CreateLocalDatabase"_ustr ) >>= bAllowCreateLocalDatabase );
if ( !bAllowCreateLocalDatabase )
bHideCreateNew = true;
@@ -486,9 +485,9 @@ namespace dbaui
// do some knittings
m_xEmbeddedDBType->connect_changed(LINK(this, OGeneralPageWizard, OnEmbeddedDBTypeSelected));
- m_xRB_CreateDatabase->connect_clicked( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
- m_xRB_ConnectDatabase->connect_clicked( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
- m_xRB_OpenExistingDatabase->connect_clicked( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
+ m_xRB_CreateDatabase->connect_toggled( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
+ m_xRB_ConnectDatabase->connect_toggled( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
+ m_xRB_OpenExistingDatabase->connect_toggled( LINK( this, OGeneralPageWizard, OnSetupModeSelected ) );
m_xLB_DocumentList->connect_changed( LINK( this, OGeneralPageWizard, OnDocumentSelected ) );
m_xPB_OpenDatabase->connect_clicked( LINK( this, OGeneralPageWizard, OnOpenDocument ) );
m_xFT_NoEmbeddedDBLabel->hide();
@@ -553,7 +552,7 @@ namespace dbaui
// Sets the default selected database on startup.
if (m_xRB_CreateDatabase->get_active() )
{
- return m_pCollection->getTypeDisplayName( "sdbc:firebird:" );
+ return m_pCollection->getTypeDisplayName( u"sdbc:firebird:" );
}
return OGeneralPage::getDatasourceName( _rSet );
@@ -566,7 +565,7 @@ namespace dbaui
case ::dbaccess::DST_MYSQL_JDBC:
case ::dbaccess::DST_MYSQL_ODBC:
case ::dbaccess::DST_MYSQL_NATIVE:
- _inout_rDisplayName = "MySQL";
+ _inout_rDisplayName = "MySQL/MariaDB";
break;
default:
break;
@@ -583,7 +582,7 @@ namespace dbaui
if ( m_xRB_CreateDatabase->get_active() )
{
- _rCoreAttrs->Put( SfxStringItem( DSID_CONNECTURL, "sdbc:dbase:" ) );
+ _rCoreAttrs->Put( SfxStringItem( DSID_CONNECTURL, u"sdbc:dbase:"_ustr ) );
bChangedSomething = true;
bCommitTypeSelection = false;
}
@@ -649,8 +648,10 @@ namespace dbaui
EnableControls();
}
- IMPL_LINK_NOARG( OGeneralPageWizard, OnSetupModeSelected, weld::Button&, void )
+ IMPL_LINK(OGeneralPageWizard, OnSetupModeSelected, weld::Toggleable&, rButton, void)
{
+ if (!rButton.get_active())
+ return;
SetupModeSelected();
}
@@ -663,7 +664,8 @@ namespace dbaui
{
::sfx2::FileDialogHelper aFileDlg(
ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION,
- FileDialogFlags::NONE, "sdatabase", SfxFilterFlags::NONE, SfxFilterFlags::NONE, GetFrameWeld());
+ FileDialogFlags::NONE, u"sdatabase"_ustr, SfxFilterFlags::NONE, SfxFilterFlags::NONE, GetFrameWeld());
+ aFileDlg.SetContext(sfx2::FileDialogHelper::BaseDataSource);
std::shared_ptr<const SfxFilter> pFilter = getStandardDatabaseFilter();
if ( pFilter )
{
@@ -676,7 +678,7 @@ namespace dbaui
// check for aFileDlg.GetCurrentFilter used to be here but current fpicker filter
// can be set to anything, see tdf#125267 how this breaks if other value
// than 'ODF Database' is selected. Let's therefore check only if wildcard matches
- if ( !pFilter->GetWildcard().Matches(sPath) )
+ if (pFilter && !pFilter->GetWildcard().Matches(sPath))
{
OUString sMessage(DBA_RES(STR_ERR_USE_CONNECT_TO));
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(GetFrameWeld(),
diff --git a/dbaccess/source/ui/dlg/generalpage.hxx b/dbaccess/source/ui/dlg/generalpage.hxx
index 68e7a90cbfa0..57ea5f5a4937 100644
--- a/dbaccess/source/ui/dlg/generalpage.hxx
+++ b/dbaccess/source/ui/dlg/generalpage.hxx
@@ -46,7 +46,7 @@ namespace dbaui
Link<OGeneralPage&,void> m_aTypeSelectHandler; /// to be called if a new type is selected
bool m_bInitTypeList : 1;
- bool approveDatasourceType( const OUString& _sURLPrefix, OUString& _inout_rDisplayName );
+ bool approveDatasourceType( std::u16string_view _sURLPrefix, OUString& _inout_rDisplayName );
void insertDatasourceTypeEntryData( const OUString& _sType, const OUString& sDisplayName );
protected:
@@ -90,7 +90,7 @@ namespace dbaui
void implSetCurrentType( const OUString& _eType );
- void switchMessage(const OUString& _sURLPrefix);
+ void switchMessage(std::u16string_view _sURLPrefix);
/// sets the title of the parent dialog
virtual void setParentTitle( const OUString& _sURLPrefix );
@@ -135,7 +135,6 @@ namespace dbaui
std::unique_ptr<weld::ComboBox> m_xEmbeddedDBType;
std::unique_ptr<weld::Label> m_xFT_DocListLabel;
- std::unique_ptr<weld::Label> m_xFT_HelpText;
std::unique_ptr<OpenDocumentListBox> m_xLB_DocumentList;
std::unique_ptr<OpenDocumentButton> m_xPB_OpenDatabase;
@@ -179,7 +178,7 @@ namespace dbaui
void SetupModeSelected();
DECL_LINK( OnEmbeddedDBTypeSelected, weld::ComboBox&, void );
- DECL_LINK( OnSetupModeSelected, weld::Button&, void );
+ DECL_LINK( OnSetupModeSelected, weld::Toggleable&, void );
DECL_LINK( OnDocumentSelected, weld::ComboBox&, void );
DECL_LINK( OnOpenDocument, weld::Button&, void );
};
diff --git a/dbaccess/source/ui/dlg/indexdialog.cxx b/dbaccess/source/ui/dlg/indexdialog.cxx
index fa24be183a09..160eafa192ec 100644
--- a/dbaccess/source/ui/dlg/indexdialog.cxx
+++ b/dbaccess/source/ui/dlg/indexdialog.cxx
@@ -65,21 +65,21 @@ namespace dbaui
const Reference< XNameAccess >& _rxIndexes,
const Reference< XConnection >& _rxConnection,
const Reference< XComponentContext >& _rxContext)
- : GenericDialogController(pParent, "dbaccess/ui/indexdesigndialog.ui", "IndexDesignDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/indexdesigndialog.ui"_ustr, u"IndexDesignDialog"_ustr)
, m_xConnection(_rxConnection)
, m_bEditingActive(false)
, m_bEditAgain(false)
, m_bNoHandlerCall(false)
, m_xContext(_rxContext)
- , m_xActions(m_xBuilder->weld_toolbar("ACTIONS"))
- , m_xIndexList(m_xBuilder->weld_tree_view("INDEX_LIST"))
- , m_xIndexDetails(m_xBuilder->weld_label("INDEX_DETAILS"))
- , m_xDescriptionLabel(m_xBuilder->weld_label("DESC_LABEL"))
- , m_xDescription(m_xBuilder->weld_label("DESCRIPTION"))
- , m_xUnique(m_xBuilder->weld_check_button("UNIQUE"))
- , m_xFieldsLabel(m_xBuilder->weld_label("FIELDS_LABEL"))
- , m_xClose(m_xBuilder->weld_button("close"))
- , m_xTable(m_xBuilder->weld_container("FIELDS"))
+ , m_xActions(m_xBuilder->weld_toolbar(u"ACTIONS"_ustr))
+ , m_xIndexList(m_xBuilder->weld_tree_view(u"INDEX_LIST"_ustr))
+ , m_xIndexDetails(m_xBuilder->weld_label(u"INDEX_DETAILS"_ustr))
+ , m_xDescriptionLabel(m_xBuilder->weld_label(u"DESC_LABEL"_ustr))
+ , m_xDescription(m_xBuilder->weld_label(u"DESCRIPTION"_ustr))
+ , m_xUnique(m_xBuilder->weld_check_button(u"UNIQUE"_ustr))
+ , m_xFieldsLabel(m_xBuilder->weld_label(u"FIELDS_LABEL"_ustr))
+ , m_xClose(m_xBuilder->weld_button(u"close"_ustr))
+ , m_xTable(m_xBuilder->weld_container(u"FIELDS"_ustr))
, m_xTableCtrlParent(m_xTable->CreateChildFrame())
, m_xFields(VclPtr<IndexFieldsControl>::Create(m_xTableCtrlParent))
{
@@ -92,7 +92,7 @@ namespace dbaui
m_xActions->connect_clicked(LINK(this, DbaIndexDialog, OnIndexAction));
- m_xIndexList->connect_changed(LINK(this, DbaIndexDialog, OnIndexSelected));
+ m_xIndexList->connect_selection_changed(LINK(this, DbaIndexDialog, OnIndexSelected));
m_xIndexList->connect_editing(LINK(this, DbaIndexDialog, OnEntryEditing),
LINK(this, DbaIndexDialog, OnEntryEdited));
@@ -116,7 +116,7 @@ namespace dbaui
fillIndexList();
- m_xUnique->connect_clicked(LINK(this, DbaIndexDialog, OnModifiedClick));
+ m_xUnique->connect_toggled(LINK(this, DbaIndexDialog, OnModifiedClick));
m_xFields->SetModifyHdl(LINK(this, DbaIndexDialog, OnModified));
m_xClose->connect_clicked(LINK(this, DbaIndexDialog, OnCloseDialog));
@@ -141,7 +141,7 @@ namespace dbaui
void DbaIndexDialog::updateToolbox()
{
- m_xActions->set_item_sensitive("ID_INDEX_NEW", !m_bEditingActive);
+ m_xActions->set_item_sensitive(u"ID_INDEX_NEW"_ustr, !m_bEditingActive);
int nSelected = m_xIndexList->get_selected_index();
bool bSelectedAnything = nSelected != -1;
@@ -149,17 +149,17 @@ namespace dbaui
{
// is the current entry modified?
Indexes::const_iterator aSelectedPos = m_xIndexes->begin() + m_xIndexList->get_id(nSelected).toUInt32();
- m_xActions->set_item_sensitive("ID_INDEX_SAVE", aSelectedPos->isModified() || aSelectedPos->isNew());
- m_xActions->set_item_sensitive("ID_INDEX_RESET", aSelectedPos->isModified() || aSelectedPos->isNew());
+ m_xActions->set_item_sensitive(u"ID_INDEX_SAVE"_ustr, aSelectedPos->isModified() || aSelectedPos->isNew());
+ m_xActions->set_item_sensitive(u"ID_INDEX_RESET"_ustr, aSelectedPos->isModified() || aSelectedPos->isNew());
bSelectedAnything = !aSelectedPos->bPrimaryKey;
}
else
{
- m_xActions->set_item_sensitive("ID_INDEX_SAVE", false);
- m_xActions->set_item_sensitive("ID_INDEX_RESET", false);
+ m_xActions->set_item_sensitive(u"ID_INDEX_SAVE"_ustr, false);
+ m_xActions->set_item_sensitive(u"ID_INDEX_RESET"_ustr, false);
}
- m_xActions->set_item_sensitive("ID_INDEX_DROP", bSelectedAnything);
- m_xActions->set_item_sensitive("ID_INDEX_RENAME", bSelectedAnything);
+ m_xActions->set_item_sensitive(u"ID_INDEX_DROP"_ustr, bSelectedAnything);
+ m_xActions->set_item_sensitive(u"ID_INDEX_RENAME"_ustr, bSelectedAnything);
}
void DbaIndexDialog::fillIndexList()
@@ -409,7 +409,7 @@ namespace dbaui
updateToolbox();
}
- IMPL_LINK(DbaIndexDialog, OnIndexAction, const OString&, rClicked, void)
+ IMPL_LINK(DbaIndexDialog, OnIndexAction, const OUString&, rClicked, void)
{
if (rClicked == "ID_INDEX_NEW")
OnNewIndex();
@@ -451,8 +451,8 @@ namespace dbaui
Indexes::const_iterator aSelected = m_xIndexes->begin() + m_xIndexList->get_id(*xSelected).toUInt32();
if (aSelected->isModified() || aSelected->isNew())
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xDialog.get(), "dbaccess/ui/saveindexdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("SaveIndexDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xDialog.get(), u"dbaccess/ui/saveindexdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"SaveIndexDialog"_ustr));
nResponse = xQuery->run();
}
}
@@ -537,28 +537,28 @@ namespace dbaui
bool DbaIndexDialog::implSaveModified(bool _bPlausibility)
{
- if (m_xPreviousSelection)
- {
- // try to commit the previously selected index
- if (m_xFields->IsModified() && !m_xFields->SaveModified())
- return false;
+ if (!m_xPreviousSelection)
+ return true;
- Indexes::iterator aPreviouslySelected = m_xIndexes->begin() + m_xIndexList->get_id(*m_xPreviousSelection).toUInt32();
+ // try to commit the previously selected index
+ if (m_xFields->IsModified() && !m_xFields->SaveModified())
+ return false;
- // the unique flag
- aPreviouslySelected->bUnique = m_xUnique->get_active();
- if (m_xUnique->get_state_changed_from_saved())
- aPreviouslySelected->setModified(true);
+ Indexes::iterator aPreviouslySelected = m_xIndexes->begin() + m_xIndexList->get_id(*m_xPreviousSelection).toUInt32();
- // the fields
- m_xFields->commitTo(aPreviouslySelected->aFields);
- if (m_xFields->GetSavedValue() != aPreviouslySelected->aFields)
- aPreviouslySelected->setModified(true);
+ // the unique flag
+ aPreviouslySelected->bUnique = m_xUnique->get_active();
+ if (m_xUnique->get_state_changed_from_saved())
+ aPreviouslySelected->setModified(true);
- // plausibility checks
- if (_bPlausibility && !implCheckPlausibility(aPreviouslySelected))
- return false;
- }
+ // the fields
+ m_xFields->commitTo(aPreviouslySelected->aFields);
+ if (m_xFields->GetSavedValue() != aPreviouslySelected->aFields)
+ aPreviouslySelected->setModified(true);
+
+ // plausibility checks
+ if (_bPlausibility && !implCheckPlausibility(aPreviouslySelected))
+ return false;
return true;
}
@@ -615,7 +615,7 @@ namespace dbaui
return true;
}
- IMPL_LINK_NOARG(DbaIndexDialog, OnModifiedClick, weld::Button&, void)
+ IMPL_LINK_NOARG(DbaIndexDialog, OnModifiedClick, weld::Toggleable&, void)
{
OnModified(*m_xFields);
}
@@ -641,7 +641,7 @@ namespace dbaui
m_xUnique->set_sensitive(!aSelectedIndex->bPrimaryKey);
m_xUnique->save_state();
- m_xFields->initializeFrom(aSelectedIndex->aFields);
+ m_xFields->initializeFrom(std::vector(aSelectedIndex->aFields));
m_xFields->Enable(!aSelectedIndex->bPrimaryKey);
m_xFields->SaveValue();
diff --git a/dbaccess/source/ui/dlg/indexfieldscontrol.cxx b/dbaccess/source/ui/dlg/indexfieldscontrol.cxx
index 2f378460c924..d8c1c962809b 100644
--- a/dbaccess/source/ui/dlg/indexfieldscontrol.cxx
+++ b/dbaccess/source/ui/dlg/indexfieldscontrol.cxx
@@ -20,6 +20,7 @@
#include <core_resource.hxx>
#include <indexfieldscontrol.hxx>
#include <strings.hrc>
+#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
#include <helpids.h>
#include <toolkit/helper/vclunohelper.hxx>
@@ -89,7 +90,7 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
::svt::EditBrowseBox::dispose();
}
- bool IndexFieldsControl::SeekRow(tools::Long nRow)
+ bool IndexFieldsControl::SeekRow(sal_Int32 nRow)
{
if (!EditBrowseBox::SeekRow(nRow))
return false;
@@ -137,10 +138,10 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
_rDev.SetClipRegion();
}
- void IndexFieldsControl::initializeFrom(const IndexFields& _rFields)
+ void IndexFieldsControl::initializeFrom(IndexFields&& _rFields)
{
// copy the field descriptions
- m_aFields = _rFields;
+ m_aFields = std::move(_rFields);
m_aSeekRow = m_aFields.end();
SetUpdateMode(false);
@@ -165,7 +166,7 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
_rFields.resize(aDest - _rFields.begin());
}
- sal_uInt32 IndexFieldsControl::GetTotalCellWidth(tools::Long _nRow, sal_uInt16 _nColId)
+ sal_uInt32 IndexFieldsControl::GetTotalCellWidth(sal_Int32 _nRow, sal_uInt16 _nColId)
{
if (COLUMN_ID_ORDER == _nColId)
{
@@ -227,13 +228,11 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
weld::ComboBox& rNameListBox = m_pFieldNameCell->get_widget();
rNameListBox.append_text(OUString());
rNameListBox.set_help_id(HID_DLGINDEX_INDEXDETAILS_FIELD);
- const OUString* pFields = _rAvailableFields.getConstArray();
- const OUString* pFieldsEnd = pFields + _rAvailableFields.getLength();
- for (;pFields < pFieldsEnd; ++pFields)
- rNameListBox.append_text(*pFields);
+ for (auto& text : _rAvailableFields)
+ rNameListBox.append_text(text);
}
- CellController* IndexFieldsControl::GetController(tools::Long _nRow, sal_uInt16 _nColumnId)
+ CellController* IndexFieldsControl::GetController(sal_Int32 _nRow, sal_uInt16 _nColumnId)
{
if (!IsEnabled())
return nullptr;
@@ -263,10 +262,10 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
return pReturn;
}
- bool IndexFieldsControl::implGetFieldDesc(tools::Long _nRow, IndexFields::const_iterator& _rPos)
+ bool IndexFieldsControl::implGetFieldDesc(sal_Int32 _nRow, IndexFields::const_iterator& _rPos)
{
_rPos = m_aFields.end();
- if ((_nRow < 0) || (_nRow >= static_cast<sal_Int32>(m_aFields.size())))
+ if ((_nRow < 0) || (o3tl::make_unsigned(_nRow) >= m_aFields.size()))
return false;
_rPos = m_aFields.begin() + _nRow;
return true;
@@ -343,7 +342,7 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
return true;
}
- void IndexFieldsControl::InitController(CellControllerRef& /*_rController*/, tools::Long _nRow, sal_uInt16 _nColumnId)
+ void IndexFieldsControl::InitController(CellControllerRef& /*_rController*/, sal_Int32 _nRow, sal_uInt16 _nColumnId)
{
IndexFields::const_iterator aFieldDescription;
bool bNewField = !implGetFieldDesc(_nRow, aFieldDescription);
@@ -407,7 +406,7 @@ constexpr auto BROWSER_STANDARD_FLAGS = BrowserMode::COLUMNSELECTION | BrowserMo
SaveModified();
}
- OUString IndexFieldsControl::GetCellText(tools::Long _nRow,sal_uInt16 nColId) const
+ OUString IndexFieldsControl::GetCellText(sal_Int32 _nRow,sal_uInt16 nColId) const
{
IndexFields::const_iterator aRow = m_aFields.end();
if ( _nRow >= 0 )
diff --git a/dbaccess/source/ui/dlg/odbcconfig.cxx b/dbaccess/source/ui/dlg/odbcconfig.cxx
index f3de8ba7037f..b2f3a45ff90d 100644
--- a/dbaccess/source/ui/dlg/odbcconfig.cxx
+++ b/dbaccess/source/ui/dlg/odbcconfig.cxx
@@ -61,10 +61,6 @@ typedef SQLRETURN (SQL_API* TSQLSetEnvAttr) (SQLHENV EnvironmentHandle, SQLINTEG
typedef SQLRETURN (SQL_API* TSQLDataSources) (SQLHENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR* ServerName,
SQLSMALLINT BufferLength1, SQLSMALLINT* NameLength1Ptr, SQLCHAR* Description, SQLSMALLINT BufferLength2, SQLSMALLINT* NameLength2Ptr);
-#define NSQLAllocHandle(a,b,c) (*reinterpret_cast<TSQLAllocHandle>(m_pAllocHandle))(a,b,c)
-#define NSQLFreeHandle(a,b) (*reinterpret_cast<TSQLFreeHandle>(m_pFreeHandle))(a,b)
-#define NSQLSetEnvAttr(a,b,c,d) (*reinterpret_cast<TSQLSetEnvAttr>(m_pSetEnvAttr))(a,b,c,d)
-#define NSQLDataSources(a,b,c,d,e,f,g,h) (*reinterpret_cast<TSQLDataSources>(m_pDataSources))(a,b,c,d,e,f,g,h)
#endif
// OOdbcLibWrapper
@@ -164,12 +160,12 @@ bool OOdbcEnumeration::allocEnv()
if (m_pImpl->hEnvironment)
// nothing to do
return true;
- SQLRETURN nResult = NSQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_pImpl->hEnvironment);
+ SQLRETURN nResult = (*reinterpret_cast<TSQLAllocHandle>(m_pAllocHandle))(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &m_pImpl->hEnvironment);
if (SQL_SUCCESS != nResult)
// can't do anything without environment
return false;
- NSQLSetEnvAttr(m_pImpl->hEnvironment, SQL_ATTR_ODBC_VERSION, reinterpret_cast<SQLPOINTER>(SQL_OV_ODBC3), SQL_IS_INTEGER);
+ (*reinterpret_cast<TSQLSetEnvAttr>(m_pSetEnvAttr))(m_pImpl->hEnvironment, SQL_ATTR_ODBC_VERSION, reinterpret_cast<SQLPOINTER>(SQL_OV_ODBC3),SQL_IS_INTEGER);
return true;
#else
return sal_False;
@@ -180,7 +176,7 @@ void OOdbcEnumeration::freeEnv()
{
#ifdef HAVE_ODBC_SUPPORT
if (m_pImpl->hEnvironment)
- NSQLFreeHandle(SQL_HANDLE_ENV, m_pImpl->hEnvironment);
+ (*reinterpret_cast<TSQLFreeHandle>(m_pFreeHandle))(SQL_HANDLE_ENV, m_pImpl->hEnvironment);
m_pImpl->hEnvironment = nullptr;
#endif
}
@@ -206,9 +202,11 @@ void OOdbcEnumeration::getDatasourceNames(std::set<OUString>& _rNames)
SQLRETURN nResult = SQL_SUCCESS;
rtl_TextEncoding nTextEncoding = osl_getThreadTextEncoding();
- for ( nResult = NSQLDataSources(m_pImpl->hEnvironment, SQL_FETCH_FIRST, szDSN, sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription);
+ for ( nResult = (*reinterpret_cast<TSQLDataSources>(m_pDataSources))(m_pImpl->hEnvironment, SQL_FETCH_FIRST, szDSN,
+ sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription);
;
- nResult = NSQLDataSources(m_pImpl->hEnvironment, SQL_FETCH_NEXT, szDSN, sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription)
+ nResult = (*reinterpret_cast<TSQLDataSources>(m_pDataSources))(m_pImpl->hEnvironment, SQL_FETCH_NEXT, szDSN,
+ sizeof(szDSN), &pcbDSN, szDescription, sizeof(szDescription)-1, &pcbDescription)
)
{
if (nResult != SQL_SUCCESS)
diff --git a/dbaccess/source/ui/dlg/optionalboolitem.cxx b/dbaccess/source/ui/dlg/optionalboolitem.cxx
index 5eb4b1272a15..30d176391ba4 100644
--- a/dbaccess/source/ui/dlg/optionalboolitem.cxx
+++ b/dbaccess/source/ui/dlg/optionalboolitem.cxx
@@ -25,7 +25,6 @@ namespace dbaui
// OptionalBoolItem
OptionalBoolItem::OptionalBoolItem( sal_uInt16 _nWhich )
:SfxPoolItem( _nWhich )
- ,m_aValue()
{
}
diff --git a/dbaccess/source/ui/dlg/optionalboolitem.hxx b/dbaccess/source/ui/dlg/optionalboolitem.hxx
index c500dfa2ac60..c319c5737d84 100644
--- a/dbaccess/source/ui/dlg/optionalboolitem.hxx
+++ b/dbaccess/source/ui/dlg/optionalboolitem.hxx
@@ -32,12 +32,13 @@ namespace dbaui
::std::optional< bool > m_aValue;
public:
+ DECLARE_ITEM_TYPE_FUNCTION(OptionalBoolItem)
explicit OptionalBoolItem( sal_uInt16 nWhich );
virtual bool operator==( const SfxPoolItem& _rItem ) const override;
virtual OptionalBoolItem* Clone( SfxItemPool* _pPool = nullptr ) const override;
- bool HasValue() const { return !!m_aValue; }
+ bool HasValue() const { return m_aValue.has_value(); }
void ClearValue() { m_aValue.reset(); }
bool GetValue() const { return *m_aValue; }
void SetValue(bool _bValue) { m_aValue = _bValue; }
diff --git a/dbaccess/source/ui/dlg/paramdialog.cxx b/dbaccess/source/ui/dlg/paramdialog.cxx
index a7bd8ae1538f..299ab8454594 100644
--- a/dbaccess/source/ui/dlg/paramdialog.cxx
+++ b/dbaccess/source/ui/dlg/paramdialog.cxx
@@ -27,18 +27,16 @@
#include <vcl/weld.hxx>
#include <o3tl/safeint.hxx>
#include <osl/diagnose.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::util;
- using namespace ::connectivity;
// OParameterDialog
@@ -46,15 +44,16 @@ namespace dbaui
OParameterDialog::OParameterDialog(
weld::Window* pParent, const Reference< XIndexAccess > & rParamContainer,
const Reference< XConnection > & _rxConnection, const Reference< XComponentContext >& rxContext)
- : GenericDialogController(pParent, "dbaccess/ui/parametersdialog.ui", "Parameters")
+ : GenericDialogController(pParent, u"dbaccess/ui/parametersdialog.ui"_ustr, u"Parameters"_ustr)
, m_nCurrentlySelected(-1)
, m_xConnection(_rxConnection)
, m_aPredicateInput( rxContext, _rxConnection, getParseContext() )
- , m_xAllParams(m_xBuilder->weld_tree_view("allParamTreeview"))
- , m_xParam(m_xBuilder->weld_entry("paramEntry"))
- , m_xTravelNext(m_xBuilder->weld_button("next"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
- , m_xCancelBtn(m_xBuilder->weld_button("cancel"))
+ , m_aResetVisitFlag("dbaccess OParameterDialog m_aResetVisitFlag")
+ , m_xAllParams(m_xBuilder->weld_tree_view(u"allParamTreeview"_ustr))
+ , m_xParam(m_xBuilder->weld_entry(u"paramEntry"_ustr))
+ , m_xTravelNext(m_xBuilder->weld_button(u"next"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xCancelBtn(m_xBuilder->weld_button(u"cancel"_ustr))
{
m_xAllParams->set_size_request(-1, m_xAllParams->get_height_rows(10));
@@ -110,7 +109,8 @@ namespace dbaui
void OParameterDialog::Construct()
{
- m_xAllParams->connect_changed(LINK(this, OParameterDialog, OnEntryListBoxSelected));
+ m_xAllParams->connect_selection_changed(
+ LINK(this, OParameterDialog, OnEntryListBoxSelected));
m_xParam->connect_focus_out(LINK(this, OParameterDialog, OnValueLoseFocusHdl));
m_xParam->connect_changed(LINK(this, OParameterDialog, OnValueModified));
m_xTravelNext->connect_clicked(LINK(this, OParameterDialog, OnButtonClicked));
@@ -123,15 +123,10 @@ namespace dbaui
OnEntrySelected();
if (m_xAllParams->n_children() == 1)
- {
m_xTravelNext->set_sensitive(false);
- }
if (m_xAllParams->n_children() > 1)
- {
- m_xOKBtn->set_has_default(false);
- m_xTravelNext->set_has_default(true);
- }
+ m_xDialog->change_default_widget(m_xOKBtn.get(), m_xTravelNext.get());
}
m_xParam->grab_focus();
@@ -279,7 +274,7 @@ namespace dbaui
return true;
}
- m_aFinalValues[m_nCurrentlySelected].Value <<= m_xParam->get_text();
+ m_aFinalValues.getArray()[m_nCurrentlySelected].Value <<= m_xParam->get_text();
}
// initialize the controls with the new values
@@ -321,8 +316,7 @@ namespace dbaui
if (!bVisited)
{
// yes, there isn't another one -> change the "default button"
- m_xTravelNext->set_has_default(false);
- m_xOKBtn->set_has_default(true);
+ m_xDialog->change_default_widget(m_xTravelNext.get(), m_xOKBtn.get());
}
}
diff --git a/dbaccess/source/ui/dlg/queryfilter.cxx b/dbaccess/source/ui/dlg/queryfilter.cxx
index 56db11946315..4ffd8d070249 100644
--- a/dbaccess/source/ui/dlg/queryfilter.cxx
+++ b/dbaccess/source/ui/dlg/queryfilter.cxx
@@ -25,18 +25,15 @@
#include <com/sun/star/sdb/SQLFilterOperator.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <comphelper/string.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <connectivity/dbtools.hxx>
#include <strings.hxx>
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
using namespace dbaui;
-using namespace connectivity;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
@@ -59,23 +56,23 @@ DlgFilterCrit::DlgFilterCrit(weld::Window * pParent,
const Reference< XConnection>& _rxConnection,
const Reference< XSingleSelectQueryComposer >& _rxComposer,
const Reference< XNameAccess>& _rxCols)
- : GenericDialogController(pParent, "dbaccess/ui/queryfilterdialog.ui", "QueryFilterDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/queryfilterdialog.ui"_ustr, u"QueryFilterDialog"_ustr)
, m_xQueryComposer(_rxComposer)
, m_xColumns( _rxCols )
, m_xConnection( _rxConnection )
, m_xMetaData( _rxConnection->getMetaData() )
, m_aPredicateInput( rxContext, _rxConnection, getParseContext() )
- , m_xLB_WHEREFIELD1(m_xBuilder->weld_combo_box("field1"))
- , m_xLB_WHERECOMP1(m_xBuilder->weld_combo_box("cond1"))
- , m_xET_WHEREVALUE1(m_xBuilder->weld_entry("value1"))
- , m_xLB_WHERECOND2(m_xBuilder->weld_combo_box("op2"))
- , m_xLB_WHEREFIELD2(m_xBuilder->weld_combo_box("field2"))
- , m_xLB_WHERECOMP2(m_xBuilder->weld_combo_box("cond2"))
- , m_xET_WHEREVALUE2(m_xBuilder->weld_entry("value2"))
- , m_xLB_WHERECOND3(m_xBuilder->weld_combo_box("op3"))
- , m_xLB_WHEREFIELD3(m_xBuilder->weld_combo_box("field3"))
- , m_xLB_WHERECOMP3(m_xBuilder->weld_combo_box("cond3"))
- , m_xET_WHEREVALUE3(m_xBuilder->weld_entry("value3"))
+ , m_xLB_WHEREFIELD1(m_xBuilder->weld_combo_box(u"field1"_ustr))
+ , m_xLB_WHERECOMP1(m_xBuilder->weld_combo_box(u"cond1"_ustr))
+ , m_xET_WHEREVALUE1(m_xBuilder->weld_entry(u"value1"_ustr))
+ , m_xLB_WHERECOND2(m_xBuilder->weld_combo_box(u"op2"_ustr))
+ , m_xLB_WHEREFIELD2(m_xBuilder->weld_combo_box(u"field2"_ustr))
+ , m_xLB_WHERECOMP2(m_xBuilder->weld_combo_box(u"cond2"_ustr))
+ , m_xET_WHEREVALUE2(m_xBuilder->weld_entry(u"value2"_ustr))
+ , m_xLB_WHERECOND3(m_xBuilder->weld_combo_box(u"op3"_ustr))
+ , m_xLB_WHEREFIELD3(m_xBuilder->weld_combo_box(u"field3"_ustr))
+ , m_xLB_WHERECOMP3(m_xBuilder->weld_combo_box(u"cond3"_ustr))
+ , m_xET_WHEREVALUE3(m_xBuilder->weld_entry(u"value3"_ustr))
{
//set all condition preferred width to max width
//if all entries exist
@@ -92,15 +89,12 @@ DlgFilterCrit::DlgFilterCrit(weld::Window * pParent,
m_xLB_WHERECOMP1->clear();
// ... also write it into the remaining fields
- Sequence< OUString> aNames = m_xColumns->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
Reference<XPropertySet> xColumn;
- for(;pIter != pEnd;++pIter)
+ for (auto& colName : m_xColumns->getElementNames())
{
try
{
- xColumn.set( m_xColumns->getByName( *pIter ), UNO_QUERY_THROW );
+ xColumn.set(m_xColumns->getByName(colName), UNO_QUERY_THROW);
sal_Int32 nDataType( 0 );
OSL_VERIFY( xColumn->getPropertyValue( PROPERTY_TYPE ) >>= nDataType );
@@ -117,21 +111,18 @@ DlgFilterCrit::DlgFilterCrit(weld::Window * pParent,
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_xLB_WHEREFIELD1->append_text( *pIter );
- m_xLB_WHEREFIELD2->append_text( *pIter );
- m_xLB_WHEREFIELD3->append_text( *pIter );
+ m_xLB_WHEREFIELD1->append_text(colName);
+ m_xLB_WHEREFIELD2->append_text(colName);
+ m_xLB_WHEREFIELD3->append_text(colName);
}
Reference<XNameAccess> xSelectColumns = Reference<XColumnsSupplier>(m_xQueryComposer,UNO_QUERY_THROW)->getColumns();
- aNames = xSelectColumns->getElementNames();
- pIter = aNames.getConstArray();
- pEnd = pIter + aNames.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& colName : xSelectColumns->getElementNames())
{
// don't insert a column name twice
- if ( !m_xColumns->hasByName(*pIter) )
+ if (!m_xColumns->hasByName(colName))
{
- xColumn.set(xSelectColumns->getByName(*pIter),UNO_QUERY);
+ xColumn.set(xSelectColumns->getByName(colName), UNO_QUERY);
OSL_ENSURE(xColumn.is(),"DlgFilterCrit::DlgFilterCrit: Column is null!");
sal_Int32 nDataType(0);
xColumn->getPropertyValue(PROPERTY_TYPE) >>= nDataType;
@@ -140,9 +131,9 @@ DlgFilterCrit::DlgFilterCrit(weld::Window * pParent,
// !pColumn->IsFunction()
if(eColumnSearch != ColumnSearch::NONE)
{
- m_xLB_WHEREFIELD1->append_text( *pIter );
- m_xLB_WHEREFIELD2->append_text( *pIter );
- m_xLB_WHEREFIELD3->append_text( *pIter );
+ m_xLB_WHEREFIELD1->append_text(colName);
+ m_xLB_WHEREFIELD2->append_text(colName);
+ m_xLB_WHEREFIELD3->append_text(colName);
}
}
}
@@ -180,10 +171,7 @@ DlgFilterCrit::~DlgFilterCrit()
{
}
-#define LbText(x) ((x).get_active_text())
-#define LbPos(x) ((x).get_active())
-
-sal_Int32 DlgFilterCrit::GetOSQLPredicateType( const OUString& _rSelectedPredicate ) const
+sal_Int32 DlgFilterCrit::GetOSQLPredicateType( std::u16string_view _rSelectedPredicate ) const
{
sal_Int32 nPredicateIndex = -1;
for ( size_t i=0; i < m_aSTR_COMPARE_OPERATORS.size(); ++i)
@@ -298,16 +286,16 @@ bool DlgFilterCrit::getCondition(const weld::ComboBox& _rField,const weld::Combo
{
// properly quote all parts of the table name, so
// e.g. <schema>.<table> becomes "<schema>"."<table>"
- OUString aCatlog,aSchema,aTable;
- ::dbtools::qualifiedNameComponents( m_xMetaData, sTableName, aCatlog, aSchema, aTable, ::dbtools::EComposeRule::InDataManipulation );
- sTableName = ::dbtools::composeTableName( m_xMetaData, aCatlog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
+ OUString aCatalog,aSchema,aTable;
+ ::dbtools::qualifiedNameComponents( m_xMetaData, sTableName, aCatalog, aSchema, aTable, ::dbtools::EComposeRule::InDataManipulation );
+ sTableName = ::dbtools::composeTableName( m_xMetaData, aCatalog, aSchema, aTable, true, ::dbtools::EComposeRule::InDataManipulation );
}
}
xColumn->getPropertyValue(PROPERTY_REALNAME) >>= _rFilter.Name;
- static const char sAgg[] = "AggregateFunction";
+ static constexpr OUString sAgg = u"AggregateFunction"_ustr;
if ( xInfo->hasPropertyByName(sAgg) )
xColumn->getPropertyValue(sAgg) >>= bHaving;
- static const char sFunction[] = "Function";
+ static constexpr OUString sFunction = u"Function"_ustr;
if ( xInfo->hasPropertyByName(sFunction) )
xColumn->getPropertyValue(sFunction) >>= bFunction;
}
@@ -351,20 +339,17 @@ Reference< XPropertySet > DlgFilterCrit::getColumn( const OUString& _rFieldName
Reference< XNameAccess> xColumns = Reference< XColumnsSupplier >(m_xQueryComposer,UNO_QUERY_THROW)->getColumns();
if ( xColumns.is() && !xColumn.is() )
{
- Sequence< OUString> aSeq = xColumns->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& colName : xColumns->getElementNames())
{
- Reference<XPropertySet> xProp(xColumns->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xProp(xColumns->getByName(colName), UNO_QUERY);
if ( xProp.is() && xProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_REALNAME) )
{
OUString sRealName;
xProp->getPropertyValue(PROPERTY_REALNAME) >>= sRealName;
if ( sRealName == _rFieldName )
{
- if ( m_xColumns.is() && m_xColumns->hasByName( *pIter ) )
- m_xColumns->getByName( *pIter ) >>= xColumn;
+ if (m_xColumns.is() && m_xColumns->hasByName(colName))
+ m_xColumns->getByName(colName) >>= xColumn;
break;
}
}
@@ -493,7 +478,7 @@ void DlgFilterCrit::SetLine( int nIdx, const PropertyValue& _rItem, bool _bOr )
pPredicateValueControl->set_text( aString );
}
-void DlgFilterCrit::SelectField(weld::ComboBox& rBox, const OUString& rField)
+void DlgFilterCrit::SelectField(weld::ComboBox& rBox, std::u16string_view rField)
{
const sal_Int32 nCnt = rBox.get_count();
@@ -512,7 +497,7 @@ void DlgFilterCrit::SelectField(weld::ComboBox& rBox, const OUString& rField)
void DlgFilterCrit::EnableLines()
{
// enabling/disabling of whole lines
- if( LbPos(*m_xLB_WHEREFIELD1) == 0 )
+ if( m_xLB_WHEREFIELD1->get_active() == 0 )
{
m_xLB_WHEREFIELD2->set_sensitive(false);
m_xLB_WHERECOND2->set_sensitive(false);
@@ -537,7 +522,7 @@ void DlgFilterCrit::EnableLines()
m_xET_WHEREVALUE3->set_sensitive(true);
}
- if( LbPos(*m_xLB_WHEREFIELD2) == 0 )
+ if( m_xLB_WHEREFIELD2->get_active() == 0 )
{
m_xLB_WHEREFIELD3->set_sensitive(false);
m_xLB_WHERECOND3->set_sensitive(false);
@@ -553,7 +538,7 @@ void DlgFilterCrit::EnableLines()
}
// comparison field equal to NOENTRY
- if( LbPos(*m_xLB_WHEREFIELD1) == 0 )
+ if( m_xLB_WHEREFIELD1->get_active() == 0 )
{
m_xLB_WHERECOMP1->set_sensitive(false);
m_xET_WHEREVALUE1->set_sensitive(false);
@@ -565,7 +550,7 @@ void DlgFilterCrit::EnableLines()
m_xET_WHEREVALUE1->set_sensitive(true);
}
- if( LbPos(*m_xLB_WHEREFIELD2) == 0 )
+ if( m_xLB_WHEREFIELD2->get_active() == 0 )
{
m_xLB_WHERECOND2->set_sensitive(false);
m_xLB_WHERECOMP2->set_sensitive(false);
@@ -579,7 +564,7 @@ void DlgFilterCrit::EnableLines()
m_xET_WHEREVALUE2->set_sensitive(true);
}
- if( LbPos(*m_xLB_WHEREFIELD3) == 0 )
+ if( m_xLB_WHEREFIELD3->get_active() == 0 )
{
m_xLB_WHERECOND3->set_sensitive(false);
m_xLB_WHERECOMP3->set_sensitive(false);
@@ -596,18 +581,18 @@ void DlgFilterCrit::EnableLines()
// comparison operator equal to ISNULL or ISNOTNULL
if(m_xLB_WHERECOMP1->get_count() > 2 &&
- ((LbPos(*m_xLB_WHERECOMP1) == m_xLB_WHERECOMP1->get_count()-1) ||
- (LbPos(*m_xLB_WHERECOMP1) == m_xLB_WHERECOMP1->get_count()-2)) )
+ ((m_xLB_WHERECOMP1->get_active() == m_xLB_WHERECOMP1->get_count()-1) ||
+ (m_xLB_WHERECOMP1->get_active() == m_xLB_WHERECOMP1->get_count()-2)) )
m_xET_WHEREVALUE1->set_sensitive(false);
if(m_xLB_WHERECOMP2->get_count() > 2 &&
- ((LbPos(*m_xLB_WHERECOMP2) == m_xLB_WHERECOMP2->get_count()-1) ||
- (LbPos(*m_xLB_WHERECOMP2) == m_xLB_WHERECOMP2->get_count()-2)) )
+ ((m_xLB_WHERECOMP2->get_active() == m_xLB_WHERECOMP2->get_count()-1) ||
+ (m_xLB_WHERECOMP2->get_active() == m_xLB_WHERECOMP2->get_count()-2)) )
m_xET_WHEREVALUE2->set_sensitive(false);
if(m_xLB_WHERECOMP3->get_count() > 2 &&
- ((LbPos(*m_xLB_WHERECOMP3) == m_xLB_WHERECOMP3->get_count()-1) ||
- (LbPos(*m_xLB_WHERECOMP3) == m_xLB_WHERECOMP3->get_count()-2)) )
+ ((m_xLB_WHERECOMP3->get_active() == m_xLB_WHERECOMP3->get_count()-1) ||
+ (m_xLB_WHERECOMP3->get_active() == m_xLB_WHERECOMP3->get_count()-2)) )
m_xET_WHEREVALUE3->set_sensitive(false);
}
@@ -617,17 +602,17 @@ IMPL_LINK( DlgFilterCrit, ListSelectHdl, weld::ComboBox&, rListBox, void )
weld::ComboBox* pComp;
if(&rListBox == m_xLB_WHEREFIELD1.get())
{
- aName = LbText(*m_xLB_WHEREFIELD1);
+ aName = m_xLB_WHEREFIELD1->get_active_text();
pComp = m_xLB_WHERECOMP1.get();
}
else if(&rListBox == m_xLB_WHEREFIELD2.get())
{
- aName = LbText(*m_xLB_WHEREFIELD2);
+ aName = m_xLB_WHEREFIELD2->get_active_text();
pComp = m_xLB_WHERECOMP2.get();
}
else
{
- aName = LbText(*m_xLB_WHEREFIELD3);
+ aName = m_xLB_WHEREFIELD3->get_active_text();
pComp = m_xLB_WHERECOMP3.get();
}
@@ -675,71 +660,49 @@ IMPL_LINK_NOARG(DlgFilterCrit, ListSelectCompHdl, weld::ComboBox&, void)
void DlgFilterCrit::BuildWherePart()
{
- Sequence<Sequence<PropertyValue> > aFilter,aHaving;
- aFilter.realloc(1);
- aHaving.realloc(1);
+ Sequence<Sequence<PropertyValue> > aFilter(1),aHaving(1);
- if( LbPos(*m_xLB_WHEREFIELD1) != 0 )
+ if( m_xLB_WHEREFIELD1->get_active() != 0 )
{
PropertyValue aValue;
if ( getCondition(*m_xLB_WHEREFIELD1,*m_xLB_WHERECOMP1,*m_xET_WHEREVALUE1,aValue) )
{
- aHaving[0].realloc(1);
- aHaving[0][0] = aValue;
+ aHaving = { { std::move(aValue) } };
}
else
{
- aFilter[0].realloc(1);
- aFilter[0][0] = aValue;
+ aFilter = { { std::move(aValue) } };
}
}
- if( LbPos(*m_xLB_WHEREFIELD2) != 0 )
+ if( m_xLB_WHEREFIELD2->get_active() != 0 )
{
PropertyValue aValue;
Sequence<Sequence<PropertyValue> >& _rValues = aFilter;
if ( getCondition(*m_xLB_WHEREFIELD2,*m_xLB_WHERECOMP2,*m_xET_WHEREVALUE2,aValue) )
_rValues = aHaving;
- PropertyValue* pPos = nullptr;
if ( m_xLB_WHERECOND2->get_active() )
- {
- sal_Int32 nPos = _rValues.getLength();
- _rValues.realloc( nPos + 1);
- _rValues[nPos].realloc( 1);
- pPos = &_rValues[nPos][0];
- }
- else
- {
- sal_Int32 nPos = _rValues.getLength() - 1;
- sal_Int32 nAndPos = _rValues[nPos].getLength();
- _rValues[nPos].realloc( _rValues[nPos].getLength() + 1);
- pPos = &_rValues[nPos][nAndPos];
- }
- *pPos = aValue;
+ _rValues.realloc( _rValues.getLength() + 1);
+ sal_Int32 nPos = _rValues.getLength() - 1;
+ sal_Int32 nAndPos = _rValues[nPos].getLength();
+ auto pValues = _rValues.getArray();
+ pValues[nPos].realloc( _rValues[nPos].getLength() + 1);
+ pValues[nPos].getArray()[nAndPos] = std::move(aValue);
}
- if( LbPos(*m_xLB_WHEREFIELD3) != 0 )
+ if( m_xLB_WHEREFIELD3->get_active() != 0 )
{
PropertyValue aValue;
Sequence<Sequence<PropertyValue> >& _rValues = aFilter;
if ( getCondition(*m_xLB_WHEREFIELD3,*m_xLB_WHERECOMP3,*m_xET_WHEREVALUE3,aValue) )
_rValues = aHaving;
- PropertyValue* pPos = nullptr;
if (m_xLB_WHERECOND3->get_active())
- {
- sal_Int32 nPos = _rValues.getLength();
- _rValues.realloc( nPos + 1);
- _rValues[nPos].realloc( 1);
- pPos = &_rValues[nPos][0];
- }
- else
- {
- sal_Int32 nPos = _rValues.getLength() - 1;
- sal_Int32 nAndPos = _rValues[nPos].getLength();
- _rValues[nPos].realloc( _rValues[nPos].getLength() + 1);
- pPos = &_rValues[nPos][nAndPos];
- }
- *pPos = aValue;
+ _rValues.realloc( _rValues.getLength() + 1);
+ sal_Int32 nPos = _rValues.getLength() - 1;
+ sal_Int32 nAndPos = _rValues[nPos].getLength();
+ auto pValues = _rValues.getArray();
+ pValues[nPos].realloc( _rValues[nPos].getLength() + 1);
+ pValues[nPos].getArray()[nAndPos] = std::move(aValue);
}
try
{
@@ -754,16 +717,12 @@ void DlgFilterCrit::BuildWherePart()
void DlgFilterCrit::fillLines(int &i, const Sequence< Sequence< PropertyValue > >& _aValues)
{
- const Sequence<PropertyValue >* pOrIter = _aValues.getConstArray();
- const Sequence<PropertyValue >* pOrEnd = pOrIter + _aValues.getLength();
bool bOr(i != 0); // WHERE clause and HAVING clause are always ANDed, nor ORed
- for(; pOrIter != pOrEnd; ++pOrIter)
+ for (auto& rOr : _aValues)
{
- const PropertyValue* pAndIter = pOrIter->getConstArray();
- const PropertyValue* pAndEnd = pAndIter + pOrIter->getLength();
- for(;pAndIter != pAndEnd; ++pAndIter)
+ for (auto& rAnd : rOr)
{
- SetLine( i++,*pAndIter,bOr);
+ SetLine(i++, rAnd, bOr);
bOr = false;
}
bOr=true;
diff --git a/dbaccess/source/ui/dlg/queryorder.cxx b/dbaccess/source/ui/dlg/queryorder.cxx
index f06935f5e72b..2afbfed14eb5 100644
--- a/dbaccess/source/ui/dlg/queryorder.cxx
+++ b/dbaccess/source/ui/dlg/queryorder.cxx
@@ -27,16 +27,13 @@
#include <com/sun/star/container/XNameAccess.hpp>
#include <connectivity/dbtools.hxx>
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
using namespace dbaui;
-using namespace connectivity;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::beans;
@@ -44,16 +41,16 @@ DlgOrderCrit::DlgOrderCrit(weld::Window * pParent,
const Reference< XConnection>& _rxConnection,
const Reference< XSingleSelectQueryComposer >& _rxComposer,
const Reference< XNameAccess>& _rxCols)
- : GenericDialogController(pParent, "dbaccess/ui/sortdialog.ui", "SortDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/sortdialog.ui"_ustr, u"SortDialog"_ustr)
, m_xQueryComposer(_rxComposer)
, m_xColumns(_rxCols)
, m_xConnection(_rxConnection)
- , m_xLB_ORDERFIELD1(m_xBuilder->weld_combo_box("field1"))
- , m_xLB_ORDERVALUE1(m_xBuilder->weld_combo_box("value1"))
- , m_xLB_ORDERFIELD2(m_xBuilder->weld_combo_box("field2"))
- , m_xLB_ORDERVALUE2(m_xBuilder->weld_combo_box("value2"))
- , m_xLB_ORDERFIELD3(m_xBuilder->weld_combo_box("field3"))
- , m_xLB_ORDERVALUE3(m_xBuilder->weld_combo_box("value3"))
+ , m_xLB_ORDERFIELD1(m_xBuilder->weld_combo_box(u"field1"_ustr))
+ , m_xLB_ORDERVALUE1(m_xBuilder->weld_combo_box(u"value1"_ustr))
+ , m_xLB_ORDERFIELD2(m_xBuilder->weld_combo_box(u"field2"_ustr))
+ , m_xLB_ORDERVALUE2(m_xBuilder->weld_combo_box(u"value2"_ustr))
+ , m_xLB_ORDERFIELD3(m_xBuilder->weld_combo_box(u"field3"_ustr))
+ , m_xLB_ORDERVALUE3(m_xBuilder->weld_combo_box(u"value3"_ustr))
{
m_aColumnList[0] = m_xLB_ORDERFIELD1.get();
m_aColumnList[1] = m_xLB_ORDERFIELD2.get();
@@ -77,13 +74,10 @@ DlgOrderCrit::DlgOrderCrit(weld::Window * pParent,
try
{
// ... also the remaining fields
- Sequence< OUString> aNames = m_xColumns->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
Reference<XPropertySet> xColumn;
- for(;pIter != pEnd;++pIter)
+ for (auto& name : m_xColumns->getElementNames())
{
- xColumn.set(m_xColumns->getByName(*pIter),UNO_QUERY);
+ xColumn.set(m_xColumns->getByName(name), UNO_QUERY);
OSL_ENSURE(xColumn.is(),"Column is null!");
if ( xColumn.is() )
{
@@ -94,7 +88,7 @@ DlgOrderCrit::DlgOrderCrit(weld::Window * pParent,
{
for (auto j : m_aColumnList)
{
- j->append_text(*pIter);
+ j->append_text(name);
}
}
}
@@ -126,8 +120,8 @@ void DlgOrderCrit::impl_initializeOrderList_nothrow()
{
try
{
- const OUString sNameProperty = "Name";
- const OUString sAscendingProperty = "IsAscending";
+ static constexpr OUStringLiteral sNameProperty = u"Name";
+ static constexpr OUStringLiteral sAscendingProperty = u"IsAscending";
Reference< XIndexAccess > xOrderColumns( m_xQueryComposer->getOrderColumns(), UNO_SET_THROW );
sal_Int32 nColumns = xOrderColumns->getCount();
diff --git a/dbaccess/source/ui/dlg/sqlmessage.cxx b/dbaccess/source/ui/dlg/sqlmessage.cxx
index 39ba6dc8eed1..60b533f90c19 100644
--- a/dbaccess/source/ui/dlg/sqlmessage.cxx
+++ b/dbaccess/source/ui/dlg/sqlmessage.cxx
@@ -22,6 +22,7 @@
#include <strings.hrc>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdb/SQLContext.hpp>
+#include <utility>
#include <vcl/stdtext.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
@@ -50,8 +51,8 @@ namespace
OUString m_defaultImageID;
public:
- explicit ImageProvider(const OUString& defaultImageID)
- : m_defaultImageID(defaultImageID)
+ explicit ImageProvider(OUString defaultImageID)
+ : m_defaultImageID(std::move(defaultImageID))
{
}
@@ -66,7 +67,7 @@ namespace
private:
OUString m_label;
public:
- explicit LabelProvider(const char* labelResourceID)
+ explicit LabelProvider(TranslateId labelResourceID)
: m_label(DBA_RES(labelResourceID))
{
}
@@ -95,7 +96,7 @@ namespace
std::shared_ptr< ImageProvider > const & getImageProvider( SQLExceptionInfo::TYPE _eType ) const
{
std::shared_ptr< ImageProvider >* ppProvider( &m_pErrorImage );
- OUString sNormalImageID("dialog-error");
+ OUString sNormalImageID(u"dialog-error"_ustr);
switch ( _eType )
{
@@ -121,7 +122,7 @@ namespace
std::shared_ptr< LabelProvider > const & getLabelProvider( SQLExceptionInfo::TYPE _eType, bool _bSubLabel ) const
{
std::shared_ptr< LabelProvider >* ppProvider( &m_pErrorLabel );
- const char* pLabelID( STR_EXCEPTION_ERROR );
+ TranslateId pLabelID( STR_EXCEPTION_ERROR );
switch ( _eType )
{
@@ -196,10 +197,7 @@ namespace
void lcl_buildExceptionChain( const SQLExceptionInfo& _rErrorInfo, const ProviderFactory& _rFactory, ExceptionDisplayChain& _out_rChain )
{
- {
- ExceptionDisplayChain empty;
- _out_rChain.swap( empty );
- }
+ ExceptionDisplayChain().swap(_out_rChain);
SQLExceptionIteratorHelper iter( _rErrorInfo );
while ( iter.hasMoreElements() )
@@ -209,7 +207,7 @@ namespace
iter.next( aCurrentElement );
const SQLException* pCurrentError = aCurrentElement;
- OSL_ENSURE( pCurrentError, "lcl_buildExceptionChain: iterator failure!" );
+ assert(pCurrentError && "lcl_buildExceptionChain: iterator failure!");
// hasMoreElements should not have returned <TRUE/> in this case
ExceptionDisplayInfo aDisplayInfo( aCurrentElement.getType() );
@@ -269,7 +267,7 @@ class OExceptionChainDialog : public weld::GenericDialogController
ExceptionDisplayChain m_aExceptions;
public:
- OExceptionChainDialog(weld::Window* pParent, const ExceptionDisplayChain& rExceptions);
+ OExceptionChainDialog(weld::Window* pParent, ExceptionDisplayChain&& rExceptions);
protected:
DECL_LINK(OnExceptionSelected, weld::TreeView&, void);
@@ -277,11 +275,11 @@ protected:
}
-OExceptionChainDialog::OExceptionChainDialog(weld::Window* pParent, const ExceptionDisplayChain& rExceptions)
- : GenericDialogController(pParent, "dbaccess/ui/sqlexception.ui", "SQLExceptionDialog")
- , m_xExceptionList(m_xBuilder->weld_tree_view("list"))
- , m_xExceptionText(m_xBuilder->weld_text_view("description"))
- , m_aExceptions(rExceptions)
+OExceptionChainDialog::OExceptionChainDialog(weld::Window* pParent, ExceptionDisplayChain&& rExceptions)
+ : GenericDialogController(pParent, u"dbaccess/ui/sqlexception.ui"_ustr, u"SQLExceptionDialog"_ustr)
+ , m_xExceptionList(m_xBuilder->weld_tree_view(u"list"_ustr))
+ , m_xExceptionText(m_xBuilder->weld_text_view(u"description"_ustr))
+ , m_aExceptions(std::move(rExceptions))
{
int nListWidth = m_xExceptionText->get_approximate_digit_width() * 28;
int nTextWidth = m_xExceptionText->get_approximate_digit_width() * 42;
@@ -292,7 +290,8 @@ OExceptionChainDialog::OExceptionChainDialog(weld::Window* pParent, const Except
m_sStatusLabel = DBA_RES( STR_EXCEPTION_STATUS );
m_sErrorCodeLabel = DBA_RES( STR_EXCEPTION_ERRORCODE );
- m_xExceptionList->connect_changed(LINK(this, OExceptionChainDialog, OnExceptionSelected));
+ m_xExceptionList->connect_selection_changed(
+ LINK(this, OExceptionChainDialog, OnExceptionSelected));
bool bHave22018 = false;
size_t elementPos = 0;
@@ -484,7 +483,7 @@ void OSQLMessageBox::impl_createStandardButtons( MessBoxStyle _nStyle )
else
aTmp = m_sHelpURL;
- m_xDialog->set_help_id(OUStringToOString(aTmp, RTL_TEXTENCODING_UTF8));
+ m_xDialog->set_help_id(aTmp);
}
void OSQLMessageBox::impl_addDetailsButton()
@@ -509,7 +508,7 @@ void OSQLMessageBox::impl_addDetailsButton()
if ( bMoreDetailsAvailable )
{
m_xDialog->add_button(GetStandardText(StandardButtonType::More), RET_MORE);
- m_xMoreButton.reset(m_xDialog->weld_widget_for_response(RET_MORE));
+ m_xMoreButton = m_xDialog->weld_button_for_response(RET_MORE);
m_xMoreButton->connect_clicked(LINK(this, OSQLMessageBox, ButtonClickHdl));
}
}
@@ -548,7 +547,7 @@ void OSQLMessageBox::Construct(weld::Window* pParent, MessBoxStyle _nStyle, Mess
break;
}
- m_xDialog.reset(Application::CreateMessageDialog(pParent, eMessageType, VclButtonsType::NONE, ""));
+ m_xDialog.reset(Application::CreateMessageDialog(pParent, eMessageType, VclButtonsType::NONE, u""_ustr));
m_xDialog->set_title(utl::ConfigManager::getProductName() + " Base");
impl_fillMessages();
@@ -558,20 +557,19 @@ void OSQLMessageBox::Construct(weld::Window* pParent, MessBoxStyle _nStyle, Mess
impl_addDetailsButton();
}
-OSQLMessageBox::OSQLMessageBox(weld::Window* pParent, const SQLExceptionInfo& rException, MessBoxStyle nStyle, const OUString& rHelpURL)
+OSQLMessageBox::OSQLMessageBox(weld::Window* pParent, const SQLExceptionInfo& rException, MessBoxStyle nStyle, OUString sHelpURL)
: m_pImpl(new SQLMessageBox_Impl(rException))
- , m_sHelpURL(rHelpURL)
+ , m_sHelpURL(std::move(sHelpURL))
{
Construct(pParent, nStyle, AUTO);
}
OSQLMessageBox::OSQLMessageBox(weld::Window* pParent, const OUString& rTitle, const OUString& rMessage, MessBoxStyle nStyle, MessageType eType, const ::dbtools::SQLExceptionInfo* pAdditionalErrorInfo )
{
- SQLContext aError;
- aError.Message = rTitle;
- aError.Details = rMessage;
+ css::uno::Any next;
if (pAdditionalErrorInfo)
- aError.NextException = pAdditionalErrorInfo->get();
+ next = pAdditionalErrorInfo->get();
+ SQLContext aError(rTitle, {}, {}, 0, next, rMessage);
m_pImpl.reset(new SQLMessageBox_Impl(SQLExceptionInfo(aError)));
@@ -584,7 +582,7 @@ OSQLMessageBox::~OSQLMessageBox()
IMPL_LINK_NOARG(OSQLMessageBox, ButtonClickHdl, weld::Button&, void)
{
- OExceptionChainDialog aDlg(m_xDialog.get(), m_pImpl->aDisplayInfo);
+ OExceptionChainDialog aDlg(m_xDialog.get(), std::vector(m_pImpl->aDisplayInfo));
aDlg.run();
}
diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx
index 180d84eacdd4..06ff0c0e4373 100644
--- a/dbaccess/source/ui/dlg/tablespage.cxx
+++ b/dbaccess/source/ui/dlg/tablespage.cxx
@@ -32,7 +32,7 @@
#include <UITools.hxx>
#include <osl/diagnose.h>
#include <TablesSingleDlg.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <cppuhelper/exc_hlp.hxx>
namespace dbaui
@@ -40,22 +40,19 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
- using namespace ::com::sun::star::sdbcx;
- using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
using namespace ::dbtools;
using namespace ::comphelper;
// OTableSubscriptionPage
OTableSubscriptionPage::OTableSubscriptionPage(weld::Container* pPage, OTableSubscriptionDialog* pTablesDlg, const SfxItemSet& _rCoreAttrs)
- : OGenericAdministrationPage(pPage, pTablesDlg, "dbaccess/ui/tablesfilterpage.ui", "TablesFilterPage", _rCoreAttrs)
+ : OGenericAdministrationPage(pPage, pTablesDlg, u"dbaccess/ui/tablesfilterpage.ui"_ustr, u"TablesFilterPage"_ustr, _rCoreAttrs)
, m_bCatalogAtStart(true)
, m_pTablesDlg(pTablesDlg)
- , m_xTables(m_xBuilder->weld_widget("TablesFilterPage"))
- , m_xTablesList(new OTableTreeListBox(m_xBuilder->weld_tree_view("treeview"), true))
+ , m_xTables(m_xBuilder->weld_widget(u"TablesFilterPage"_ustr))
+ , m_xTablesList(new OTableTreeListBox(m_xBuilder->weld_tree_view(u"treeview"_ustr), true))
{
m_xTablesList->init();
@@ -204,10 +201,10 @@ namespace dbaui
Reference<XModifiable> xModi(getDataSourceOrModel(xProp),UNO_QUERY);
bool bModified = ( xModi.is() && xModi->isModified() );
- Sequence< OUString > aNewTableFilter { "%" };
- xProp->setPropertyValue(PROPERTY_TABLEFILTER,makeAny(aNewTableFilter));
+ Sequence< OUString > aNewTableFilter { u"%"_ustr };
+ xProp->setPropertyValue(PROPERTY_TABLEFILTER,Any(aNewTableFilter));
- xProp->setPropertyValue( PROPERTY_TABLETYPEFILTER, makeAny( Sequence< OUString >() ) );
+ xProp->setPropertyValue( PROPERTY_TABLETYPEFILTER, Any( Sequence< OUString >() ) );
Reference< css::lang::XEventListener> xEvt;
aErrorInfo = ::dbaui::createConnection(xProp, m_xORB, xEvt, m_xCurrentConnection);
@@ -335,7 +332,7 @@ namespace dbaui
Sequence< OUString > OTableSubscriptionPage::collectDetailedSelection() const
{
Sequence< OUString > aTableFilter;
- static const char sWildcard[] = "%";
+ static constexpr OUString sWildcard = u"%"_ustr;
std::unique_ptr<weld::TreeIter> xAllObjectsEntry(m_xTablesList->getAllObjectsEntry());
if (!xAllObjectsEntry)
@@ -381,7 +378,7 @@ namespace dbaui
bCatalogWildcard = m_xTablesList->isWildcardChecked(*xCatalog);
if (m_bCatalogAtStart)
{
- sComposedName.append(m_xTablesList->GetWidget().get_text(*xCatalog)).append(m_sCatalogSeparator);
+ sComposedName.append(m_xTablesList->GetWidget().get_text(*xCatalog) + m_sCatalogSeparator);
if (bCatalogWildcard)
sComposedName.append(sWildcard);
}
@@ -396,7 +393,7 @@ namespace dbaui
}
}
bSchemaWildcard = m_xTablesList->isWildcardChecked(*xSchema);
- sComposedName.append(m_xTablesList->GetWidget().get_text(*xSchema)).append(".");
+ sComposedName.append(m_xTablesList->GetWidget().get_text(*xSchema) + ".");
}
if (bSchemaWildcard)
@@ -412,7 +409,7 @@ namespace dbaui
sal_Int32 nOldLen = aTableFilter.getLength();
aTableFilter.realloc(nOldLen + 1);
// add the new name
- aTableFilter[nOldLen] = sComposedName.makeStringAndClear();
+ aTableFilter.getArray()[nOldLen] = sComposedName.makeStringAndClear();
}
if (bCatalogWildcard)
@@ -463,8 +460,7 @@ namespace dbaui
auto xRoot = m_xTablesList->getAllObjectsEntry();
if (xRoot && m_xTablesList->isWildcardChecked(*xRoot))
{
- aTableFilter.realloc(1);
- aTableFilter[0] = "%";
+ aTableFilter = { u"%"_ustr };
}
else
{
diff --git a/dbaccess/source/ui/dlg/textconnectionsettings.cxx b/dbaccess/source/ui/dlg/textconnectionsettings.cxx
index 5076b3d328c3..224b24e5fe79 100644
--- a/dbaccess/source/ui/dlg/textconnectionsettings.cxx
+++ b/dbaccess/source/ui/dlg/textconnectionsettings.cxx
@@ -26,10 +26,10 @@ namespace dbaui
{
// TextConnectionSettingsDialog
TextConnectionSettingsDialog::TextConnectionSettingsDialog(weld::Window* pParent, SfxItemSet& rItems)
- : GenericDialogController(pParent, "dbaccess/ui/textconnectionsettings.ui", "TextConnectionSettingsDialog")
+ : GenericDialogController(pParent, u"dbaccess/ui/textconnectionsettings.ui"_ustr, u"TextConnectionSettingsDialog"_ustr)
, m_rItems(rItems)
- , m_xContainer(m_xBuilder->weld_widget("TextPageContainer"))
- , m_xOK(m_xBuilder->weld_button("ok"))
+ , m_xContainer(m_xBuilder->weld_widget(u"TextPageContainer"_ustr))
+ , m_xOK(m_xBuilder->weld_button(u"ok"_ustr))
, m_xTextConnectionHelper(new OTextConnectionHelper(m_xContainer.get(), TC_HEADER | TC_SEPARATORS | TC_CHARSET))
{
m_xOK->connect_clicked(LINK(this, TextConnectionSettingsDialog, OnOK));
diff --git a/dbaccess/source/ui/inc/AppElementType.hxx b/dbaccess/source/ui/inc/AppElementType.hxx
index 59105cf225f7..b7265e5af663 100644
--- a/dbaccess/source/ui/inc/AppElementType.hxx
+++ b/dbaccess/source/ui/inc/AppElementType.hxx
@@ -34,18 +34,18 @@ namespace dbaui
E_ELEMENT_TYPE_COUNT = E_NONE
};
- enum PreviewMode
+ enum class PreviewMode
{
- E_PREVIEWNONE = 0,
- E_DOCUMENT = 1,
- E_DOCUMENTINFO = 2
+ NONE = 0,
+ Document = 1,
+ DocumentInfo = 2
};
- enum ElementOpenMode
+ enum class ElementOpenMode
{
- E_OPEN_NORMAL,
- E_OPEN_DESIGN,
- E_OPEN_FOR_MAIL
+ Normal,
+ Design,
+ Mail
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/inc/ChildWindow.hxx b/dbaccess/source/ui/inc/ChildWindow.hxx
index 8da6c8570dea..c2f68ac46f78 100644
--- a/dbaccess/source/ui/inc/ChildWindow.hxx
+++ b/dbaccess/source/ui/inc/ChildWindow.hxx
@@ -16,7 +16,7 @@ namespace dbaui
class OChildWindow
{
protected:
- OChildWindow(weld::Container* pParent, const OUString& rUIXMLDescription, const OString& rID);
+ OChildWindow(weld::Container* pParent, const OUString& rUIXMLDescription, const OUString& rID);
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Container> m_xContainer;
@@ -29,7 +29,7 @@ public:
void Enable(bool bEnable) { m_xContainer->set_sensitive(bEnable); }
- void SetHelpId(const OString& rHelpId) { m_xContainer->set_help_id(rHelpId); }
+ void SetHelpId(const OUString& rHelpId) { m_xContainer->set_help_id(rHelpId); }
void Show() { m_xContainer->show(); }
};
diff --git a/dbaccess/source/ui/inc/CollectionView.hxx b/dbaccess/source/ui/inc/CollectionView.hxx
index c80e98f5e858..8162dcd2d676 100644
--- a/dbaccess/source/ui/inc/CollectionView.hxx
+++ b/dbaccess/source/ui/inc/CollectionView.hxx
@@ -24,6 +24,8 @@
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
+namespace ucbhelper { class CommandEnvironment; }
+
namespace dbaui
{
/* this class allows to browse through the collection of forms and reports
@@ -32,7 +34,7 @@ namespace dbaui
{
css::uno::Reference< css::ucb::XContent> m_xContent;
css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::ucb::XCommandEnvironment > m_xCmdEnv;
+ rtl::Reference< ::ucbhelper::CommandEnvironment > m_xCmdEnv;
bool m_bCreateForm;
std::unique_ptr<weld::Label> m_xFTCurrentPath;
@@ -55,7 +57,7 @@ namespace dbaui
OCollectionView(weld::Window * pParent,
const css::uno::Reference< css::ucb::XContent>& _xContent,
const OUString& _sDefaultName,
- const css::uno::Reference< css::uno::XComponentContext >& _rxContext);
+ css::uno::Reference< css::uno::XComponentContext > _xContext);
virtual ~OCollectionView() override;
const css::uno::Reference< css::ucb::XContent>& getSelectedFolder() const { return m_xContent;}
OUString getName() const;
diff --git a/dbaccess/source/ui/inc/ColumnControlWindow.hxx b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
index 0f0c38d9b6d2..e68b99067e8c 100644
--- a/dbaccess/source/ui/inc/ColumnControlWindow.hxx
+++ b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
@@ -50,7 +50,7 @@ namespace dbaui
virtual TOTypeInfoSP getTypeInfo(sal_Int32 _nPos) override;
virtual bool isAutoIncrementValueEnabled() const override;
virtual OUString getAutoIncrementValue() const override;
- virtual void CellModified(tools::Long nRow, sal_uInt16 nColId ) override;
+ virtual void CellModified(sal_Int32 nRow, sal_uInt16 nColId ) override;
public:
OColumnControlWindow(weld::Container* pParent,
diff --git a/dbaccess/source/ui/inc/ConnectionLine.hxx b/dbaccess/source/ui/inc/ConnectionLine.hxx
index 954c7e02d3a3..360395f94b6e 100644
--- a/dbaccess/source/ui/inc/ConnectionLine.hxx
+++ b/dbaccess/source/ui/inc/ConnectionLine.hxx
@@ -45,7 +45,7 @@ namespace dbaui
Point m_aSourceDescrLinePos,
m_aDestDescrLinePos;
public:
- OConnectionLine( OTableConnection* pConn, OConnectionLineDataRef const & pLineData );
+ OConnectionLine( OTableConnection* pConn, OConnectionLineDataRef pLineData );
OConnectionLine( const OConnectionLine& rLine );
~OConnectionLine();
diff --git a/dbaccess/source/ui/inc/ConnectionLineAccess.hxx b/dbaccess/source/ui/inc/ConnectionLineAccess.hxx
index 83c01baadb1f..ad1f4cc7c616 100644
--- a/dbaccess/source/ui/inc/ConnectionLineAccess.hxx
+++ b/dbaccess/source/ui/inc/ConnectionLineAccess.hxx
@@ -19,22 +19,21 @@
#pragma once
#include "TableConnection.hxx"
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
-#include <cppuhelper/implbase2.hxx>
-#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <vcl/accessibility/vclxaccessiblecomponent.hxx>
#include <vcl/vclptr.hxx>
+using css::accessibility::AccessibleRelationType;
+
namespace dbaui
{
- typedef ::cppu::ImplHelper2< css::accessibility::XAccessibleRelationSet,
- css::accessibility::XAccessible
- > OConnectionLineAccess_BASE;
- class OTableConnection;
/** the class OConnectionLineAccess represents the accessible object for the connection between two table windows
like they are used in the QueryDesign and the RelationDesign
*/
- class OConnectionLineAccess : public VCLXAccessibleComponent
- , public OConnectionLineAccess_BASE
+ class OConnectionLineAccess : public cppu::ImplInheritanceHelper<VCLXAccessibleComponent,
+ css::accessibility::XAccessibleRelationSet>
{
VclPtr<const OTableConnection> m_pLine; // the window which I should give accessibility to
protected:
@@ -45,46 +44,28 @@ namespace dbaui
public:
OConnectionLineAccess(OTableConnection* _pLine);
- // XInterface
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
- virtual void SAL_CALL acquire( ) throw () override
- { // here inline is allowed because we do not use this class outside this dll
- VCLXAccessibleComponent::acquire( );
- }
- virtual void SAL_CALL release( ) throw () override
- { // here inline is allowed because we do not use this class outside this dll
- VCLXAccessibleComponent::release( );
- }
-
- // XTypeProvider
- virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
- // XAccessible
- virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
-
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
+ // OAccessible
+ virtual css::awt::Rectangle implGetBounds() override;
+
// XAccessibleComponent
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
- virtual css::awt::Rectangle SAL_CALL getBounds( ) override;
- virtual css::awt::Point SAL_CALL getLocation( ) override;
- virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override;
- virtual css::awt::Size SAL_CALL getSize( ) override;
// XAccessibleRelationSet
virtual sal_Int32 SAL_CALL getRelationCount( ) override;
virtual css::accessibility::AccessibleRelation SAL_CALL getRelation( sal_Int32 nIndex ) override;
- virtual sal_Bool SAL_CALL containsRelation( sal_Int16 aRelationType ) override;
- virtual css::accessibility::AccessibleRelation SAL_CALL getRelationByType( sal_Int16 aRelationType ) override;
+ virtual sal_Bool SAL_CALL containsRelation(AccessibleRelationType eRelationType) override;
+ virtual css::accessibility::AccessibleRelation SAL_CALL getRelationByType(AccessibleRelationType eRelationType) override;
};
}
diff --git a/dbaccess/source/ui/inc/ConnectionLineData.hxx b/dbaccess/source/ui/inc/ConnectionLineData.hxx
index 10ad0bfddfd9..2a41c93d9aab 100644
--- a/dbaccess/source/ui/inc/ConnectionLineData.hxx
+++ b/dbaccess/source/ui/inc/ConnectionLineData.hxx
@@ -48,7 +48,7 @@ namespace dbaui
virtual ~OConnectionLineData() override;
public:
OConnectionLineData();
- OConnectionLineData( const OUString& rSourceFieldName, const OUString& rDestFieldName );
+ OConnectionLineData( OUString sSourceFieldName, OUString sDestFieldName );
OConnectionLineData( const OConnectionLineData& rConnLineData );
// provide a copy of own instance (this is somehow more acceptable for me compared to a virtual assignment operator
void CopyFrom(const OConnectionLineData& rSource);
diff --git a/dbaccess/source/ui/inc/DExport.hxx b/dbaccess/source/ui/inc/DExport.hxx
index 3e2804a654e0..a79999647077 100644
--- a/dbaccess/source/ui/inc/DExport.hxx
+++ b/dbaccess/source/ui/inc/DExport.hxx
@@ -137,7 +137,7 @@ namespace dbaui
// required for automatic type recognition
ODatabaseExport(
sal_Int32 nRows,
- const TPositions& _rColumnPositions,
+ TPositions&& _rColumnPositions,
const css::uno::Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* rList,
@@ -153,7 +153,7 @@ namespace dbaui
void enableCheckOnly() { m_bCheckOnly = true; }
bool isCheckEnabled() const { return m_bCheckOnly; }
- static css::uno::Reference< css::sdbc::XPreparedStatement > createPreparedStatment( const css::uno::Reference< css::sdbc::XDatabaseMetaData>& _xMetaData
+ static css::uno::Reference< css::sdbc::XPreparedStatement > createPreparedStatement( const css::uno::Reference< css::sdbc::XDatabaseMetaData>& _xMetaData
,const css::uno::Reference< css::beans::XPropertySet>& _xDestTable
,const TPositions& _rvColumnPositions);
};
diff --git a/dbaccess/source/ui/inc/FieldControls.hxx b/dbaccess/source/ui/inc/FieldControls.hxx
index d0fca32a61b8..7eb88ec4e077 100644
--- a/dbaccess/source/ui/inc/FieldControls.hxx
+++ b/dbaccess/source/ui/inc/FieldControls.hxx
@@ -19,6 +19,7 @@
#pragma once
#include "SqlNameEdit.hxx"
+#include <unotools/resmgr.hxx>
namespace dbaui
{
@@ -28,7 +29,7 @@ namespace dbaui
short m_nPos;
OUString m_strHelpText;
public:
- OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry, OUString const & _rAllowedChars, const char* pHelpId, short nPosition);
+ OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry, OUString const & _rAllowedChars, TranslateId pHelpId, short nPosition);
short GetPos() const { return m_nPos; }
const OUString& GetHelp() const { return m_strHelpText; }
@@ -41,7 +42,7 @@ namespace dbaui
OUString m_strHelpText;
public:
- OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, const char* pHelpId, short nPosition);
+ OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, TranslateId pHelpId, short nPosition);
void set_text(const OUString& rText) { m_xEntry->set_text(rText); }
OUString get_text() const { return m_xEntry->get_text(); }
@@ -61,7 +62,7 @@ namespace dbaui
OUString m_strHelpText;
public:
- OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, const char* pHelpId, short nPosition);
+ OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, TranslateId pHelpId, short nPosition);
void set_text(const OUString& rText) { m_xSpinButton->set_text(rText); }
OUString get_text() const { return m_xSpinButton->get_text(); }
@@ -87,7 +88,7 @@ namespace dbaui
OUString m_strHelpText;
public:
- OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, const char* pHelpId, short nPosition);
+ OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, TranslateId pHelpId, short nPosition);
virtual ~OPropListBoxCtrl() override
{
m_xComboBox->clear();
diff --git a/dbaccess/source/ui/inc/FieldDescControl.hxx b/dbaccess/source/ui/inc/FieldDescControl.hxx
index cf8bec1c7eb2..410e086116fe 100644
--- a/dbaccess/source/ui/inc/FieldDescControl.hxx
+++ b/dbaccess/source/ui/inc/FieldDescControl.hxx
@@ -24,6 +24,7 @@
#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/util/XNumberFormatter.hpp>
#include "TypeInfo.hxx"
+#include <unotools/resmgr.hxx>
// field description columns of a table
#define FIELD_NAME 1
@@ -116,9 +117,9 @@ namespace dbaui
void UpdateFormatSample(OFieldDescription const * pFieldDescr);
bool isTextFormat(const OFieldDescription* _pFieldDescr,sal_uInt32& _nFormatKey) const;
- std::unique_ptr<OPropNumericEditCtrl> CreateNumericControl(const OString& rId, const char* pHelpId, short _nProperty, const OString& _sHelpId);
- void InitializeControl(weld::Widget* _pControl,const OString& _sHelpId);
- void InitializeControl(OPropListBoxCtrl* _pControl,const OString& _sHelpId,bool _bAddChangeHandler);
+ std::unique_ptr<OPropNumericEditCtrl> CreateNumericControl(const OUString& rId, TranslateId pHelpId, short _nProperty, const OUString& _sHelpId);
+ void InitializeControl(weld::Widget* _pControl,const OUString& _sHelpId);
+ void InitializeControl(OPropListBoxCtrl* _pControl,const OUString& _sHelpId,bool _bAddChangeHandler);
bool IsFocusInEditableWidget() const;
@@ -136,7 +137,7 @@ namespace dbaui
virtual css::lang::Locale GetLocale() const = 0;
- virtual void CellModified(tools::Long nRow, sal_uInt16 nColId ) = 0;
+ virtual void CellModified(sal_Int32 nRow, sal_uInt16 nColId ) = 0;
virtual void SetModified(bool bModified); // base implementation is empty
virtual TOTypeInfoSP getTypeInfo(sal_Int32 _nPos) = 0;
@@ -145,7 +146,7 @@ namespace dbaui
virtual bool isAutoIncrementValueEnabled() const = 0;
virtual OUString getAutoIncrementValue() const = 0;
- OUString BoolStringPersistent(const OUString& rUIString) const;
+ OUString BoolStringPersistent(std::u16string_view rUIString) const;
OUString BoolStringUI(const OUString& rPersistentString) const;
const OPropColumnEditCtrl* getColumnCtrl() const { return m_xColumnName.get(); }
@@ -164,7 +165,7 @@ namespace dbaui
void SetReadOnly( bool bReadOnly );
void Enable(bool bEnable) { m_xContainer->set_sensitive(bEnable); }
- void SetHelpId(const OString& rId) { m_xContainer->set_help_id(rId); }
+ void SetHelpId(const OUString& rId) { m_xContainer->set_help_id(rId); }
virtual bool isCutAllowed() override;
virtual bool isCopyAllowed() override;
@@ -188,7 +189,10 @@ namespace dbaui
virtual css::uno::Reference< css::sdbc::XDatabaseMetaData> getMetaData() = 0;
virtual css::uno::Reference< css::sdbc::XConnection> getConnection() = 0;
- OUString getControlDefault( const OFieldDescription* _pFieldDescr, bool _bCheck = true) const;
+ OUString getControlDefault( const OFieldDescription* pFieldDescr, bool _bCheck = true) const;
+ // tdf#138409 take the control default in the UI Locale format, e.g. 12,34 and return a string
+ // suitable as the database default, e.g. 12.34
+ OUString CanonicalizeToControlDefault(const OFieldDescription* pFieldDescr, const OUString& rUserText) const;
void setEditWidth(sal_Int32 _nWidth) { m_nEditWidth = _nWidth; }
};
diff --git a/dbaccess/source/ui/inc/GeneralUndo.hxx b/dbaccess/source/ui/inc/GeneralUndo.hxx
index e99ff2c4f330..1bbb593e333d 100644
--- a/dbaccess/source/ui/inc/GeneralUndo.hxx
+++ b/dbaccess/source/ui/inc/GeneralUndo.hxx
@@ -31,7 +31,7 @@ namespace dbaui
OUString m_strComment; // undo, redo comment
public:
- OCommentUndoAction(const char* pCommentID) { m_strComment = DBA_RES(pCommentID); }
+ OCommentUndoAction(TranslateId pCommentID) { m_strComment = DBA_RES(pCommentID); }
virtual OUString GetComment() const override { return m_strComment; }
};
diff --git a/dbaccess/source/ui/inc/HtmlReader.hxx b/dbaccess/source/ui/inc/HtmlReader.hxx
index 3c1fa88d2d60..5c4ddde13f4e 100644
--- a/dbaccess/source/ui/inc/HtmlReader.hxx
+++ b/dbaccess/source/ui/inc/HtmlReader.hxx
@@ -54,7 +54,7 @@ namespace dbaui
// required for automatic type recognition
OHTMLReader(SvStream& rIn,
sal_Int32 nRows,
- const TPositions &_rColumnPositions,
+ TPositions&& _rColumnPositions,
const css::uno::Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* rList,
diff --git a/dbaccess/source/ui/inc/IItemSetHelper.hxx b/dbaccess/source/ui/inc/IItemSetHelper.hxx
index cdc1026eaf36..b581c5a55e69 100644
--- a/dbaccess/source/ui/inc/IItemSetHelper.hxx
+++ b/dbaccess/source/ui/inc/IItemSetHelper.hxx
@@ -28,9 +28,6 @@ namespace com::sun::star {
class XConnection;
class XDriver;
}
- namespace lang {
- class XMultiServiceFactory;
- }
}
class SfxItemSet;
diff --git a/dbaccess/source/ui/inc/JAccess.hxx b/dbaccess/source/ui/inc/JAccess.hxx
index 3a630faa2bca..8377a076779c 100644
--- a/dbaccess/source/ui/inc/JAccess.hxx
+++ b/dbaccess/source/ui/inc/JAccess.hxx
@@ -19,19 +19,16 @@
#pragma once
#include "JoinTableView.hxx"
-#include <toolkit/awt/vclxaccessiblecomponent.hxx>
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <vcl/accessibility/vclxaccessiblecomponent.hxx>
#include <vcl/vclptr.hxx>
namespace dbaui
{
- class OJoinTableView;
- typedef ::cppu::ImplHelper1< css::accessibility::XAccessible
- > OJoinDesignViewAccess_BASE;
/** the class OJoinDesignViewAccess represents the accessible object for join views
like the QueryDesign and the RelationDesign
*/
- class OJoinDesignViewAccess : public VCLXAccessibleComponent, public OJoinDesignViewAccess_BASE
+ class OJoinDesignViewAccess : public VCLXAccessibleComponent
{
VclPtr<OJoinTableView> m_pTableView; // the window which I should give accessibility to
@@ -40,18 +37,11 @@ namespace dbaui
*/
OJoinDesignViewAccess( OJoinTableView* _pTableView);
- // XInterface
- DECLARE_XINTERFACE( )
- DECLARE_XTYPEPROVIDER( )
-
virtual OUString SAL_CALL getImplementationName() override;
- // XAccessible
- virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
-
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
void notifyAccessibleEvent(
diff --git a/dbaccess/source/ui/inc/JoinDesignView.hxx b/dbaccess/source/ui/inc/JoinDesignView.hxx
index f4871e9df5ca..0883e424f790 100644
--- a/dbaccess/source/ui/inc/JoinDesignView.hxx
+++ b/dbaccess/source/ui/inc/JoinDesignView.hxx
@@ -21,8 +21,6 @@
#include <dbaccess/dataview.hxx>
-class Splitter;
-
namespace dbaui
{
class OJoinController;
diff --git a/dbaccess/source/ui/inc/JoinExchange.hxx b/dbaccess/source/ui/inc/JoinExchange.hxx
index aec5fcfd8abd..7401ec886e44 100644
--- a/dbaccess/source/ui/inc/JoinExchange.hxx
+++ b/dbaccess/source/ui/inc/JoinExchange.hxx
@@ -43,11 +43,11 @@ namespace dbaui
// XInterface
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
- virtual void SAL_CALL acquire( ) throw() override;
- virtual void SAL_CALL release( ) throw() override;
+ virtual void SAL_CALL acquire( ) noexcept override;
+ virtual void SAL_CALL release( ) noexcept override;
// XUnoTunnel
- static css::uno::Sequence< sal_Int8 > getUnoTunnelId();
+ static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& _rIdentifier ) override;
static OJoinExchangeData GetSourceDescription(const css::uno::Reference< css::datatransfer::XTransferable >& _rxObject);
diff --git a/dbaccess/source/ui/inc/JoinTableView.hxx b/dbaccess/source/ui/inc/JoinTableView.hxx
index 5c7c6e91fcf1..138de4106070 100644
--- a/dbaccess/source/ui/inc/JoinTableView.hxx
+++ b/dbaccess/source/ui/inc/JoinTableView.hxx
@@ -18,10 +18,10 @@
*/
#pragma once
+#include <svtools/scrolladaptor.hxx>
#include <vcl/window.hxx>
#include <vcl/timer.hxx>
#include <vcl/idle.hxx>
-#include <vcl/scrbar.hxx>
#include <vcl/vclptr.hxx>
#include <vcl/transfer.hxx>
@@ -32,8 +32,6 @@
#include <map>
#include <vector>
-struct AcceptDropEvent;
-struct ExecuteDropEvent;
class SfxUndoAction;
namespace dbaui
@@ -42,7 +40,6 @@ namespace dbaui
class OTableWindow;
struct OJoinExchangeData;
class OJoinDesignView;
- class OTableWindowData;
class OJoinDesignViewAccess;
// this class contains only the scrollbars to avoid that
@@ -50,9 +47,8 @@ namespace dbaui
class OJoinTableView;
class OScrollWindowHelper : public vcl::Window
{
- VclPtr<ScrollBar> m_aHScrollBar;
- VclPtr<ScrollBar> m_aVScrollBar;
- VclPtr<vcl::Window> m_pCornerWindow;
+ VclPtr<ScrollAdaptor> m_aHScrollBar;
+ VclPtr<ScrollAdaptor> m_aVScrollBar;
VclPtr<OJoinTableView> m_pTableView;
protected:
@@ -68,8 +64,8 @@ namespace dbaui
void resetRange(const Point& _aSize);
// own methods
- ScrollBar& GetHScrollBar() { return *m_aHScrollBar; }
- ScrollBar& GetVScrollBar() { return *m_aVScrollBar; }
+ ScrollAdaptor& GetHScrollBar() { return *m_aHScrollBar; }
+ ScrollAdaptor& GetVScrollBar() { return *m_aVScrollBar; }
};
@@ -105,7 +101,7 @@ namespace dbaui
protected:
VclPtr<OTableWindow> m_pLastFocusTabWin;
VclPtr<OJoinDesignView> m_pView;
- OJoinDesignViewAccess* m_pAccessible;
+ rtl::Reference<OJoinDesignViewAccess> m_pAccessible;
public:
OJoinTableView( vcl::Window* pParent, OJoinDesignView* pView );
@@ -121,9 +117,10 @@ namespace dbaui
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
// own methods
- ScrollBar& GetHScrollBar() { return static_cast<OScrollWindowHelper*>(GetParent())->GetHScrollBar(); }
- ScrollBar& GetVScrollBar() { return static_cast<OScrollWindowHelper*>(GetParent())->GetVScrollBar(); }
- DECL_LINK( ScrollHdl, ScrollBar*, void );
+ ScrollAdaptor& GetHScrollBar() { return static_cast<OScrollWindowHelper*>(GetParent())->GetHScrollBar(); }
+ ScrollAdaptor& GetVScrollBar() { return static_cast<OScrollWindowHelper*>(GetParent())->GetVScrollBar(); }
+ DECL_LINK(VertScrollHdl, weld::Scrollbar&, void);
+ DECL_LINK(HorzScrollHdl, weld::Scrollbar&, void);
void DrawConnections(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
void InvalidateConnections();
@@ -163,7 +160,7 @@ namespace dbaui
void addConnection(OTableConnection* _pConnection,bool _bAddData = true);
bool ScrollPane( tools::Long nDelta, bool bHoriz, bool bPaintScrollBars );
- sal_uLong GetTabWinCount() const;
+ sal_Int64 GetTabWinCount() const;
const Point& GetScrollOffset() const { return m_aScrollOffset; }
OJoinDesignView* getDesignView() const { return m_pView; }
@@ -196,7 +193,7 @@ namespace dbaui
*/
sal_Int32 getConnectionCount(const OTableWindow* _pFromWin) const;
- OTableConnection* GetTabConn(const OTableWindow* pLhs,const OTableWindow* pRhs,bool _bSupressCrossOrNaturalJoin = false) const;
+ OTableConnection* GetTabConn(const OTableWindow* pLhs,const OTableWindow* pRhs,bool _bSuppressCrossOrNaturalJoin = false) const;
/** clear the window map and connection vector without destroying it
@@ -299,7 +296,7 @@ namespace dbaui
Expected to throw. */
virtual void onNoColumns_throw();
- virtual bool supressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const;
+ virtual bool suppressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const;
private:
void InitColors();
diff --git a/dbaccess/source/ui/inc/QueryDesignView.hxx b/dbaccess/source/ui/inc/QueryDesignView.hxx
index 8bcb0f58e1a0..efef444e8670 100644
--- a/dbaccess/source/ui/inc/QueryDesignView.hxx
+++ b/dbaccess/source/ui/inc/QueryDesignView.hxx
@@ -105,12 +105,12 @@ namespace dbaui
const OUString& getDecimalSeparator() const { return m_sDecimalSep;}
SqlParseError InsertField( const OTableFieldDescRef& rInfo, bool bActivate = true);
- bool HasFieldByAliasName(const OUString& rFieldName, OTableFieldDescRef const & rInfo) const;
+ bool HasFieldByAliasName(std::u16string_view rFieldName, OTableFieldDescRef const & rInfo) const;
// called when a table from tabview was deleted
void TableDeleted(const OUString& rAliasName);
sal_Int32 getColWidth( sal_uInt16 _nColPos) const;
- void fillValidFields(const OUString& strTableName, weld::ComboBox& rFieldList);
+ void fillValidFields(std::u16string_view strTableName, weld::ComboBox& rFieldList);
void SaveUIConfig();
void stopTimer();
diff --git a/dbaccess/source/ui/inc/QueryTableView.hxx b/dbaccess/source/ui/inc/QueryTableView.hxx
index c192c5fac664..26133d2cca42 100644
--- a/dbaccess/source/ui/inc/QueryTableView.hxx
+++ b/dbaccess/source/ui/inc/QueryTableView.hxx
@@ -40,7 +40,7 @@ namespace dbaui
Expected to throw. */
virtual void onNoColumns_throw() override;
- virtual bool supressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const override;
+ virtual bool suppressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const override;
public:
OQueryTableView(vcl::Window* pParent,OQueryDesignView* pView);
diff --git a/dbaccess/source/ui/inc/RTableConnectionData.hxx b/dbaccess/source/ui/inc/RTableConnectionData.hxx
index 0dd40e2fab10..ad6f0d376ccc 100644
--- a/dbaccess/source/ui/inc/RTableConnectionData.hxx
+++ b/dbaccess/source/ui/inc/RTableConnectionData.hxx
@@ -28,7 +28,6 @@ namespace dbaui
Undefined, OneMany, ManyOne, OneOne
};
- class OConnectionLineData;
class ORelationTableConnectionData final : public OTableConnectionData
{
friend bool operator==(const ORelationTableConnectionData& lhs, const ORelationTableConnectionData& rhs);
diff --git a/dbaccess/source/ui/inc/RelationControl.hxx b/dbaccess/source/ui/inc/RelationControl.hxx
index 5d4edee2aadf..2067242bf7ab 100644
--- a/dbaccess/source/ui/inc/RelationControl.hxx
+++ b/dbaccess/source/ui/inc/RelationControl.hxx
@@ -23,7 +23,6 @@
namespace dbaui
{
- class OTableListBoxControl;
class IRelationControlInterface;
class ORelationControl;
diff --git a/dbaccess/source/ui/inc/RelationController.hxx b/dbaccess/source/ui/inc/RelationController.hxx
index 1fc2cc423cbb..d4aa52faf080 100644
--- a/dbaccess/source/ui/inc/RelationController.hxx
+++ b/dbaccess/source/ui/inc/RelationController.hxx
@@ -19,8 +19,9 @@
#pragma once
#include <memory>
+#include <string_view>
+
#include "JoinController.hxx"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
namespace weld
{
@@ -33,7 +34,7 @@ namespace dbaui
{
css::uno::Reference< css::container::XNameAccess > m_xTables;
std::unique_ptr<weld::WaitObject> m_xWaitObject;
- sal_uLong m_nThreadEvent;
+ sal_Int32 m_nThreadEvent;
bool m_bRelationsPossible;
protected:
// all the features which should be handled by this class
@@ -44,7 +45,7 @@ namespace dbaui
virtual void Execute(sal_uInt16 nId, const css::uno::Sequence< css::beans::PropertyValue>& aArgs) override;
void loadData();
- TTableWindowData::value_type existsTable(const OUString& _rComposedTableName) const;
+ TTableWindowData::value_type existsTable(std::u16string_view _rComposedTableName) const;
// load the window positions out of the datasource
void loadLayoutInformation();
@@ -69,7 +70,7 @@ namespace dbaui
// ask the user if the design should be saved when it is modified
virtual short saveModified() override;
virtual void reset() override;
- virtual void impl_initialize() override;
+ virtual void impl_initialize(const ::comphelper::NamedValueCollection& rArguments) override;
virtual OUString getPrivateTitle( ) const override;
DECL_LINK( OnThreadFinished, void*, void );
};
diff --git a/dbaccess/source/ui/inc/RtfReader.hxx b/dbaccess/source/ui/inc/RtfReader.hxx
index 0bda00b2f5fa..58f6aa26ba2b 100644
--- a/dbaccess/source/ui/inc/RtfReader.hxx
+++ b/dbaccess/source/ui/inc/RtfReader.hxx
@@ -45,7 +45,7 @@ namespace dbaui
// required for automatic type recognition
ORTFReader( SvStream& rIn,
sal_Int32 nRows,
- const TPositions &_rColumnPositions,
+ TPositions&& _rColumnPositions,
const css::uno::Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* rList,
diff --git a/dbaccess/source/ui/inc/SqlNameEdit.hxx b/dbaccess/source/ui/inc/SqlNameEdit.hxx
index 257b18ebbfdb..14d845b4b17c 100644
--- a/dbaccess/source/ui/inc/SqlNameEdit.hxx
+++ b/dbaccess/source/ui/inc/SqlNameEdit.hxx
@@ -19,6 +19,7 @@
#pragma once
#include <svtools/editbrowsebox.hxx>
+#include <utility>
#include <vcl/weld.hxx>
namespace dbaui
@@ -28,8 +29,8 @@ namespace dbaui
OUString m_sAllowedChars;
bool m_bCheck; // true when we should check for invalid chars
public:
- OSQLNameChecker(const OUString& _rAllowedChars)
- :m_sAllowedChars(_rAllowedChars)
+ OSQLNameChecker(OUString _sAllowedChars)
+ :m_sAllowedChars(std::move(_sAllowedChars))
,m_bCheck(true)
{
}
@@ -42,7 +43,7 @@ namespace dbaui
{
m_bCheck = _bCheck;
}
- bool checkString(const OUString& _sToCheck,OUString& _rsCorrected);
+ bool checkString(std::u16string_view _sToCheck,OUString& _rsCorrected);
};
class OSQLNameEditControl : public svt::EditControl
diff --git a/dbaccess/source/ui/inc/TableConnection.hxx b/dbaccess/source/ui/inc/TableConnection.hxx
index 3c6ce0fdf76c..ac4f27eabcb3 100644
--- a/dbaccess/source/ui/inc/TableConnection.hxx
+++ b/dbaccess/source/ui/inc/TableConnection.hxx
@@ -28,7 +28,6 @@ namespace tools { class Rectangle; }
namespace dbaui
{
- class OTableConnectionData;
class OTableWindow;
class OJoinTableView;
class OConnectionLine;
@@ -47,7 +46,7 @@ namespace dbaui
void clearLineData();
public:
- OTableConnection( OJoinTableView* pContainer, const TTableConnectionData::value_type& pTabConnData );
+ OTableConnection( OJoinTableView* pContainer, TTableConnectionData::value_type aTabConnData );
OTableConnection( const OTableConnection& rConn );
/** destructor
diff --git a/dbaccess/source/ui/inc/TableConnectionData.hxx b/dbaccess/source/ui/inc/TableConnectionData.hxx
index 38de2289458f..096a6de70ad3 100644
--- a/dbaccess/source/ui/inc/TableConnectionData.hxx
+++ b/dbaccess/source/ui/inc/TableConnectionData.hxx
@@ -47,8 +47,8 @@ namespace dbaui
OTableConnectionData& operator=( const OTableConnectionData& rConnData );
public:
OTableConnectionData();
- OTableConnectionData( const TTableWindowData::value_type& _pReferencingTable,
- const TTableWindowData::value_type& _pReferencedTable );
+ OTableConnectionData( TTableWindowData::value_type _aReferencingTable,
+ TTableWindowData::value_type _aReferencedTable );
OTableConnectionData( const OTableConnectionData& rConnData );
virtual ~OTableConnectionData();
diff --git a/dbaccess/source/ui/inc/TableController.hxx b/dbaccess/source/ui/inc/TableController.hxx
index b7be9b4d58a8..13af9cf51c48 100644
--- a/dbaccess/source/ui/inc/TableController.hxx
+++ b/dbaccess/source/ui/inc/TableController.hxx
@@ -20,7 +20,6 @@
#include "singledoccontroller.hxx"
#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include "TypeInfo.hxx"
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/sdbcx/XKeysSupplier.hpp>
@@ -122,7 +121,7 @@ namespace dbaui
private:
void startTableListening();
void stopTableListening();
- virtual void impl_initialize() override;
+ virtual void impl_initialize(const ::comphelper::NamedValueCollection& rArguments) override;
};
}
diff --git a/dbaccess/source/ui/inc/TableCopyHelper.hxx b/dbaccess/source/ui/inc/TableCopyHelper.hxx
index 3d39d368307e..636ca85c7752 100644
--- a/dbaccess/source/ui/inc/TableCopyHelper.hxx
+++ b/dbaccess/source/ui/inc/TableCopyHelper.hxx
@@ -72,7 +72,7 @@ namespace dbaui
OUString sDefaultTableName;
OUString aUrl;
- tools::SvRef<SotStorageStream> aHtmlRtfStorage;
+ std::unique_ptr<SvStream> aHtmlRtfStorage;
ElementType nType;
std::unique_ptr<weld::TreeIter> xDroppedAt;
sal_Int8 nAction;
@@ -96,7 +96,7 @@ namespace dbaui
The name of the dest data source.
*/
void pasteTable( const TransferableDataHelper& _rTransData
- ,const OUString& _sDestDataSourceName
+ ,std::u16string_view _sDestDataSourceName
,const SharedConnection& _xConnection);
/** pastes a table into the data source
@@ -109,7 +109,7 @@ namespace dbaui
*/
void pasteTable( SotClipboardFormatId _nFormatId
,const TransferableDataHelper& _rTransData
- ,const OUString& _sDestDataSourceName
+ ,std::u16string_view _sDestDataSourceName
,const SharedConnection& _xConnection);
/** copies a table which was constructed by tags like HTML or RTF
@@ -133,7 +133,7 @@ namespace dbaui
The connection
*/
void asyncCopyTagTable( DropDescriptor& _rDesc
- ,const OUString& _sDestDataSourceName
+ ,std::u16string_view _sDestDataSourceName
,const SharedConnection& _xConnection);
/** copies a table which was constructed by tags like HTML or RTF
@@ -164,21 +164,21 @@ namespace dbaui
*/
void pasteTable(
const svx::ODataAccessDescriptor& _rPasteData,
- const OUString& _sDestDataSourceName,
+ std::u16string_view _sDestDataSourceName,
const SharedConnection& _xDestConnection
);
/** insert a table into the data source. The source can either be a table or a query
*/
void insertTable(
- const OUString& i_rSourceDataSource,
+ std::u16string_view i_rSourceDataSource,
const css::uno::Reference< css::sdbc::XConnection>& i_rSourceConnection,
const OUString& i_rCommand,
const sal_Int32 i_nCommandType,
const css::uno::Reference< css::sdbc::XResultSet >& i_rSourceRows,
const css::uno::Sequence< css::uno::Any >& i_rSelection,
const bool i_bBookmarkSelection,
- const OUString& i_rDestDataSource,
+ std::u16string_view i_rDestDataSource,
const css::uno::Reference< css::sdbc::XConnection>& i_rDestConnection
);
diff --git a/dbaccess/source/ui/inc/TableDesignControl.hxx b/dbaccess/source/ui/inc/TableDesignControl.hxx
index 7cfcfdc23dac..89debc9e1125 100644
--- a/dbaccess/source/ui/inc/TableDesignControl.hxx
+++ b/dbaccess/source/ui/inc/TableDesignControl.hxx
@@ -41,10 +41,10 @@ namespace dbaui
public:
OTableRowView(vcl::Window* pParent);
- virtual void SetCellData( tools::Long nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo ) = 0;
- virtual void SetCellData( tools::Long nRow, sal_uInt16 nColId, const css::uno::Any& _rNewData ) = 0;
- virtual css::uno::Any GetCellData( tools::Long nRow, sal_uInt16 nColId ) = 0;
- virtual void SetControlText( tools::Long nRow, sal_uInt16 nColId, const OUString& rText ) = 0;
+ virtual void SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo ) = 0;
+ virtual void SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const css::uno::Any& _rNewData ) = 0;
+ virtual css::uno::Any GetCellData( sal_Int32 nRow, sal_uInt16 nColId ) = 0;
+ virtual void SetControlText( sal_Int32 nRow, sal_uInt16 nColId, const OUString& rText ) = 0;
virtual OTableDesignView* GetView() const = 0;
@@ -56,18 +56,18 @@ namespace dbaui
virtual void paste() override;
protected:
- void Paste( tools::Long nRow );
+ void Paste( sal_Int32 nRow );
virtual void CopyRows() = 0;
virtual void DeleteRows() = 0;
- virtual void InsertRows( tools::Long nRow ) = 0;
- virtual void InsertNewRows( tools::Long nRow ) = 0;
+ virtual void InsertRows( sal_Int32 nRow ) = 0;
+ virtual void InsertNewRows( sal_Int32 nRow ) = 0;
virtual bool IsPrimaryKeyAllowed() = 0;
- virtual bool IsInsertNewAllowed( tools::Long nRow ) = 0;
+ virtual bool IsInsertNewAllowed( sal_Int32 nRow ) = 0;
virtual bool IsDeleteAllowed() = 0;
- virtual RowStatus GetRowStatus(tools::Long nRow) const override;
+ virtual RowStatus GetRowStatus(sal_Int32 nRow) const override;
virtual void KeyInput(const KeyEvent& rEvt) override;
virtual void Command( const CommandEvent& rEvt ) override;
diff --git a/dbaccess/source/ui/inc/TableFieldDescription.hxx b/dbaccess/source/ui/inc/TableFieldDescription.hxx
index d21ad953abd5..8c3c9b1cd82a 100644
--- a/dbaccess/source/ui/inc/TableFieldDescription.hxx
+++ b/dbaccess/source/ui/inc/TableFieldDescription.hxx
@@ -34,8 +34,6 @@ namespace comphelper
class NamedValueCollection;
}
-namespace vcl { class Window; }
-
namespace dbaui
{
class OTableFieldDesc : public ::salhelper::SimpleReferenceObject
diff --git a/dbaccess/source/ui/inc/TableGrantCtrl.hxx b/dbaccess/source/ui/inc/TableGrantCtrl.hxx
index d83a3c0615eb..d27766913ffe 100644
--- a/dbaccess/source/ui/inc/TableGrantCtrl.hxx
+++ b/dbaccess/source/ui/inc/TableGrantCtrl.hxx
@@ -28,7 +28,6 @@
#include <com/sun/star/sdbcx/XAuthorizable.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
-class Edit;
namespace dbaui
{
@@ -81,12 +80,12 @@ protected:
virtual bool PreNotify(NotifyEvent& rNEvt ) override;
virtual bool IsTabAllowed(bool bForward) const override;
- virtual void InitController( ::svt::CellControllerRef& rController, tools::Long nRow, sal_uInt16 nCol ) override;
- virtual ::svt::CellController* GetController( tools::Long nRow, sal_uInt16 nCol ) override;
+ virtual void InitController( ::svt::CellControllerRef& rController, sal_Int32 nRow, sal_uInt16 nCol ) override;
+ virtual ::svt::CellController* GetController( sal_Int32 nRow, sal_uInt16 nCol ) override;
virtual void PaintCell( OutputDevice& rDev, const tools::Rectangle& rRect, sal_uInt16 nColId ) const override;
- virtual bool SeekRow( tools::Long nRow ) override;
+ virtual bool SeekRow( sal_Int32 nRow ) override;
virtual bool SaveModified() override;
- virtual OUString GetCellText( tools::Long nRow, sal_uInt16 nColId ) const override;
+ virtual OUString GetCellText( sal_Int32 nRow, sal_uInt16 nColId ) const override;
virtual void CellModified() override;
diff --git a/dbaccess/source/ui/inc/TableRow.hxx b/dbaccess/source/ui/inc/TableRow.hxx
index b5c12600aa8b..4f34a94bf58e 100644
--- a/dbaccess/source/ui/inc/TableRow.hxx
+++ b/dbaccess/source/ui/inc/TableRow.hxx
@@ -18,7 +18,6 @@
*/
#pragma once
-#include <com/sun/star/beans/XPropertySet.hpp>
#include <tools/long.hxx>
#include "TypeInfo.hxx"
@@ -38,7 +37,6 @@ namespace dbaui
protected:
public:
OTableRow();
- OTableRow(const css::uno::Reference< css::beans::XPropertySet >& xAffectedCol);
OTableRow( const OTableRow& rRow, tools::Long nPosition = -1 );
~OTableRow();
diff --git a/dbaccess/source/ui/inc/TableRowExchange.hxx b/dbaccess/source/ui/inc/TableRowExchange.hxx
index 38c0eb36f820..9450ab2ff827 100644
--- a/dbaccess/source/ui/inc/TableRowExchange.hxx
+++ b/dbaccess/source/ui/inc/TableRowExchange.hxx
@@ -28,11 +28,11 @@ namespace dbaui
{
std::vector< std::shared_ptr<OTableRow> > m_vTableRow;
public:
- OTableRowExchange(const std::vector< std::shared_ptr<OTableRow> >& _rvTableRow);
+ OTableRowExchange(std::vector< std::shared_ptr<OTableRow> >&& _rvTableRow);
protected:
virtual void AddSupportedFormats() override;
virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
- virtual bool WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& rFlavor ) override;
+ virtual bool WriteObject( SvStream& rOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& rFlavor ) override;
virtual void ObjectReleased() override;
};
}
diff --git a/dbaccess/source/ui/inc/TableWindow.hxx b/dbaccess/source/ui/inc/TableWindow.hxx
index 9e616e9fc135..fb6220291558 100644
--- a/dbaccess/source/ui/inc/TableWindow.hxx
+++ b/dbaccess/source/ui/inc/TableWindow.hxx
@@ -48,7 +48,6 @@ namespace dbaui
{
class OJoinDesignView;
class OJoinTableView;
- class OTableWindowAccess;
class OTableWindow : public ::cppu::BaseMutex
,public ::comphelper::OContainerListener
@@ -58,7 +57,6 @@ namespace dbaui
friend class OTableWindowListBox;
protected:
// and the table itself (needed for me as I want to lock it as long as the window is alive)
- VclPtr<FixedImage> m_aTypeImage;
VclPtr<OTableWindowTitle> m_xTitle;
VclPtr<OTableWindowListBox> m_xListBox;
@@ -109,11 +107,11 @@ namespace dbaui
css::beans::XPropertySet>& _xColumn,
bool _bPrimaryKey);
- /** updates m_aTypeImage
+ /** updates image
*/
void impl_updateImage();
- OTableWindow( vcl::Window* pParent, const TTableWindowData::value_type& pTabWinData );
+ OTableWindow( vcl::Window* pParent, TTableWindowData::value_type aTabWinData );
public:
virtual ~OTableWindow() override;
diff --git a/dbaccess/source/ui/inc/TableWindowAccess.hxx b/dbaccess/source/ui/inc/TableWindowAccess.hxx
index f9b534073bb8..3adb4d5ed0a5 100644
--- a/dbaccess/source/ui/inc/TableWindowAccess.hxx
+++ b/dbaccess/source/ui/inc/TableWindowAccess.hxx
@@ -19,26 +19,26 @@
#pragma once
#include "TableWindow.hxx"
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
-#include <cppuhelper/implbase2.hxx>
-#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <vcl/accessibility/vclxaccessiblecomponent.hxx>
#include <vcl/vclptr.hxx>
+using css::accessibility::AccessibleRelationType;
+
namespace dbaui
{
- typedef ::cppu::ImplHelper2< css::accessibility::XAccessibleRelationSet,
- css::accessibility::XAccessible
- > OTableWindowAccess_BASE;
- class OTableWindow;
/** the class OTableWindowAccess represents the accessible object for table windows
like they are used in the QueryDesign and the RelationDesign
*/
- class OTableWindowAccess : public VCLXAccessibleComponent
- , public OTableWindowAccess_BASE
+ class OTableWindowAccess : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessibleRelationSet>
{
VclPtr<OTableWindow> m_pTable; // the window which I should give accessibility to
- css::uno::Reference< css::accessibility::XAccessible > getParentChild(sal_Int32 _nIndex);
+ css::uno::Reference< css::accessibility::XAccessible > getParentChild(sal_Int64 _nIndex);
protected:
/** this function is called upon disposing the component
*/
@@ -48,31 +48,14 @@ namespace dbaui
public:
OTableWindowAccess( OTableWindow* _pTable);
- // XInterface
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
- virtual void SAL_CALL acquire( ) throw () override
- { // here inline is allowed because we do not use this class outside this dll
- VCLXAccessibleComponent::acquire( );
- }
- virtual void SAL_CALL release( ) throw () override
- { // here inline is allowed because we do not use this class outside this dll
- VCLXAccessibleComponent::release( );
- }
-
- // XTypeProvider
- virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
- // XAccessible
- virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
-
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
@@ -86,8 +69,8 @@ namespace dbaui
// XAccessibleRelationSet
virtual sal_Int32 SAL_CALL getRelationCount( ) override;
virtual css::accessibility::AccessibleRelation SAL_CALL getRelation( sal_Int32 nIndex ) override;
- virtual sal_Bool SAL_CALL containsRelation( sal_Int16 aRelationType ) override;
- virtual css::accessibility::AccessibleRelation SAL_CALL getRelationByType( sal_Int16 aRelationType ) override;
+ virtual sal_Bool SAL_CALL containsRelation(AccessibleRelationType eRelationType) override;
+ virtual css::accessibility::AccessibleRelation SAL_CALL getRelationByType(AccessibleRelationType eRelationType) override;
};
}
diff --git a/dbaccess/source/ui/inc/TableWindowData.hxx b/dbaccess/source/ui/inc/TableWindowData.hxx
index f7aea00b9713..0160ea723316 100644
--- a/dbaccess/source/ui/inc/TableWindowData.hxx
+++ b/dbaccess/source/ui/inc/TableWindowData.hxx
@@ -34,7 +34,7 @@ namespace dbaui
mutable ::osl::Mutex m_aMutex;
void listen();
- protected:
+
// the columns of the table
css::uno::Reference< css::beans::XPropertySet > m_xTable; // can either be a table or a query
css::uno::Reference< css::container::XIndexAccess> m_xKeys;
@@ -51,9 +51,9 @@ namespace dbaui
public:
explicit OTableWindowData( const css::uno::Reference< css::beans::XPropertySet>& _xTable
- ,const OUString& _rComposedName
- ,const OUString& strTableName
- ,const OUString& rWinName );
+ ,OUString _sComposedName
+ ,OUString strTableName
+ ,OUString sWinName );
virtual ~OTableWindowData() override;
/** late constructor
diff --git a/dbaccess/source/ui/inc/TableWindowListBox.hxx b/dbaccess/source/ui/inc/TableWindowListBox.hxx
index d41cdbc3e285..ab1f84d52703 100644
--- a/dbaccess/source/ui/inc/TableWindowListBox.hxx
+++ b/dbaccess/source/ui/inc/TableWindowListBox.hxx
@@ -22,8 +22,6 @@
#include <vcl/InterimItemWindow.hxx>
#include "callbacks.hxx"
-struct AcceptDropEvent;
-struct ExecuteDropEvent;
namespace dbaui
{
class OTableWindowListBox;
@@ -55,6 +53,7 @@ namespace dbaui
std::unique_ptr<TableWindowListBoxHelper> m_xDragDropTargetHelper;
DECL_LINK( OnDoubleClick, weld::TreeView&, bool );
+ DECL_LINK(CommandHdl, const CommandEvent&, bool);
DECL_LINK( DropHdl, void*, void );
DECL_LINK( LookForUiHdl, void*, void );
DECL_LINK( DragBeginHdl, bool&, bool );
@@ -89,7 +88,7 @@ namespace dbaui
virtual void Command(const CommandEvent& rEvt) override;
OTableWindow* GetTabWin(){ return m_pTabWin; }
- int GetEntryFromText( const OUString& rEntryText );
+ int GetEntryFromText( std::u16string_view rEntryText );
};
class TableWindowListBoxHelper final : public DropTargetHelper
diff --git a/dbaccess/source/ui/inc/TableWindowTitle.hxx b/dbaccess/source/ui/inc/TableWindowTitle.hxx
index 2fe9c30c5091..0a3779bd8873 100644
--- a/dbaccess/source/ui/inc/TableWindowTitle.hxx
+++ b/dbaccess/source/ui/inc/TableWindowTitle.hxx
@@ -18,31 +18,26 @@
*/
#pragma once
-#include <vcl/fixed.hxx>
+#include <vcl/InterimItemWindow.hxx>
namespace dbaui
{
class OTableWindow;
- class OTableWindowTitle : public FixedText
+ class OTableWindowTitle final : public InterimItemWindow
{
VclPtr<OTableWindow> m_pTabWin;
+ std::unique_ptr<weld::Label> m_xLabel;
+ std::unique_ptr<weld::Image> m_xImage;
- protected:
- virtual void Command(const CommandEvent& rEvt) override;
- // virtual void Paint( const Rectangle& rRect );
- virtual void MouseButtonDown( const MouseEvent& rEvt ) override;
- virtual void KeyInput( const KeyEvent& rEvt ) override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
+ DECL_LINK(MousePressHdl, const MouseEvent&, bool);
public:
OTableWindowTitle( OTableWindow* pParent );
virtual ~OTableWindowTitle() override;
virtual void dispose() override;
- virtual void LoseFocus() override;
- virtual void GetFocus() override;
- virtual void RequestHelp( const HelpEvent& rHEvt ) override;
- // window override
- virtual void StateChanged( StateChangedType nStateChange ) override;
+
+ weld::Label& GetLabel() { return *m_xLabel; }
+ weld::Image& GetImage() { return *m_xImage; }
};
}
diff --git a/dbaccess/source/ui/inc/TokenWriter.hxx b/dbaccess/source/ui/inc/TokenWriter.hxx
index 82e36240fc29..3a4bfc359f0b 100644
--- a/dbaccess/source/ui/inc/TokenWriter.hxx
+++ b/dbaccess/source/ui/inc/TokenWriter.hxx
@@ -46,7 +46,6 @@ class SvStream;
namespace dbaui
{
// ODatabaseImportExport base class for import/export
- class ODatabaseExport;
class ODatabaseImportExport : public ::cppu::WeakImplHelper< css::lang::XEventListener>
{
protected:
@@ -83,7 +82,7 @@ namespace dbaui
const css::uno::Reference< css::util::XNumberFormatter >& _rxNumberF);
// import data
- ODatabaseImportExport( const SharedConnection& _rxConnection,
+ ODatabaseImportExport( SharedConnection _xConnection,
const css::uno::Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rM);
diff --git a/dbaccess/source/ui/inc/UITools.hxx b/dbaccess/source/ui/inc/UITools.hxx
index c6fafa1b0926..f45213a28b49 100644
--- a/dbaccess/source/ui/inc/UITools.hxx
+++ b/dbaccess/source/ui/inc/UITools.hxx
@@ -24,8 +24,10 @@
#include <editeng/svxenum.hxx>
#include <vcl/taskpanelist.hxx>
#include <connectivity/dbtools.hxx>
+#include <unotools/resmgr.hxx>
#include <memory>
+#include <string_view>
#define RET_ALL 100
@@ -42,11 +44,6 @@ namespace com::sun::star {
{
class XEventListener;
}
- namespace awt
- {
- struct FontDescriptor;
- class XWindow;
- }
namespace sdbc
{
class XDatabaseMetaData;
@@ -54,7 +51,6 @@ namespace com::sun::star {
}
namespace util
{
- struct URL;
class XNumberFormatter;
}
namespace ucb { class XContent; }
@@ -71,8 +67,6 @@ namespace weld {
class Widget;
class Window;
}
-class ToolBox;
-namespace vcl { class Font; }
class SvNumberFormatter;
class SfxFilter;
@@ -113,7 +107,7 @@ namespace dbaui
@param _rTypeInfoIters the vector filled with map iterators
*/
void fillTypeInfo( const css::uno::Reference< css::sdbc::XConnection>& _rxConnection,
- const OUString& _rsTypeNames,
+ std::u16string_view _rsTypeNames,
OTypeInfoMap& _rTypeInfoMap,
std::vector<OTypeInfoMap::iterator>& _rTypeInfoIters);
@@ -138,7 +132,7 @@ namespace dbaui
@param SvxCellHorJustify& _eAlignment
@return the corresponding css::awt::TextAlign
*/
- sal_Int32 mapTextAllign(const SvxCellHorJustify& _eAlignment);
+ sal_Int32 mapTextAlign(const SvxCellHorJustify& _eAlignment);
/** retrieves a data source given by name or URL, and displays an error if this fails
@@ -309,7 +303,7 @@ namespace dbaui
@return
RET_YES, RET_NO, RET_ALL
*/
- sal_Int32 askForUserAction(weld::Window* pParent, const char* pTitle, const char* pText, bool bAll, const OUString& rName);
+ sal_Int32 askForUserAction(weld::Window* pParent, TranslateId pTitle, TranslateId pText, bool bAll, std::u16string_view rName);
/** creates a new view from a query or table
@param _sName
@@ -370,7 +364,7 @@ namespace dbaui
@return
<TRUE/> if the insert operation was successful, otherwise <FALSE/>.
*/
- bool insertHierachyElement(
+ bool insertHierarchyElement(
weld::Window* pParent,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const css::uno::Reference< css::container::XHierarchicalNameContainer>& _xNames,
diff --git a/dbaccess/source/ui/inc/UserAdminDlg.hxx b/dbaccess/source/ui/inc/UserAdminDlg.hxx
index 941eab5faed3..8787e10f39e5 100644
--- a/dbaccess/source/ui/inc/UserAdminDlg.hxx
+++ b/dbaccess/source/ui/inc/UserAdminDlg.hxx
@@ -27,9 +27,6 @@ namespace com::sun::star {
namespace sdbc {
class XConnection;
}
- namespace lang {
- class XMultiServiceFactory;
- }
}
namespace dbaui
@@ -47,7 +44,7 @@ namespace dbaui
css::uno::Reference< css::sdbc::XConnection> m_xConnection;
bool m_bOwnConnection;
protected:
- virtual void PageCreated(const OString& rId, SfxTabPage& _rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage& _rPage) override;
public:
OUserAdminDlg(weld::Window* pParent, SfxItemSet* pItems,
const css::uno::Reference< css::uno::XComponentContext >& rxORB,
diff --git a/dbaccess/source/ui/inc/WCPage.hxx b/dbaccess/source/ui/inc/WCPage.hxx
index 2ebb3a5ec441..e23d64f59940 100644
--- a/dbaccess/source/ui/inc/WCPage.hxx
+++ b/dbaccess/source/ui/inc/WCPage.hxx
@@ -22,8 +22,6 @@
namespace dbaui
{
- class OWizColumnSelect;
- class OWizNormalExtend;
class OCopyTable final : public OWizardPage
{
bool m_bPKeyAllowed;
@@ -40,9 +38,8 @@ namespace dbaui
std::unique_ptr<weld::Label> m_xFT_KeyName;
std::unique_ptr<weld::Entry> m_xEdKeyName;
- DECL_LINK( AppendDataClickHdl, weld::Button&, void );
- DECL_LINK( RadioChangeHdl, weld::Button&, void );
- DECL_LINK( KeyClickHdl, weld::Button&, void );
+ DECL_LINK( RadioChangeHdl, weld::Toggleable&, void );
+ DECL_LINK( KeyClickHdl, weld::Toggleable&, void );
bool checkAppendData();
void SetAppendDataRadio();
diff --git a/dbaccess/source/ui/inc/WColumnSelect.hxx b/dbaccess/source/ui/inc/WColumnSelect.hxx
index 405ac7f31c2b..38b1317fd507 100644
--- a/dbaccess/source/ui/inc/WColumnSelect.hxx
+++ b/dbaccess/source/ui/inc/WColumnSelect.hxx
@@ -49,7 +49,7 @@ namespace dbaui
OFieldDescription const * _pSrcField,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase);
@@ -57,14 +57,14 @@ namespace dbaui
weld::TreeView const * _pLeft,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase);
void enableButtons();
sal_Int32 adjustColumnPosition(weld::TreeView const * _pLeft,
- const OUString& _sColumnName,
+ std::u16string_view _sColumnName,
ODatabaseExport::TColumnVector::size_type nCurrentPos,
const ::comphelper::UStringMixEqual& _aCase);
diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx b/dbaccess/source/ui/inc/WCopyTable.hxx
index 6307234e89de..84b9182fe5f6 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -26,7 +26,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <comphelper/stl_types.hxx>
#include "TypeInfo.hxx"
-#include <vcl/roadmapwizard.hxx>
+#include <vcl/roadmapwizardmachine.hxx>
#include "DExport.hxx"
#include "WTabPage.hxx"
#include "FieldDescriptions.hxx"
@@ -61,7 +61,7 @@ namespace dbaui
bool operator()(const OUString& _sColumnName) const override
{
- return m_pColumns->find(_sColumnName) != m_pColumns->end();
+ return m_pColumns->contains(_sColumnName);
}
};
@@ -183,7 +183,7 @@ namespace dbaui
public:
NamedTableCopySource(
const css::uno::Reference< css::sdbc::XConnection >& _rxConnection,
- const OUString& _rTableName
+ OUString _sTableName
);
// ICopyTableSourceObject overridables
@@ -309,9 +309,9 @@ namespace dbaui
// used for importing rtf/html sources
OCopyTableWizard(
weld::Window* pParent,
- const OUString& _rDefaultName,
+ OUString _sDefaultName,
sal_Int16 _nOperation,
- const ODatabaseExport::TColumns& _rDestColumns,
+ ODatabaseExport::TColumns&& _rDestColumns,
const ODatabaseExport::TColumnVector& _rSourceColVec,
const css::uno::Reference< css::sdbc::XConnection >& _xConnection,
const css::uno::Reference< css::util::XNumberFormatter >& _xFormatter,
@@ -395,14 +395,14 @@ namespace dbaui
OUString convertColumnName( const TColumnFindFunctor& _rCmpFunctor,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen);
TOTypeInfoSP convertType(const TOTypeInfoSP&_pType, bool& _bNotConvert);
OUString createUniqueName(const OUString& _sName);
// displays an error message that a column type is not supported
- void showColumnTypeNotSupported(const OUString& _rColumnName);
+ void showColumnTypeNotSupported(std::u16string_view _rColumnName);
void removeColumnNameFromNameMap(const OUString& _sName);
void showError(const OUString& _sErrorMessage);
diff --git a/dbaccess/source/ui/inc/WTabPage.hxx b/dbaccess/source/ui/inc/WTabPage.hxx
index cc7564cbae59..ef3d7f23b20c 100644
--- a/dbaccess/source/ui/inc/WTabPage.hxx
+++ b/dbaccess/source/ui/inc/WTabPage.hxx
@@ -31,7 +31,7 @@ namespace dbaui
OCopyTableWizard* m_pParent;
bool m_bFirstTime; // Page is called the first time; should be set in the reset method
- OWizardPage(weld::Container* pPage, OCopyTableWizard* pWizard, const OUString& rUIXMLDescription, const OString& rID);
+ OWizardPage(weld::Container* pPage, OCopyTableWizard* pWizard, const OUString& rUIXMLDescription, const OUString& rID);
public:
virtual ~OWizardPage() override;
diff --git a/dbaccess/source/ui/inc/WTypeSelect.hxx b/dbaccess/source/ui/inc/WTypeSelect.hxx
index 7abc582c76b0..3c206d0fecb1 100644
--- a/dbaccess/source/ui/inc/WTypeSelect.hxx
+++ b/dbaccess/source/ui/inc/WTypeSelect.hxx
@@ -27,7 +27,6 @@ class SvStream;
namespace dbaui
{
class OWizTypeSelect;
- class OTableDesignHelpBar;
// OWizTypeSelectControl
class OWizTypeSelectControl final : public OFieldDescControl
{
@@ -35,7 +34,7 @@ namespace dbaui
virtual void ActivateAggregate( EControlType eType ) override;
virtual void DeactivateAggregate( EControlType eType ) override;
- virtual void CellModified(tools::Long nRow, sal_uInt16 nColId ) override;
+ virtual void CellModified(sal_Int32 nRow, sal_uInt16 nColId ) override;
virtual css::lang::Locale GetLocale() const override;
virtual css::uno::Reference< css::util::XNumberFormatter > GetFormatter() const override;
@@ -87,7 +86,7 @@ namespace dbaui
void connect_changed(const Link<weld::TreeView&, void>& rLink)
{
m_aChangeHdl = rLink;
- m_xControl->connect_changed(rLink);
+ m_xControl->connect_selection_changed(rLink);
}
};
@@ -103,7 +102,6 @@ namespace dbaui
DECL_LINK( ButtonClickHdl, weld::Button&, void );
protected:
std::unique_ptr<OWizTypeSelectList> m_xColumnNames;
- std::unique_ptr<weld::Label> m_xColumns;
std::unique_ptr<weld::Container> m_xControlContainer;
std::unique_ptr<OWizTypeSelectControl> m_xTypeControl;
std::unique_ptr<weld::Label> m_xAutoType;
diff --git a/dbaccess/source/ui/inc/adtabdlg.hxx b/dbaccess/source/ui/inc/adtabdlg.hxx
index a6842081d2dc..5fe1d7c1da42 100644
--- a/dbaccess/source/ui/inc/adtabdlg.hxx
+++ b/dbaccess/source/ui/inc/adtabdlg.hxx
@@ -70,7 +70,7 @@ namespace dbaui
DECL_LINK( CloseClickHdl, weld::Button&, void);
DECL_LINK( TableListDoubleClickHdl, weld::TreeView&, bool );
DECL_LINK( TableListSelectHdl, weld::TreeView&, void );
- DECL_LINK( OnTypeSelected, weld::Button&, void );
+ DECL_LINK( OnTypeSelected, weld::Toggleable&, void );
public:
OAddTableDlg(weld::Window* _pParent,
diff --git a/dbaccess/source/ui/inc/advancedsettingsdlg.hxx b/dbaccess/source/ui/inc/advancedsettingsdlg.hxx
index b28fe5ce3857..7c38562145a5 100644
--- a/dbaccess/source/ui/inc/advancedsettingsdlg.hxx
+++ b/dbaccess/source/ui/inc/advancedsettingsdlg.hxx
@@ -37,7 +37,7 @@ namespace dbaui
std::unique_ptr<ODbDataSourceAdministrationHelper> m_pImpl;
protected:
- virtual void PageCreated(const OString& rId, SfxTabPage& _rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage& _rPage) override;
virtual short Ok() override;
public:
diff --git a/dbaccess/source/ui/inc/browserids.hxx b/dbaccess/source/ui/inc/browserids.hxx
index c31ab9f20608..0c510497dea1 100644
--- a/dbaccess/source/ui/inc/browserids.hxx
+++ b/dbaccess/source/ui/inc/browserids.hxx
@@ -50,7 +50,6 @@
#define ID_BROWSER_COLWIDTH 10021 // column width
#define ID_BROWSER_TABLEATTR 10022 // table format attributes
#define ID_BROWSER_ROWHEIGHT 10023 // row height
-#define ID_BROWSER_COLUMNINFO 10024 // copies the column description to insert it into the table design
#define ID_BROWSER_ADDTABLE SID_FM_ADDTABLE
#define ID_BROWSER_EXPLORER SID_DSBROWSER_EXPLORER
#define ID_BROWSER_DOCUMENT_DATASOURCE SID_DOCUMENT_DATA_SOURCE
diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx
index d4f2d5787ec0..38c8ecc40f35 100644
--- a/dbaccess/source/ui/inc/brwctrlr.hxx
+++ b/dbaccess/source/ui/inc/brwctrlr.hxx
@@ -45,11 +45,6 @@
struct FmFoundRecordInformation;
struct FmSearchContext;
-namespace dbtools
-{
- class SQLExceptionInfo;
-}
-
namespace dbaui
{
@@ -79,7 +74,6 @@ namespace dbaui
css::uno::Reference< css::form::XLoadable > m_xLoadable; // queried from the rowset member as well
css::uno::Reference< css::form::XFormComponent > m_xGridModel; // the model of our grid
css::uno::Reference< css::util::XNumberFormatter > m_xFormatter; // a number formatter working with the connection's NumberFormatsSupplier
- css::uno::Reference< css::uno::XAggregation > m_xFormControllerImpl;
mutable css::uno::Reference< css::sdb::XSingleSelectQueryComposer >
m_xParser; // for sorting 'n filtering
@@ -100,7 +94,7 @@ namespace dbaui
OUString m_sModuleIdentifier;
// members for asynchronous load operations
- FormControllerImpl* m_pFormControllerImpl; // implementing the XFormController
+ rtl::Reference<FormControllerImpl> m_xFormControllerImpl; // implementing the XFormController
sal_uInt16 m_nFormActionNestingLevel; // see enter-/leaveFormAction
diff --git a/dbaccess/source/ui/inc/brwview.hxx b/dbaccess/source/ui/inc/brwview.hxx
index 2d8b4f879dc3..d7c83a4062f1 100644
--- a/dbaccess/source/ui/inc/brwview.hxx
+++ b/dbaccess/source/ui/inc/brwview.hxx
@@ -26,7 +26,6 @@
#include "dbtreelistbox.hxx"
namespace com::sun::star::awt {
- class XControl;
class XControlContainer;
class XControlModel;
}
@@ -36,20 +35,20 @@ class Splitter;
namespace dbaui
{
class SbaGridControl;
+ class SbaXGridControl;
class UnoDataBrowserView final : public ODataView, public ::utl::OEventListenerAdapter
{
- css::uno::Reference< css::awt::XControl > m_xGrid; // our grid's UNO representation
+ rtl::Reference< SbaXGridControl > m_xGrid; // our grid's UNO representation
css::uno::Reference< css::awt::XControlContainer > m_xMe; // our own UNO representation
VclPtr<InterimDBTreeListBox> m_pTreeView;
VclPtr<Splitter> m_pSplitter;
mutable VclPtr<SbaGridControl> m_pVclControl; // our grid's VCL representation
- VclPtr<vcl::Window> m_pStatus;
DECL_LINK( SplitHdl, Splitter*, void );
// attribute access
public:
- const css::uno::Reference< css::awt::XControl >& getGridControl() const { return m_xGrid; }
+ const rtl::Reference< SbaXGridControl >& getGridControl() const { return m_xGrid; }
SbaGridControl* getVclControl() const;
UnoDataBrowserView( vcl::Window* pParent,
diff --git a/dbaccess/source/ui/inc/callbacks.hxx b/dbaccess/source/ui/inc/callbacks.hxx
index 38e419b5b289..e380b2671d6c 100644
--- a/dbaccess/source/ui/inc/callbacks.hxx
+++ b/dbaccess/source/ui/inc/callbacks.hxx
@@ -22,8 +22,6 @@
#include <sot/exchange.hxx>
class Point;
-class PopupMenu;
-class Control;
struct AcceptDropEvent;
struct ExecuteDropEvent;
diff --git a/dbaccess/source/ui/inc/charsetlistbox.hxx b/dbaccess/source/ui/inc/charsetlistbox.hxx
index aedfb6ec50a4..a12b425cd9c1 100644
--- a/dbaccess/source/ui/inc/charsetlistbox.hxx
+++ b/dbaccess/source/ui/inc/charsetlistbox.hxx
@@ -19,10 +19,12 @@
#pragma once
+#include <svl/typedwhich.hxx>
#include <vcl/weld.hxx>
#include "charsets.hxx"
class SfxItemSet;
+class SfxStringItem;
namespace dbaui
{
@@ -32,8 +34,8 @@ namespace dbaui
public:
CharSetListBox(std::unique_ptr<weld::ComboBox> xControl);
- void SelectEntryByIanaName( const OUString& _rIanaName );
- bool StoreSelectedCharSet( SfxItemSet& _rSet, const sal_uInt16 _nItemId );
+ void SelectEntryByIanaName( std::u16string_view _rIanaName );
+ bool StoreSelectedCharSet( SfxItemSet& _rSet, TypedWhichId<SfxStringItem> _nItemId );
weld::ComboBox* get_widget() { return m_xControl.get(); }
void connect_changed(const Link<weld::ComboBox&, void>& rLink) { m_xControl->connect_changed(rLink); }
diff --git a/dbaccess/source/ui/inc/charsets.hxx b/dbaccess/source/ui/inc/charsets.hxx
index ed1f88d7beab..49977bd56262 100644
--- a/dbaccess/source/ui/inc/charsets.hxx
+++ b/dbaccess/source/ui/inc/charsets.hxx
@@ -43,7 +43,7 @@ namespace dbaui
// various find operations
const_iterator findEncoding(const rtl_TextEncoding _eEncoding) const;
- const_iterator findIanaName(const OUString& _rIanaName) const;
+ const_iterator findIanaName(std::u16string_view _rIanaName) const;
const_iterator findDisplayName(const OUString& _rDisplayName) const;
/// get access to the first element of the charset collection
@@ -72,7 +72,7 @@ namespace dbaui
const OUString& getDisplayName() const { return m_sDisplayName; }
private:
- CharsetDisplayDerefHelper(const ::dbtools::CharsetIteratorDerefHelper& _rBase, const OUString& _rDisplayName);
+ CharsetDisplayDerefHelper(const ::dbtools::CharsetIteratorDerefHelper& _rBase, OUString _sDisplayName);
};
//- OCharsetDisplay::ExtendedCharsetIterator
@@ -97,7 +97,7 @@ namespace dbaui
const ExtendedCharsetIterator& operator++();
protected:
- ExtendedCharsetIterator( const OCharsetDisplay* _pContainer, const base_iterator& _rPosition );
+ ExtendedCharsetIterator( const OCharsetDisplay* _pContainer, base_iterator _aPosition );
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/inc/curledit.hxx b/dbaccess/source/ui/inc/curledit.hxx
index a99c2c3affe3..6042f761ce2f 100644
--- a/dbaccess/source/ui/inc/curledit.hxx
+++ b/dbaccess/source/ui/inc/curledit.hxx
@@ -43,7 +43,7 @@ public:
public:
bool get_visible() const { return m_xEntry->get_visible(); }
void connect_changed(const Link<weld::Entry&, void>& rLink) { m_xEntry->connect_changed(rLink); }
- void set_help_id(const OString& rName) { m_xEntry->set_help_id(rName); }
+ void set_help_id(const OUString& rName) { m_xEntry->set_help_id(rName); }
void hide()
{
m_xEntry->hide();
diff --git a/dbaccess/source/ui/inc/databaseobjectview.hxx b/dbaccess/source/ui/inc/databaseobjectview.hxx
index d6b23878a8f0..46df99181627 100644
--- a/dbaccess/source/ui/inc/databaseobjectview.hxx
+++ b/dbaccess/source/ui/inc/databaseobjectview.hxx
@@ -91,7 +91,7 @@ namespace dbaui
const css::uno::Reference< css::uno::XComponentContext >& _rxORB,
const css::uno::Reference< css::sdb::application::XDatabaseDocumentUI >& _rxApplication,
const css::uno::Reference< css::frame::XFrame >& _rxParentFrame,
- const OUString& _rComponentURL
+ OUString _sComponentURL
);
virtual ~DatabaseObjectView(){}
diff --git a/dbaccess/source/ui/inc/datasourceconnector.hxx b/dbaccess/source/ui/inc/datasourceconnector.hxx
index 541c49607c90..56f7bf2f067b 100644
--- a/dbaccess/source/ui/inc/datasourceconnector.hxx
+++ b/dbaccess/source/ui/inc/datasourceconnector.hxx
@@ -48,7 +48,7 @@ namespace dbaui
ODatasourceConnector(
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
weld::Window* _pMessageParent,
- const OUString& _rContextInformation
+ OUString _sContextInformation
);
/// returns <TRUE/> if the object is able to create data source connections
diff --git a/dbaccess/source/ui/inc/dbadmin.hxx b/dbaccess/source/ui/inc/dbadmin.hxx
index eef3aed0874e..3d1457793640 100644
--- a/dbaccess/source/ui/inc/dbadmin.hxx
+++ b/dbaccess/source/ui/inc/dbadmin.hxx
@@ -22,18 +22,13 @@
#include <sfx2/tabdlg.hxx>
#include <dsntypes.hxx>
#include "IItemSetHelper.hxx"
+#include <unotools/resmgr.hxx>
#include <memory>
namespace com::sun::star {
namespace beans {
class XPropertySet;
}
- namespace sdbc {
- class XConnection;
- }
- namespace lang {
- class XMultiServiceFactory;
- }
}
namespace dbaui
@@ -48,7 +43,7 @@ class ODbAdminDialog final : public SfxTabDialogController, public IItemSetHelpe
private:
std::unique_ptr<ODbDataSourceAdministrationHelper> m_pImpl;
- OString m_sMainPageID;
+ OUString m_sMainPageID;
public:
/** ctor. The itemset given should have been created by <method>createItemSet</method> and should be destroyed
@@ -62,10 +57,10 @@ public:
@param _pTypeCollection pointer to an <type>ODatasourceMap</type>. May be NULL, in this case
the pool will not contain a typecollection default.
*/
- static void createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, SfxItemPool*& _rpPool, std::vector<SfxPoolItem*>*& _rpDefaults, ::dbaccess::ODsnTypeCollection* _pTypeCollection);
+ static void createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Reference<SfxItemPool>& _rpPool, ::dbaccess::ODsnTypeCollection* _pTypeCollection);
/** destroy and item set / item pool / pool defaults previously created by <method>createItemSet</method>
*/
- static void destroyItemSet(std::unique_ptr<SfxItemSet>& _rpSet, SfxItemPool*& _rpPool, std::vector<SfxPoolItem*>*& _rpDefaults);
+ static void destroyItemSet(std::unique_ptr<SfxItemSet>& _rpSet, rtl::Reference<SfxItemPool>& _rpPool);
/** selects the DataSource
@param _rName
@@ -88,9 +83,9 @@ public:
private:
// adds a new detail page and remove all the old ones
- void addDetailPage(const OString& rPageId, const char* pTextId, CreateTabPage pCreateFunc);
+ void addDetailPage(const OUString& rPageId, TranslateId pTextId, CreateTabPage pCreateFunc);
- virtual void PageCreated(const OString& rId, SfxTabPage& _rPage) override;
+ virtual void PageCreated(const OUString& rId, SfxTabPage& _rPage) override;
virtual short Ok() override;
/// select a datasource with a given name, adjust the item set accordingly, and everything like that ..
diff --git a/dbaccess/source/ui/inc/dbexchange.hxx b/dbaccess/source/ui/inc/dbexchange.hxx
index a5c2752d1656..050f5bd3b849 100644
--- a/dbaccess/source/ui/inc/dbexchange.hxx
+++ b/dbaccess/source/ui/inc/dbexchange.hxx
@@ -75,7 +75,7 @@ namespace dbaui
virtual void AddSupportedFormats() override;
virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
virtual void ObjectReleased() override;
- virtual bool WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& rFlavor ) override;
+ virtual bool WriteObject( SvStream& rOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& rFlavor ) override;
};
}
diff --git a/dbaccess/source/ui/inc/dbtreelistbox.hxx b/dbaccess/source/ui/inc/dbtreelistbox.hxx
index 73f1576e67e0..7682841a23ac 100644
--- a/dbaccess/source/ui/inc/dbtreelistbox.hxx
+++ b/dbaccess/source/ui/inc/dbtreelistbox.hxx
@@ -18,17 +18,12 @@
*/
#pragma once
-#include <com/sun/star/frame/XPopupMenuController.hpp>
-
#include <vcl/InterimItemWindow.hxx>
#include <vcl/transfer.hxx>
#include <vcl/timer.hxx>
#include <vcl/weld.hxx>
#include <memory>
-#include <set>
-
-#include "dbexchange.hxx"
namespace dbaui
{
@@ -95,7 +90,7 @@ namespace dbaui
TreeListBox(std::unique_ptr<weld::TreeView> xTreeView, bool bSQLType);
virtual ~TreeListBox();
- std::unique_ptr<weld::TreeIter> GetEntryPosByName(const OUString& rName,
+ std::unique_ptr<weld::TreeIter> GetEntryPosByName(std::u16string_view rName,
const weld::TreeIter* pStart = nullptr,
const IEntryFilter* pFilter = nullptr) const;
@@ -121,9 +116,12 @@ namespace dbaui
class InterimDBTreeListBox : public InterimItemWindow
, public TreeListBox
{
+ private:
+ std::unique_ptr<weld::Label> m_xStatusBar;
public:
- InterimDBTreeListBox(vcl::Window* pParent, bool bSQLType);
+ InterimDBTreeListBox(vcl::Window* pParent);
virtual void dispose() override;
+ weld::Label& GetStatusBar() { return *m_xStatusBar; }
virtual ~InterimDBTreeListBox() override;
void show_container() { m_xContainer->show(); }
protected:
diff --git a/dbaccess/source/ui/inc/dbu_dlg.hxx b/dbaccess/source/ui/inc/dbu_dlg.hxx
index f40e6f0b8375..ed97c4c937b5 100644
--- a/dbaccess/source/ui/inc/dbu_dlg.hxx
+++ b/dbaccess/source/ui/inc/dbu_dlg.hxx
@@ -18,7 +18,7 @@
*/
#pragma once
-#define WIZARD_PAGE_X 56
-#define WIZARD_PAGE_Y 30
+#define WIZARD_PAGE_X 56
+#define WIZARD_PAGE_Y 30
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/dbwiz.hxx b/dbaccess/source/ui/inc/dbwiz.hxx
index 0c51ab1a9cfb..985735ce3e0c 100644
--- a/dbaccess/source/ui/inc/dbwiz.hxx
+++ b/dbaccess/source/ui/inc/dbwiz.hxx
@@ -24,20 +24,7 @@
#include <vcl/wizardmachine.hxx>
#include <memory>
-namespace com::sun::star {
- namespace beans {
- class XPropertySet;
- }
- namespace sdbc {
- class XConnection;
- }
- namespace lang {
- class XMultiServiceFactory;
- }
-}
-
using vcl::WizardTypes::WizardState;
-using vcl::WizardTypes::CommitPageReason;
namespace dbaccess
{
diff --git a/dbaccess/source/ui/inc/dbwizsetup.hxx b/dbaccess/source/ui/inc/dbwizsetup.hxx
index 424a34534c60..abad4671bf42 100644
--- a/dbaccess/source/ui/inc/dbwizsetup.hxx
+++ b/dbaccess/source/ui/inc/dbwizsetup.hxx
@@ -23,22 +23,15 @@
#include "IItemSetHelper.hxx"
#include <tools/urlobj.hxx>
#include <memory>
-#include <vcl/roadmapwizard.hxx>
+#include <vcl/roadmapwizardmachine.hxx>
namespace com::sun::star {
namespace beans {
class XPropertySet;
}
- namespace sdbc {
- class XConnection;
- }
- namespace lang {
- class XMultiServiceFactory;
- }
}
using vcl::WizardTypes::WizardState;
-using vcl::WizardTypes::CommitPageReason;
using vcl::RoadmapWizardTypes::PathId;
namespace dbaui
@@ -72,6 +65,7 @@ private:
OUString m_sRM_JDBCText;
OUString m_sRM_MySQLNativePageTitle;
OUString m_sRM_OracleText;
+ OUString m_sRM_PostgresText;
OUString m_sRM_MySQLText;
OUString m_sRM_ODBCText;
OUString m_sRM_DocumentOrSpreadSheetText;
@@ -147,7 +141,7 @@ private:
*/
void declareAuthDepPath( const OUString& _sURL, PathId _nPathId, const vcl::RoadmapWizardTypes::WizardPath& _rPaths);
- void RegisterDataSourceByLocation(const OUString& sPath);
+ void RegisterDataSourceByLocation(std::u16string_view sPath);
bool SaveDatabaseDocument();
void activateDatabasePath();
OUString createUniqueFileName(const INetURLObject& rURL);
diff --git a/dbaccess/source/ui/inc/defaultobjectnamecheck.hxx b/dbaccess/source/ui/inc/defaultobjectnamecheck.hxx
index 59705fe61260..c75528940e15 100644
--- a/dbaccess/source/ui/inc/defaultobjectnamecheck.hxx
+++ b/dbaccess/source/ui/inc/defaultobjectnamecheck.hxx
@@ -23,6 +23,7 @@
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
+#include <com/sun/star/sdb/tools/XConnectionTools.hpp>
#include <memory>
@@ -30,14 +31,14 @@ namespace dbaui
{
// HierarchicalNameCheck
- struct HierarchicalNameCheck_Impl;
/** class implementing the IObjectNameCheck interface, and checking given object names
against a hierarchical name container
*/
class HierarchicalNameCheck :public IObjectNameCheck
{
private:
- std::unique_ptr< HierarchicalNameCheck_Impl > m_pImpl;
+ css::uno::Reference< css::container::XHierarchicalNameAccess > mxHierarchicalNames;
+ OUString msRelativeRoot;
public:
/** constructs a HierarchicalNameCheck instance
@@ -67,7 +68,6 @@ namespace dbaui
};
// DynamicTableOrQueryNameCheck
- struct DynamicTableOrQueryNameCheck_Impl;
/** class implementing the IObjectNameCheck interface, and checking a given name
for being valid as either a query or a table name.
@@ -84,7 +84,8 @@ namespace dbaui
class DynamicTableOrQueryNameCheck :public IObjectNameCheck
{
private:
- std::unique_ptr< DynamicTableOrQueryNameCheck_Impl > m_pImpl;
+ sal_Int32 mnCommandType;
+ css::uno::Reference< css::sdb::tools::XObjectNames > mxObjectNames;
public:
/** constructs a DynamicTableOrQueryNameCheck instance
diff --git a/dbaccess/source/ui/inc/directsql.hxx b/dbaccess/source/ui/inc/directsql.hxx
index cbf257e8a080..4d141d8a2f02 100644
--- a/dbaccess/source/ui/inc/directsql.hxx
+++ b/dbaccess/source/ui/inc/directsql.hxx
@@ -21,12 +21,9 @@
#include <sal/config.h>
-#include <comphelper/syntaxhighlight.hxx>
-#include <sal/log.hxx>
-#include <svtools/colorcfg.hxx>
-#include <vcl/timer.hxx>
#include <vcl/weld.hxx>
#include <deque>
+#include <string_view>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <unotools/eventlisteneradapter.hxx>
@@ -48,6 +45,7 @@ namespace dbaui
std::unique_ptr<weld::Button> m_xExecute;
std::unique_ptr<weld::ComboBox> m_xSQLHistory;
std::unique_ptr<weld::TextView> m_xStatus;
+ std::unique_ptr<weld::CheckButton> m_xDirectSQL;
std::unique_ptr<weld::CheckButton> m_xShowOutput;
std::unique_ptr<weld::TextView> m_xOutput;
std::unique_ptr<weld::Button> m_xClose;
@@ -88,7 +86,7 @@ namespace dbaui
DECL_LINK( OnStatementModified, LinkParamNone*, void );
/// adds a statement to the statement history
- void implAddToStatementHistory(const OUString& _rStatement);
+ void implAddToStatementHistory(const OUString& _rStatement, const bool bFromMemory = false);
/// ensures that our history has at most m_nHistoryLimit entries
void implEnsureHistoryLimit();
@@ -97,10 +95,10 @@ namespace dbaui
void implExecuteStatement(const OUString& _rStatement);
/// adds a status text to the status list
- void addStatusText(const OUString& _rMessage);
+ void addStatusText(std::u16string_view _rMessage);
/// adds a status text to the output list
- void addOutputText(const OUString& _rMessage);
+ void addOutputText(std::u16string_view _rMessage);
/// displays resultset
void display(const css::uno::Reference< css::sdbc::XResultSet >& xRS);
@@ -110,17 +108,6 @@ namespace dbaui
#endif
};
-#ifdef DBG_UTIL
-#define CHECK_INVARIANTS(methodname) \
- { \
- const char* pError = impl_CheckInvariants(); \
- if (pError) \
- SAL_WARN("dbaccess.ui", methodname ": " << pError); \
- }
-#else
-#define CHECK_INVARIANTS(methodname)
-#endif
-
} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/dlgattr.hxx b/dbaccess/source/ui/inc/dlgattr.hxx
index 6c3a00f95472..83fe0466e4f8 100644
--- a/dbaccess/source/ui/inc/dlgattr.hxx
+++ b/dbaccess/source/ui/inc/dlgattr.hxx
@@ -34,7 +34,7 @@ namespace dbaui
SbaSbAttrDlg(weld::Widget* pParent, const SfxItemSet*, SvNumberFormatter*, bool bHasFormat);
virtual ~SbaSbAttrDlg() override;
- virtual void PageCreated(const OString& rPageId, SfxTabPage& rTabPage) override;
+ virtual void PageCreated(const OUString& rPageId, SfxTabPage& rTabPage) override;
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/inc/dlgsave.hxx b/dbaccess/source/ui/inc/dlgsave.hxx
index d56fc6ade293..f3b33a278500 100644
--- a/dbaccess/source/ui/inc/dlgsave.hxx
+++ b/dbaccess/source/ui/inc/dlgsave.hxx
@@ -19,6 +19,8 @@
#pragma once
+#include "SqlNameEdit.hxx"
+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <o3tl/typed_flags_set.hxx>
#include <vcl/weld.hxx>
@@ -42,13 +44,30 @@ namespace o3tl {
namespace dbaui
{
- class OSaveAsDlgImpl;
class IObjectNameCheck;
class OSaveAsDlg : public weld::GenericDialogController
{
private:
- std::unique_ptr<OSaveAsDlgImpl> m_pImpl;
css::uno::Reference< css::uno::XComponentContext > m_xContext;
+ OUString m_aName;
+ const IObjectNameCheck& m_rObjectNameCheck;
+ css::uno::Reference< css::sdbc::XDatabaseMetaData> m_xMetaData;
+ sal_Int32 m_nType;
+ SADFlags m_nFlags;
+
+ OSQLNameChecker m_aChecker;
+
+ std::unique_ptr<weld::Label> m_xDescription;
+ std::unique_ptr<weld::Label> m_xCatalogLbl;
+ std::unique_ptr<weld::ComboBox> m_xCatalog;
+ std::unique_ptr<weld::Label> m_xSchemaLbl;
+ std::unique_ptr<weld::ComboBox> m_xSchema;
+ std::unique_ptr<weld::Label> m_xLabel;
+ std::unique_ptr<weld::Entry> m_xTitle;
+ std::unique_ptr<weld::Button> m_xPB_OK;
+
+ DECL_LINK(TextFilterHdl, OUString&, bool);
+
public:
OSaveAsDlg( weld::Window * pParent, sal_Int32 _rType,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
diff --git a/dbaccess/source/ui/inc/dlgsize.hxx b/dbaccess/source/ui/inc/dlgsize.hxx
index 3d530c193bc8..5a673d7122b3 100644
--- a/dbaccess/source/ui/inc/dlgsize.hxx
+++ b/dbaccess/source/ui/inc/dlgsize.hxx
@@ -29,7 +29,7 @@ namespace dbaui
sal_Int32 m_nPrevValue;
void SetValue( sal_Int32 nVal );
- DECL_LINK(CbClickHdl, weld::ToggleButton&, void);
+ DECL_LINK(CbClickHdl, weld::Toggleable&, void);
std::unique_ptr<weld::MetricSpinButton> m_xMF_VALUE;
std::unique_ptr<weld::CheckButton> m_xCB_STANDARD;
diff --git a/dbaccess/source/ui/inc/dsitems.hxx b/dbaccess/source/ui/inc/dsitems.hxx
index 09410d31b83f..9d2d3544325c 100644
--- a/dbaccess/source/ui/inc/dsitems.hxx
+++ b/dbaccess/source/ui/inc/dsitems.hxx
@@ -20,76 +20,83 @@
#pragma once
#include <sal/types.h>
+#include <svl/typedwhich.hxx>
+
+class OptionalBoolItem;
+class SfxBoolItem;
+class SfxInt32Item;
+class SfxStringItem;
typedef sal_Int32 ItemID;
// item ids for the data source administration dialog
-#define DSID_NAME 1 // name of a data source, SfxStringItem
-#define DSID_ORIGINALNAME 2 // original name, internal, SfxStringItem
-#define DSID_CONNECTURL 3 // connection URL, SfxStringItem
+#define DSID_NAME TypedWhichId<SfxStringItem>(1) // name of a data source, SfxStringItem
+#define DSID_ORIGINALNAME TypedWhichId<SfxStringItem>(2) // original name, internal, SfxStringItem
+#define DSID_CONNECTURL TypedWhichId<SfxStringItem>(3) // connection URL, SfxStringItem
#define DSID_TABLEFILTER 4 // table filter, OStringListItem
#define DSID_TYPECOLLECTION 5 // collection of data source types, ODsnTypeCollection
-#define DSID_INVALID_SELECTION 6 // is the selection (thus the set data) invalid?, SfxBoolItem
-#define DSID_READONLY 7 // is the selection (thus the set data) readonly?, SfxBoolItem
-#define DSID_USER 8 // the user name used for logon, SfxStringItem
-#define DSID_PASSWORD 9 // the password used for logon, SfxStringItem
-#define DSID_ADDITIONALOPTIONS 10 // additional options used for connecting, SfxStringItem
-#define DSID_CHARSET 11 // character set to use, SfxStringItem by now
-#define DSID_PASSWORDREQUIRED 12 // is the password required to connect?, SfxBoolItem
-#define DSID_SHOWDELETEDROWS 13 // show deleted rows?, SfxBoolItem
-#define DSID_ALLOWLONGTABLENAMES 14 // allow tables names longer than 8.3?, SfxBoolItem
-#define DSID_JDBCDRIVERCLASS 15 // JDBC driver class, SfxStringItem
-#define DSID_FIELDDELIMITER 16 // field delimiter, SfxUInt16Item
-#define DSID_TEXTDELIMITER 17 // text delimiter, SfxUInt16Item
-#define DSID_DECIMALDELIMITER 18 // decimal delimiter, SfxUInt16Item
-#define DSID_THOUSANDSDELIMITER 19 // thousands delimiter, SfxUInt16Item
-#define DSID_TEXTFILEEXTENSION 20 // extension for text files, SfxStringItem
-#define DSID_TEXTFILEHEADER 21 // the text file contains a header?, SfxBoolItem
-#define DSID_PARAMETERNAMESUBST 22
-#define DSID_CONN_PORTNUMBER 23
-#define DSID_SUPPRESSVERSIONCL 24 // meta data: sal_True if the data source described by the set is to-be-deleted
-#define DSID_CONN_SHUTSERVICE 25
-#define DSID_CONN_DATAINC 26
-#define DSID_CONN_CACHESIZE 27
-#define DSID_CONN_CTRLUSER 28
-#define DSID_CONN_CTRLPWD 29
-#define DSID_USECATALOG 30 // should the driver use the catalog name when the database is filebased
-#define DSID_CONN_HOSTNAME 31
-#define DSID_CONN_LDAP_BASEDN 32
-#define DSID_CONN_LDAP_PORTNUMBER 33
-#define DSID_CONN_LDAP_ROWCOUNT 34
-#define DSID_SQL92CHECK 35
-#define DSID_AUTOINCREMENTVALUE 36
-#define DSID_AUTORETRIEVEVALUE 37
-#define DSID_AUTORETRIEVEENABLED 38
-#define DSID_APPEND_TABLE_ALIAS 39
-#define DSID_MYSQL_PORTNUMBER 40
-#define DSID_IGNOREDRIVER_PRIV 41
-#define DSID_BOOLEANCOMPARISON 42
-#define DSID_ORACLE_PORTNUMBER 43
-#define DSID_ENABLEOUTERJOIN 44
-#define DSID_CATALOG 45
-#define DSID_SCHEMA 46
-#define DSID_INDEXAPPENDIX 47
-#define DSID_CONN_LDAP_USESSL 48
-#define DSID_DOCUMENT_URL 49
-#define DSID_DOSLINEENDS 50
-#define DSID_DATABASENAME 51
-#define DSID_AS_BEFORE_CORRNAME 52
-#define DSID_CHECK_REQUIRED_FIELDS 53
-#define DSID_IGNORECURRENCY 54
-#define DSID_CONN_SOCKET 55
-#define DSID_ESCAPE_DATETIME 56
-#define DSID_NAMED_PIPE 57
-#define DSID_PRIMARY_KEY_SUPPORT 58
-#define DSID_MAX_ROW_SCAN 59
-#define DSID_RESPECTRESULTSETTYPE 60
+#define DSID_INVALID_SELECTION TypedWhichId<SfxBoolItem>(6) // is the selection (thus the set data) invalid?, SfxBoolItem
+#define DSID_READONLY TypedWhichId<SfxBoolItem>(7) // is the selection (thus the set data) readonly?, SfxBoolItem
+#define DSID_USER TypedWhichId<SfxStringItem>(8) // the user name used for logon, SfxStringItem
+#define DSID_PASSWORD TypedWhichId<SfxStringItem>(9) // the password used for logon, SfxStringItem
+#define DSID_ADDITIONALOPTIONS TypedWhichId<SfxStringItem>(10) // additional options used for connecting, SfxStringItem
+#define DSID_CHARSET TypedWhichId<SfxStringItem>(11) // character set to use, SfxStringItem by now
+#define DSID_PASSWORDREQUIRED TypedWhichId<SfxBoolItem>(12) // is the password required to connect?, SfxBoolItem
+#define DSID_SHOWDELETEDROWS TypedWhichId<SfxBoolItem>(13) // show deleted rows?, SfxBoolItem
+#define DSID_ALLOWLONGTABLENAMES TypedWhichId<SfxBoolItem>(14) // allow tables names longer than 8.3?, SfxBoolItem
+#define DSID_JDBCDRIVERCLASS TypedWhichId<SfxStringItem>(15) // JDBC driver class, SfxStringItem
+#define DSID_FIELDDELIMITER TypedWhichId<SfxStringItem>(16) // field delimiter, SfxUInt16Item
+#define DSID_TEXTDELIMITER TypedWhichId<SfxStringItem>(17) // text delimiter, SfxUInt16Item
+#define DSID_DECIMALDELIMITER TypedWhichId<SfxStringItem>(18) // decimal delimiter, SfxUInt16Item
+#define DSID_THOUSANDSDELIMITER TypedWhichId<SfxStringItem>(19) // thousands delimiter, SfxUInt16Item
+#define DSID_TEXTFILEEXTENSION TypedWhichId<SfxStringItem>(20) // extension for text files, SfxStringItem
+#define DSID_TEXTFILEHEADER TypedWhichId<SfxBoolItem>(21) // the text file contains a header?, SfxBoolItem
+#define DSID_PARAMETERNAMESUBST TypedWhichId<SfxBoolItem>(22)
+#define DSID_CONN_PORTNUMBER TypedWhichId<SfxInt32Item>(23)
+#define DSID_SUPPRESSVERSIONCL TypedWhichId<SfxBoolItem>(24) // meta data: sal_True if the data source described by the set is to-be-deleted
+#define DSID_CONN_SHUTSERVICE TypedWhichId<SfxBoolItem>(25)
+#define DSID_CONN_DATAINC TypedWhichId<SfxInt32Item>(26)
+#define DSID_CONN_CACHESIZE TypedWhichId<SfxInt32Item>(27)
+#define DSID_CONN_CTRLUSER TypedWhichId<SfxStringItem>(28)
+#define DSID_CONN_CTRLPWD TypedWhichId<SfxStringItem>(29)
+#define DSID_USECATALOG TypedWhichId<SfxBoolItem>(30) // should the driver use the catalog name when the database is filebased
+#define DSID_CONN_HOSTNAME TypedWhichId<SfxStringItem>(31)
+#define DSID_CONN_LDAP_BASEDN TypedWhichId<SfxStringItem>(32)
+#define DSID_CONN_LDAP_PORTNUMBER TypedWhichId<SfxInt32Item>(33)
+#define DSID_CONN_LDAP_ROWCOUNT TypedWhichId<SfxInt32Item>(34)
+#define DSID_SQL92CHECK TypedWhichId<SfxBoolItem>(35)
+#define DSID_AUTOINCREMENTVALUE TypedWhichId<SfxStringItem>(36)
+#define DSID_AUTORETRIEVEVALUE TypedWhichId<SfxStringItem>(37)
+#define DSID_AUTORETRIEVEENABLED TypedWhichId<SfxBoolItem>(38)
+#define DSID_APPEND_TABLE_ALIAS TypedWhichId<SfxBoolItem>(39)
+#define DSID_MYSQL_PORTNUMBER TypedWhichId<SfxInt32Item>(40)
+#define DSID_IGNOREDRIVER_PRIV TypedWhichId<SfxBoolItem>(41)
+#define DSID_BOOLEANCOMPARISON TypedWhichId<SfxInt32Item>(42)
+#define DSID_ORACLE_PORTNUMBER TypedWhichId<SfxInt32Item>(43)
+#define DSID_ENABLEOUTERJOIN TypedWhichId<SfxBoolItem>(44)
+#define DSID_CATALOG TypedWhichId<SfxBoolItem>(45)
+#define DSID_SCHEMA TypedWhichId<SfxBoolItem>(46)
+#define DSID_INDEXAPPENDIX TypedWhichId<SfxBoolItem>(47)
+#define DSID_CONN_LDAP_USESSL TypedWhichId<SfxBoolItem>(48)
+#define DSID_DOCUMENT_URL TypedWhichId<SfxStringItem>(49)
+#define DSID_DOSLINEENDS TypedWhichId<SfxBoolItem>(50)
+#define DSID_DATABASENAME TypedWhichId<SfxStringItem>(51)
+#define DSID_AS_BEFORE_CORRNAME TypedWhichId<SfxBoolItem>(52)
+#define DSID_CHECK_REQUIRED_FIELDS TypedWhichId<SfxBoolItem>(53)
+#define DSID_IGNORECURRENCY TypedWhichId<SfxBoolItem>(54)
+#define DSID_CONN_SOCKET TypedWhichId<SfxStringItem>(55)
+#define DSID_ESCAPE_DATETIME TypedWhichId<SfxBoolItem>(56)
+#define DSID_NAMED_PIPE TypedWhichId<SfxStringItem>(57)
+#define DSID_PRIMARY_KEY_SUPPORT TypedWhichId<OptionalBoolItem>(58)
+#define DSID_MAX_ROW_SCAN TypedWhichId<SfxInt32Item>(59)
+#define DSID_RESPECTRESULTSETTYPE TypedWhichId<SfxBoolItem>(60)
+#define DSID_POSTGRES_PORTNUMBER TypedWhichId<SfxInt32Item>(61)
// don't forget to adjust DSID_LAST_ITEM_ID below!
// item range. Adjust this if you introduce new items above
#define DSID_FIRST_ITEM_ID DSID_NAME
-#define DSID_LAST_ITEM_ID DSID_RESPECTRESULTSETTYPE
+#define DSID_LAST_ITEM_ID DSID_POSTGRES_PORTNUMBER
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/dsmeta.hxx b/dbaccess/source/ui/inc/dsmeta.hxx
index 69b13ebb7965..091426809e86 100644
--- a/dbaccess/source/ui/inc/dsmeta.hxx
+++ b/dbaccess/source/ui/inc/dsmeta.hxx
@@ -42,7 +42,6 @@ namespace dbaui
// DataSourceMetaData
class FeatureSet;
- class DataSourceMetaData_Impl;
/** encapsulates meta data for a data source
On the long run, this class should a) encapsulate *all* meta data which
@@ -65,7 +64,7 @@ namespace dbaui
static AuthenticationMode getAuthentication( const OUString& _sURL );
private:
- std::shared_ptr< DataSourceMetaData_Impl > m_pImpl;
+ OUString m_sURL;
};
// FeatureSet
@@ -80,7 +79,7 @@ namespace dbaui
FeatureSet() { }
void put( const ItemID _id ) { m_aContent.insert( _id ); }
- bool has( const ItemID _id ) const { return m_aContent.find( _id ) != m_aContent.end(); }
+ bool has( const ItemID _id ) const { return m_aContent.contains( _id ); }
inline bool supportsAnySpecialSetting() const;
inline bool supportsGeneratedValues() const;
diff --git a/dbaccess/source/ui/inc/exsrcbrw.hxx b/dbaccess/source/ui/inc/exsrcbrw.hxx
index 5b510d0fb8be..0ecda1ed647e 100644
--- a/dbaccess/source/ui/inc/exsrcbrw.hxx
+++ b/dbaccess/source/ui/inc/exsrcbrw.hxx
@@ -21,6 +21,7 @@
#include "brwctrlr.hxx"
+#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/uno3.hxx>
// SbaExternalSourceBrowser
@@ -32,9 +33,9 @@ namespace dbaui
:public SbaXDataBrowserController
,public css::util::XModifyBroadcaster
{
- ::comphelper::OInterfaceContainerHelper2 m_aModifyListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::util::XModifyListener> m_aModifyListeners;
// for multiplexing the modify events
- SbaXFormAdapter* m_pDataSourceImpl;
+ rtl::Reference<SbaXFormAdapter> m_pDataSourceImpl;
bool m_bInQueryDispatch;
// our queryDispatch will ask our frame, which first will ask our queryDispatch, so we need to protect against
// recursion
diff --git a/dbaccess/source/ui/inc/formadapter.hxx b/dbaccess/source/ui/inc/formadapter.hxx
index c4fa9d96af66..c6d565896215 100644
--- a/dbaccess/source/ui/inc/formadapter.hxx
+++ b/dbaccess/source/ui/inc/formadapter.hxx
@@ -53,6 +53,7 @@
#include <com/sun/star/io/XPersistObject.hpp>
#include <com/sun/star/container/XNamed.hpp>
#include <com/sun/star/util/XCancellable.hpp>
+#include <comphelper/interfacecontainer3.hxx>
#include <comphelper/uno3.hxx>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/implbase12.hxx>
@@ -133,8 +134,8 @@ namespace dbaui
SbaXVetoableChangeMultiplexer m_aVetoablePropertyChangeListeners;
SbaXPropertiesChangeMultiplexer m_aPropertiesChangeListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aDisposeListeners;
- ::comphelper::OInterfaceContainerHelper2 m_aContainerListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::lang::XEventListener> m_aDisposeListeners;
+ ::comphelper::OInterfaceContainerHelper3<css::container::XContainerListener> m_aContainerListeners;
// hierarchy administration
css::uno::Reference< css::uno::XInterface > m_xParent;
diff --git a/dbaccess/source/ui/inc/imageprovider.hxx b/dbaccess/source/ui/inc/imageprovider.hxx
index e022647a7090..5249fb0091fe 100644
--- a/dbaccess/source/ui/inc/imageprovider.hxx
+++ b/dbaccess/source/ui/inc/imageprovider.hxx
@@ -19,17 +19,13 @@
#pragma once
-#include <vcl/image.hxx>
-
#include <com/sun/star/graphic/XGraphic.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
-#include <memory>
+namespace com::sun::star::sdb::application { class XTableUIProvider; }
namespace dbaui
{
- // ImageProvider
- struct ImageProvider_Data;
/** provides images for database objects such as tables, queries, forms, reports ...
At the moment, this class cares for small icons only, that is, icons which can be used
@@ -38,9 +34,6 @@ namespace dbaui
*/
class ImageProvider
{
- private:
- std::shared_ptr< ImageProvider_Data > m_pData;
-
public:
/** creates a semi-functional ImageProvider instance
@@ -65,17 +58,9 @@ namespace dbaui
constants.
@param _rName
the name of the object
- @param _out_rImage
- the normal image to use for the object
@return
- the image to be used for the object.
+ the name of the image to be used for the object.
*/
- void getImages(
- const OUString& _rName,
- const sal_Int32 _nDatabaseObjectType,
- Image& _out_rImage
- );
-
OUString getImageId(
const OUString& _rName,
const sal_Int32 _nDatabaseObjectType
@@ -85,25 +70,9 @@ namespace dbaui
css::uno::Reference<css::graphic::XGraphic> getXGraphic(const OUString& _rName,
const sal_Int32 _nDatabaseObjectType);
- /** returns the default image to be used for a database object
-
- In opposite to getImages, this method does not check the concrete object
- for its image, but returns a default image to be used for all objects of the given
- type.
-
- @param _nDatabaseObjectType
- the type of the object. Must be one of the css.sdb.application.DatabaseObject
- constants.
- @return
- the image to be used for the object type.
- */
- static Image getDefaultImage(
- sal_Int32 _nDatabaseObjectType
- );
-
/** returns the resource ID for the default image to be used for a database object
- In opposite to getImages, this method does not check the concrete object
+ In opposite to getImageId, this method does not check the concrete object
for its image, but returns a default image to be used for all objects of the given
type.
@@ -123,7 +92,14 @@ namespace dbaui
@return
the image to be used for folders of this type
*/
- static OUString getDatabaseImage();
+ static const OUString & getDatabaseImage();
+ private:
+ /// the connection we work with
+ css::uno::Reference< css::sdbc::XConnection > mxConnection;
+ /// the views of the connection, if the DB supports views
+ css::uno::Reference< css::container::XNameAccess > mxViews;
+ /// interface for providing table's UI
+ css::uno::Reference< css::sdb::application::XTableUIProvider > mxTableUI;
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/inc/indexcollection.hxx b/dbaccess/source/ui/inc/indexcollection.hxx
index d677eed06c5f..3d227b0b3869 100644
--- a/dbaccess/source/ui/inc/indexcollection.hxx
+++ b/dbaccess/source/ui/inc/indexcollection.hxx
@@ -29,7 +29,6 @@ namespace dbaui
// OIndexCollection
class OIndexCollection
{
- protected:
css::uno::Reference< css::container::XNameAccess >
m_xIndexes;
diff --git a/dbaccess/source/ui/inc/indexdialog.hxx b/dbaccess/source/ui/inc/indexdialog.hxx
index ca2e0114d1d6..b3ba37936e79 100644
--- a/dbaccess/source/ui/inc/indexdialog.hxx
+++ b/dbaccess/source/ui/inc/indexdialog.hxx
@@ -74,10 +74,10 @@ namespace dbaui
void IndexSelected();
DECL_LINK( OnIndexSelected, weld::TreeView&, void );
- DECL_LINK( OnIndexAction, const OString&, void );
+ DECL_LINK( OnIndexAction, const OUString&, void );
DECL_LINK( OnEntryEditing, const weld::TreeIter&, bool );
DECL_LINK( OnEntryEdited, const IterString&, bool );
- DECL_LINK( OnModifiedClick, weld::Button&, void );
+ DECL_LINK( OnModifiedClick, weld::Toggleable&, void );
DECL_LINK( OnModified, IndexFieldsControl&, void );
DECL_LINK( OnCloseDialog, weld::Button&, void );
diff --git a/dbaccess/source/ui/inc/indexes.hxx b/dbaccess/source/ui/inc/indexes.hxx
index 75bd5b44ba63..068a5dec5026 100644
--- a/dbaccess/source/ui/inc/indexes.hxx
+++ b/dbaccess/source/ui/inc/indexes.hxx
@@ -31,9 +31,7 @@ namespace dbaui
struct OIndexField
{
OUString sFieldName;
- bool bSortAscending;
-
- OIndexField() : bSortAscending(true) { }
+ bool bSortAscending = true;
};
typedef std::vector<OIndexField> IndexFields;
diff --git a/dbaccess/source/ui/inc/indexfieldscontrol.hxx b/dbaccess/source/ui/inc/indexfieldscontrol.hxx
index 886332935786..90ae7172e3df 100644
--- a/dbaccess/source/ui/inc/indexfieldscontrol.hxx
+++ b/dbaccess/source/ui/inc/indexfieldscontrol.hxx
@@ -54,7 +54,7 @@ namespace dbaui
void Init(const css::uno::Sequence< OUString >& _rAvailableFields, bool _bAddIndexAppendix);
- void initializeFrom(const IndexFields& _rFields);
+ void initializeFrom(IndexFields&& _rFields);
void commitTo(IndexFields& _rFields);
bool SaveModified() override;
@@ -64,20 +64,20 @@ namespace dbaui
void SaveValue() { m_aSavedValue = m_aFields; }
void SetModifyHdl(const Link<IndexFieldsControl&,void>& _rHdl) { m_aModifyHdl = _rHdl; }
- virtual OUString GetCellText(tools::Long _nRow,sal_uInt16 nColId) const override;
+ virtual OUString GetCellText(sal_Int32 _nRow,sal_uInt16 nColId) const override;
private:
// EditBrowseBox overridables
virtual void PaintCell( OutputDevice& _rDev, const tools::Rectangle& _rRect, sal_uInt16 _nColumnId ) const override;
- virtual bool SeekRow(tools::Long nRow) override;
- virtual sal_uInt32 GetTotalCellWidth(tools::Long nRow, sal_uInt16 nColId) override;
+ virtual bool SeekRow(sal_Int32 nRow) override;
+ virtual sal_uInt32 GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId) override;
virtual bool IsTabAllowed(bool bForward) const override;
- ::svt::CellController* GetController(tools::Long _nRow, sal_uInt16 _nColumnId) override;
- void InitController(::svt::CellControllerRef&, tools::Long _nRow, sal_uInt16 _nColumnId) override;
+ ::svt::CellController* GetController(sal_Int32 _nRow, sal_uInt16 _nColumnId) override;
+ void InitController(::svt::CellControllerRef&, sal_Int32 _nRow, sal_uInt16 _nColumnId) override;
OUString GetRowCellText(const IndexFields::const_iterator& _rRow,sal_uInt16 nColId) const;
- bool implGetFieldDesc(tools::Long _nRow, IndexFields::const_iterator& _rPos);
+ bool implGetFieldDesc(sal_Int32 _nRow, IndexFields::const_iterator& _rPos);
bool isNewField() const { return GetCurRow() >= static_cast<sal_Int32>(m_aFields.size()); }
diff --git a/dbaccess/source/ui/inc/linkeddocuments.hxx b/dbaccess/source/ui/inc/linkeddocuments.hxx
index 961b2ea4cddf..c20f3a87ae51 100644
--- a/dbaccess/source/ui/inc/linkeddocuments.hxx
+++ b/dbaccess/source/ui/inc/linkeddocuments.hxx
@@ -53,7 +53,7 @@ namespace dbaui
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const css::uno::Reference< css::container::XNameAccess >& _rxContainer,
const css::uno::Reference< css::sdbc::XConnection>& _xConnection,
- const OUString& _sDataSourceName
+ OUString _sDataSourceName
);
~OLinkedDocumentsAccess();
diff --git a/dbaccess/source/ui/inc/opendoccontrols.hxx b/dbaccess/source/ui/inc/opendoccontrols.hxx
index 777a8dd148f0..d2cca5281111 100644
--- a/dbaccess/source/ui/inc/opendoccontrols.hxx
+++ b/dbaccess/source/ui/inc/opendoccontrols.hxx
@@ -34,17 +34,12 @@ namespace dbaui
class OpenDocumentButton
{
private:
- OUString m_sModule;
-
std::unique_ptr<weld::Button> m_xControl;
public:
- OpenDocumentButton(std::unique_ptr<weld::Button> xControl, const char* _pAsciiModuleName);
+ OpenDocumentButton(std::unique_ptr<weld::Button> xControl, const OUString& _rAsciiModuleName);
void set_sensitive(bool bSensitive) { m_xControl->set_sensitive(bSensitive); }
void connect_clicked(const Link<weld::Button&, void>& rLink) { m_xControl->connect_clicked(rLink); }
-
- private:
- void impl_init( const char* _pAsciiModuleName );
};
// OpenDocumentListBox
@@ -68,7 +63,7 @@ namespace dbaui
void connect_changed(const Link<weld::ComboBox&, void>& rLink) { m_xControl->connect_changed(rLink); }
private:
- StringPair impl_getDocumentAtIndex( sal_uInt16 _nListIndex ) const;
+ const StringPair & impl_getDocumentAtIndex( sal_uInt16 _nListIndex ) const;
void impl_init( const char* _pAsciiModuleName );
};
diff --git a/dbaccess/source/ui/inc/paramdialog.hxx b/dbaccess/source/ui/inc/paramdialog.hxx
index 489a621e60b8..5c7044ebbd60 100644
--- a/dbaccess/source/ui/inc/paramdialog.hxx
+++ b/dbaccess/source/ui/inc/paramdialog.hxx
@@ -30,11 +30,6 @@
#include <svx/ParseContext.hxx>
#include <o3tl/typed_flags_set.hxx>
-namespace connectivity
-{
- class OSQLParseNode;
-}
-
enum class VisitFlags {
NONE = 0x00,
Visited = 0x01,
diff --git a/dbaccess/source/ui/inc/querycontroller.hxx b/dbaccess/source/ui/inc/querycontroller.hxx
index 495baa59a806..d4347e47d58d 100644
--- a/dbaccess/source/ui/inc/querycontroller.hxx
+++ b/dbaccess/source/ui/inc/querycontroller.hxx
@@ -24,7 +24,6 @@
#include <svx/ParseContext.hxx>
#include "TableFieldDescription.hxx"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/sdb/XSQLQueryComposer.hpp>
#include <com/sun/star/sdbcx/XAlterView.hpp>
@@ -42,8 +41,6 @@ namespace comphelper
namespace dbaui
{
- class OQueryContainerWindow;
-
typedef ::comphelper::OPropertyContainer OQueryController_PBase;
typedef ::comphelper::OPropertyArrayUsageHelper< OQueryController > OQueryController_PABase;
class OQueryController :public OJoinController
@@ -188,7 +185,7 @@ namespace dbaui
// ask the user if the design should be saved when it is modified
virtual short saveModified() override;
virtual void reset() override;
- virtual void impl_initialize() override;
+ virtual void impl_initialize(const ::comphelper::NamedValueCollection& rArguments) override;
void impl_reset( const bool i_bIgnoreQuerySettings = false );
/// tells the user that we needed to switch to SQL view automatically
diff --git a/dbaccess/source/ui/inc/queryfilter.hxx b/dbaccess/source/ui/inc/queryfilter.hxx
index 258dcc51ec08..396778f22997 100644
--- a/dbaccess/source/ui/inc/queryfilter.hxx
+++ b/dbaccess/source/ui/inc/queryfilter.hxx
@@ -75,13 +75,13 @@ namespace dbaui
std::unique_ptr<weld::ComboBox> m_xLB_WHERECOMP3;
std::unique_ptr<weld::Entry> m_xET_WHEREVALUE3;
- static void SelectField(weld::ComboBox& rBox, const OUString& rField);
+ static void SelectField(weld::ComboBox& rBox, std::u16string_view rField);
DECL_LINK(ListSelectHdl, weld::ComboBox&, void);
DECL_LINK(ListSelectCompHdl, weld::ComboBox&, void);
void SetLine( int nIdx, const css::beans::PropertyValue& _rItem, bool _bOr );
void EnableLines();
- sal_Int32 GetOSQLPredicateType( const OUString& _rSelectedPredicate ) const;
+ sal_Int32 GetOSQLPredicateType( std::u16string_view _rSelectedPredicate ) const;
static sal_Int32 GetSelectionPos(sal_Int32 eType, const weld::ComboBox& rListBox);
bool getCondition(const weld::ComboBox& _rField, const weld::ComboBox& _rComp, const weld::Entry& _rValue, css::beans::PropertyValue& _rFilter) const;
void fillLines(int &i, const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > >& _aValues);
diff --git a/dbaccess/source/ui/inc/sbagrid.hrc b/dbaccess/source/ui/inc/sbagrid.hrc
index c84dbccead66..921faa6a9bd2 100644
--- a/dbaccess/source/ui/inc/sbagrid.hrc
+++ b/dbaccess/source/ui/inc/sbagrid.hrc
@@ -26,8 +26,8 @@
// Columns
// Formatting
-#define SBA_DEF_RANGEFORMAT (SBA_WHICHID_START+143) // RangeItem
-#define SBA_DEF_FMTVALUE (SBA_WHICHID_START+144) // SfxULONG, Format
+#define SBA_DEF_RANGEFORMAT TypedWhichId<SfxRangeItem>(SBA_WHICHID_START+143) // RangeItem
+#define SBA_DEF_FMTVALUE TypedWhichId<SfxUInt32Item>(SBA_WHICHID_START+144) // SfxULONG, Format
// Justification
#define SBA_ATTR_ALIGN_HOR_JUSTIFY (SBA_WHICHID_START + 145) // SvxHorJustifyItem
diff --git a/dbaccess/source/ui/inc/sbagrid.hxx b/dbaccess/source/ui/inc/sbagrid.hxx
index 874e3c5f9c75..682c570c7093 100644
--- a/dbaccess/source/ui/inc/sbagrid.hxx
+++ b/dbaccess/source/ui/inc/sbagrid.hxx
@@ -25,6 +25,7 @@
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/util/URL.hpp>
+#include <comphelper/multiinterfacecontainer4.hxx>
#include <comphelper/servicehelper.hxx>
#include <comphelper/uno3.hxx>
#include "sbamultiplex.hxx"
@@ -35,12 +36,6 @@
class SvNumberFormatter;
-namespace com::sun::star {
- namespace lang {
- class XMultiServiceFactory;
- }
-}
-
namespace dbaui
{
struct SbaURLCompare
@@ -48,7 +43,6 @@ namespace dbaui
bool operator() (const css::util::URL& x, const css::util::URL& y) const { return x.Complete == y.Complete; }
};
- class SbaXStatusMultiplexer;
class SbaXGridControl
:public FmXGridControl
,public css::frame::XDispatch
@@ -61,8 +55,8 @@ namespace dbaui
virtual ~SbaXGridControl() override;
// UNO
- DECLARE_UNO3_DEFAULTS(SbaXGridControl, FmXGridControl)
- virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+ DECLARE_UNO3_AGG_DEFAULTS(SbaXGridControl, FmXGridControl)
+ virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type& _rType) override;
// XTypeProvider
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
@@ -83,7 +77,7 @@ namespace dbaui
virtual void SAL_CALL createPeer(const css::uno::Reference< css::awt::XToolkit > & rToolkit, const css::uno::Reference< css::awt::XWindowPeer > & rParentPeer) override;
protected:
- virtual FmXGridPeer* imp_CreatePeer(vcl::Window* pParent) override;
+ virtual rtl::Reference<FmXGridPeer> imp_CreatePeer(vcl::Window* pParent) override;
};
// SbaXGridPeer
@@ -92,22 +86,20 @@ namespace dbaui
:public FmXGridPeer
,public css::frame::XDispatch
{
- cppu::OMultiTypeInterfaceContainerHelperVar<
- css::util::URL, void, SbaURLCompare> m_aStatusListeners;
+ comphelper::OMultiTypeInterfaceContainerHelperVar4< css::util::URL, css::frame::XStatusListener,
+ SbaURLCompare> m_aStatusListeners;
public:
SbaXGridPeer(const css::uno::Reference< css::uno::XComponentContext >&);
virtual ~SbaXGridPeer() override;
// UNO
- virtual void SAL_CALL acquire() throw() override { FmXGridPeer::acquire(); }
- virtual void SAL_CALL release() throw() override { FmXGridPeer::release(); }
+ virtual void SAL_CALL acquire() noexcept override { FmXGridPeer::acquire(); }
+ virtual void SAL_CALL release() noexcept override { FmXGridPeer::release(); }
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override;
- UNO3_GETIMPLEMENTATION_DECL(SbaXGridPeer)
-
// css::frame::XDispatch
virtual void SAL_CALL dispatch(const css::util::URL& aURL, const css::uno::Sequence< css::beans::PropertyValue >& aArgs) override;
virtual void SAL_CALL addStatusListener(const css::uno::Reference< css::frame::XStatusListener > & xControl, const css::util::URL& aURL) override;
@@ -161,8 +153,10 @@ namespace dbaui
protected:
// FmGridHeader overridables
- virtual void PreExecuteColumnContextMenu(sal_uInt16 nColId, PopupMenu& rMenu) override;
- virtual void PostExecuteColumnContextMenu(sal_uInt16 nColId, const PopupMenu& rMenu, sal_uInt16 nExecutionResult) override;
+ virtual void PreExecuteColumnContextMenu(sal_uInt16 nColId, weld::Menu& rMenu,
+ weld::Menu& rInsertMenu, weld::Menu& rChangeMenu,
+ weld::Menu& rShowMenu) override;
+ virtual void PostExecuteColumnContextMenu(sal_uInt16 nColId, const weld::Menu& rMenu, const OUString& rExecutionResult) override;
private:
// DragSourceHelper overridables
@@ -213,7 +207,7 @@ namespace dbaui
void SetMasterListener(SbaGridListener* pListener) { m_pMasterListener = pListener; }
- virtual void ActivateCell(tools::Long nRow, sal_uInt16 nCol, bool bSetCellFocus = true) override;
+ virtual void ActivateCell(sal_Int32 nRow, sal_uInt16 nCol, bool bSetCellFocus = true) override;
virtual void DeactivateCell(bool bUpdate = true) override;
using FmGridControl::ActivateCell;
@@ -229,7 +223,7 @@ namespace dbaui
@return
The description of the specified object.
*/
- virtual OUString GetAccessibleObjectDescription( ::vcl::AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition = -1) const override;
+ virtual OUString GetAccessibleObjectDescription( AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition = -1) const override;
using FmGridControl::DeleteSelectedRows;
/** copies the currently selected rows to the clipboard
@@ -249,11 +243,11 @@ namespace dbaui
// EditBrowseBox overridables
virtual VclPtr<BrowserHeader> imp_CreateHeaderBar(BrowseBox* pParent) override;
- virtual ::svt::CellController* GetController(tools::Long nRow, sal_uInt16 nCol) override;
+ virtual ::svt::CellController* GetController(sal_Int32 nRow, sal_uInt16 nCol) override;
// DbGridControl overridables
- virtual void PreExecuteRowContextMenu(sal_uInt16 nRow, PopupMenu& rMenu) override;
- virtual void PostExecuteRowContextMenu(sal_uInt16 nRow, const PopupMenu& rMenu, sal_uInt16 nExecutionResult) override;
+ virtual void PreExecuteRowContextMenu(weld::Menu& rMenu) override;
+ virtual void PostExecuteRowContextMenu(const OUString& rExecutionResult) override;
// DbGridControl overridables
virtual void onRowChange() override;
diff --git a/dbaccess/source/ui/inc/sbamultiplex.hxx b/dbaccess/source/ui/inc/sbamultiplex.hxx
index 52b103291c4f..47fd753d4af6 100644
--- a/dbaccess/source/ui/inc/sbamultiplex.hxx
+++ b/dbaccess/source/ui/inc/sbamultiplex.hxx
@@ -31,9 +31,8 @@
#include <com/sun/star/sdbc/XRowSetListener.hpp>
#include <com/sun/star/frame/XStatusListener.hpp>
#include <comphelper/uno3.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <comphelper/interfacecontainer2.hxx>
-#include <cppuhelper/queryinterface.hxx>
+#include <comphelper/interfacecontainer3.hxx>
+#include <comphelper/multiinterfacecontainer3.hxx>
#include <cppuhelper/weak.hxx>
namespace dbaui
@@ -47,346 +46,258 @@ namespace dbaui
public:
OSbaWeakSubObject(::cppu::OWeakObject& rParent) : m_rParent(rParent) { }
- virtual void SAL_CALL acquire() throw() override { m_rParent.acquire(); }
- virtual void SAL_CALL release() throw() override { m_rParent.release(); }
+ virtual void SAL_CALL acquire() noexcept override { m_rParent.acquire(); }
+ virtual void SAL_CALL release() noexcept override { m_rParent.release(); }
};
- // declaration of a listener multiplexer class
- #define BEGIN_DECLARE_LISTENER_MULTIPLEXER(classname, listenerclass) \
- class classname \
- :public OSbaWeakSubObject \
- ,public listenerclass \
- ,public ::comphelper::OInterfaceContainerHelper2 \
- { \
- public: \
- classname( ::cppu::OWeakObject& rSource, \
- ::osl::Mutex& rMutex); \
- DECLARE_UNO3_DEFAULTS(classname, OSbaWeakSubObject) \
- virtual css::uno::Any SAL_CALL queryInterface( \
- const css::uno::Type& _rType) override; \
- \
- /* css::lang::XEventListener */ \
- virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override; \
-
- #define DECLARE_MULTIPLEXER_VOID_METHOD(methodname, eventtype) \
- virtual void SAL_CALL methodname(const eventtype& e) override; \
-
- #define DECLARE_MULTIPLEXER_BOOL_METHOD(methodname, eventtype) \
- virtual sal_Bool SAL_CALL methodname(const eventtype& e) override; \
-
- #define END_DECLARE_LISTENER_MULTIPLEXER() \
- /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */ \
- using OSbaWeakSubObject::operator new; \
- using OSbaWeakSubObject::operator delete; \
- }; \
-
- // implementation of a listener multiplexer class
-
- #define IMPLEMENT_LISTENER_MULTIPLEXER_CORE(classname, listenerclass) \
- \
- classname::classname(::cppu::OWeakObject& rSource, ::osl::Mutex& _rMutex) \
- :OSbaWeakSubObject(rSource) \
- ,OInterfaceContainerHelper2(_rMutex) \
- { \
- } \
- \
- css::uno::Any SAL_CALL classname::queryInterface( \
- const css::uno::Type& _rType) \
- { \
- css::uno::Any aReturn = \
- OSbaWeakSubObject::queryInterface(_rType); \
- if (!aReturn.hasValue()) \
- aReturn = ::cppu::queryInterface(_rType, \
- static_cast< listenerclass* >(this), \
- static_cast< css::lang::XEventListener* >(static_cast< listenerclass* >(this)) \
- ); \
- \
- return aReturn; \
- } \
- void SAL_CALL classname::disposing(const css::lang::EventObject& )\
- { \
- } \
-
- #define IMPLEMENT_LISTENER_MULTIPLEXER_VOID_METHOD(classname, listenerclass, methodname, eventtype) \
- void SAL_CALL classname::methodname(const eventtype& e) \
- { \
- eventtype aMulti(e); \
- aMulti.Source = &m_rParent; \
- ::comphelper::OInterfaceIteratorHelper2 aIt(*this); \
- while (aIt.hasMoreElements()) \
- static_cast< listenerclass*>(aIt.next())->methodname(aMulti); \
- } \
-
- #define IMPLEMENT_LISTENER_MULTIPLEXER_BOOL_METHOD(classname, listenerclass, methodname, eventtype) \
- sal_Bool SAL_CALL classname::methodname(const eventtype& e) \
- { \
- eventtype aMulti(e); \
- aMulti.Source = &m_rParent; \
- ::comphelper::OInterfaceIteratorHelper2 aIt(*this); \
- bool bResult = true; \
- while (bResult && aIt.hasMoreElements()) \
- bResult = static_cast< listenerclass*>(aIt.next())->methodname(aMulti); \
- return bResult; \
- } \
-
- // helper for classes which do event multiplexing
- #define IMPLEMENT_LISTENER_ADMINISTRATION(classname, listenernamespace, listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- void SAL_CALL classname::add##listenerdesc(const css::uno::Reference< css::listenernamespace::X##listenerdesc >& l)\
- { \
- multiplexer.addInterface(l); \
- if (multiplexer.getLength() == 1) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->add##listenerdesc(&multiplexer); \
- } \
- } \
- void SAL_CALL classname::remove##listenerdesc(const css::uno::Reference< css::listenernamespace::X##listenerdesc >& l)\
- { \
- if (multiplexer.getLength() == 1) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->remove##listenerdesc(&multiplexer); \
- } \
- multiplexer.removeInterface(l); \
- } \
-
- #define STOP_MULTIPLEXER_LISTENING(listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- if (multiplexer.getLength()) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->remove##listenerdesc(&multiplexer); \
- } \
-
- #define START_MULTIPLEXER_LISTENING(listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- if (multiplexer.getLength()) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->add##listenerdesc(&multiplexer); \
- } \
-
- // declaration of property listener multiplexers
- // (with support for specialized and unspecialized property listeners)
-
- #define DECLARE_PROPERTY_MULTIPLEXER(classname, listenerclass, methodname, eventtype) \
- class classname final \
- :public OSbaWeakSubObject \
- ,public listenerclass \
- { \
- typedef ::cppu::OMultiTypeInterfaceContainerHelperVar< \
- OUString > ListenerContainerMap; \
- ListenerContainerMap m_aListeners; \
- \
- public: \
- classname( ::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex ); \
- DECLARE_UNO3_DEFAULTS(classname, OSbaWeakSubObject) \
- virtual css::uno::Any SAL_CALL queryInterface( \
- const css::uno::Type& _rType) override; \
- \
- /* css::lang::XEventListener */ \
- virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override; \
- \
- virtual void SAL_CALL methodname(const eventtype& e) override; \
- \
- void addInterface(const OUString& rName, const css::uno::Reference< css::uno::XInterface >& rListener); \
- void removeInterface(const OUString& rName, const css::uno::Reference< css::uno::XInterface >& rListener); \
- \
- void disposeAndClear(); \
- \
- sal_Int32 getOverallLen() const; \
- \
- ::cppu::OInterfaceContainerHelper* getContainer(const OUString& rName) \
- { return m_aListeners.getContainer(rName); } \
- \
- private: \
- void Notify(::cppu::OInterfaceContainerHelper& rListeners, const eventtype& e); \
- }; \
-
- // implementation of property listener multiplexers
- #define IMPLEMENT_PROPERTY_MULTIPLEXER(classname, listenerclass, methodname, eventtype) \
- classname::classname(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex) \
- :OSbaWeakSubObject(rSource) \
- ,m_aListeners(rMutex) \
- { \
- } \
- \
- css::uno::Any SAL_CALL classname::queryInterface( \
- const css::uno::Type& _rType) \
- { \
- css::uno::Any aReturn = \
- OSbaWeakSubObject::queryInterface(_rType); \
- if (!aReturn.hasValue()) \
- aReturn = ::cppu::queryInterface(_rType, \
- static_cast< listenerclass* >(this), \
- static_cast< css::lang::XEventListener* >(static_cast< listenerclass* >(this)) \
- ); \
- \
- return aReturn; \
- } \
- void SAL_CALL classname::disposing(const css::lang::EventObject& )\
- { \
- } \
- \
- void SAL_CALL classname::methodname(const eventtype& e) \
- { \
- ::cppu::OInterfaceContainerHelper* pListeners = m_aListeners.getContainer(e.PropertyName); \
- if (pListeners) \
- Notify(*pListeners, e); \
- \
- /* do the notification for the unspecialized listeners, too */ \
- pListeners = m_aListeners.getContainer(OUString()); \
- if (pListeners) \
- Notify(*pListeners, e); \
- } \
- \
- void classname::addInterface(const OUString& rName, \
- const css::uno::Reference< css::uno::XInterface > & rListener) \
- { \
- m_aListeners.addInterface(rName, rListener); \
- } \
- \
- void classname::removeInterface(const OUString& rName, \
- const css::uno::Reference< css::uno::XInterface > & rListener) \
- { \
- m_aListeners.removeInterface(rName, rListener); \
- } \
- \
- void classname::disposeAndClear() \
- { \
- css::lang::EventObject aEvt(m_rParent); \
- m_aListeners.disposeAndClear(aEvt); \
- } \
- \
- sal_Int32 classname::getOverallLen() const \
- { \
- sal_Int32 nLen = 0; \
- const css::uno::Sequence< OUString > aContained = m_aListeners.getContainedTypes(); \
- for ( OUString const & s : aContained) \
- { \
- ::cppu::OInterfaceContainerHelper* pListeners = m_aListeners.getContainer(s); \
- if (!pListeners) \
- continue; \
- nLen += pListeners->getLength(); \
- } \
- return nLen; \
- } \
- \
- void classname::Notify(::cppu::OInterfaceContainerHelper& rListeners, const eventtype& e) \
- { \
- eventtype aMulti(e); \
- aMulti.Source = &m_rParent; \
- ::cppu::OInterfaceIteratorHelper aIt(rListeners); \
- while (aIt.hasMoreElements()) \
- static_cast< listenerclass*>(aIt.next())->methodname(aMulti); \
- } \
-
- // helper for classes which do property event multiplexing
- #define IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(classname, listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- void SAL_CALL classname::add##listenerdesc(const OUString& rName, const css::uno::Reference< css::beans::X##listenerdesc >& l )\
- { \
- multiplexer.addInterface(rName, l); \
- if (multiplexer.getOverallLen() == 1) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->add##listenerdesc(OUString(), &multiplexer); \
- } \
- } \
- void SAL_CALL classname::remove##listenerdesc(const OUString& rName, const css::uno::Reference< css::beans::X##listenerdesc >& l )\
- { \
- if (multiplexer.getOverallLen() == 1) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->remove##listenerdesc(OUString(), &multiplexer); \
- } \
- multiplexer.removeInterface(rName, l); \
- } \
-
- #define STOP_PROPERTY_MULTIPLEXER_LISTENING(listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- if (multiplexer.getOverallLen()) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->remove##listenerdesc(OUString(), &multiplexer); \
- } \
-
- #define START_PROPERTY_MULTIPLEXER_LISTENING(listenerdesc, multiplexer, broadcasterclass, broadcaster) \
- if (multiplexer.getOverallLen()) \
- { \
- css::uno::Reference< broadcasterclass > xBroadcaster(broadcaster, css::uno::UNO_QUERY); \
- if (xBroadcaster.is()) \
- xBroadcaster->add##listenerdesc(OUString(), &multiplexer); \
- } \
-
// some listener multiplexers
// css::frame::XStatusListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXStatusMultiplexer, css::frame::XStatusListener)
- DECLARE_MULTIPLEXER_VOID_METHOD(statusChanged, css::frame::FeatureStateEvent)
+ class SbaXStatusMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::frame::XStatusListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::frame::XStatusListener>
+ {
+ public:
+ SbaXStatusMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXStatusMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+
+ virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& e) override;
private:
css::frame::FeatureStateEvent m_aLastKnownStatus;
- public: \
+ public:
const css::frame::FeatureStateEvent& getLastEvent( ) const { return m_aLastKnownStatus; }
- END_DECLARE_LISTENER_MULTIPLEXER()
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::form::XLoadListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXLoadMultiplexer, css::form::XLoadListener)
- DECLARE_MULTIPLEXER_VOID_METHOD(loaded, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(unloaded, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(unloading, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(reloading, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(reloaded, css::lang::EventObject)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXLoadMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::form::XLoadListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::form::XLoadListener>
+ {
+ public:
+ SbaXLoadMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXLoadMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+
+ virtual void SAL_CALL loaded(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL unloaded(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL unloading(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL reloading(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL reloaded(const css::lang::EventObject& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::form::XDatabaseParameterListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXParameterMultiplexer, css::form::XDatabaseParameterListener)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveParameter, css::form::DatabaseParameterEvent)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXParameterMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::form::XDatabaseParameterListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::form::XDatabaseParameterListener>
+ {
+ public:
+ SbaXParameterMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXParameterMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual sal_Bool SAL_CALL approveParameter(const css::form::DatabaseParameterEvent& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::form::XSubmitListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXSubmitMultiplexer, css::form::XSubmitListener)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveSubmit, css::lang::EventObject)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXSubmitMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::form::XSubmitListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::form::XSubmitListener>
+ {
+ public:
+ SbaXSubmitMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXSubmitMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual sal_Bool SAL_CALL approveSubmit(const css::lang::EventObject& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::form::XResetListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXResetMultiplexer, css::form::XResetListener)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveReset, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(resetted, css::lang::EventObject)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXResetMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::form::XResetListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::form::XResetListener>
+ {
+ public:
+ SbaXResetMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXResetMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual sal_Bool SAL_CALL approveReset(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL resetted(const css::lang::EventObject& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::sdbc::XRowSetListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXRowSetMultiplexer, css::sdbc::XRowSetListener)
- DECLARE_MULTIPLEXER_VOID_METHOD(cursorMoved, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(rowChanged, css::lang::EventObject)
- DECLARE_MULTIPLEXER_VOID_METHOD(rowSetChanged, css::lang::EventObject)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXRowSetMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::sdbc::XRowSetListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::sdbc::XRowSetListener>
+ {
+ public:
+ SbaXRowSetMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXRowSetMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual void SAL_CALL cursorMoved(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL rowChanged(const css::lang::EventObject& e) override;
+ virtual void SAL_CALL rowSetChanged(const css::lang::EventObject& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::sdb::XRowSetApproveListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXRowSetApproveMultiplexer, css::sdb::XRowSetApproveListener)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveCursorMove, css::lang::EventObject)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveRowChange, css::sdb::RowChangeEvent)
- DECLARE_MULTIPLEXER_BOOL_METHOD(approveRowSetChange, css::lang::EventObject)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXRowSetApproveMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::sdb::XRowSetApproveListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::sdb::XRowSetApproveListener>
+ {
+ public:
+ SbaXRowSetApproveMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXRowSetApproveMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual sal_Bool SAL_CALL approveCursorMove(const css::lang::EventObject& e) override;
+ virtual sal_Bool SAL_CALL approveRowChange(const css::sdb::RowChangeEvent& e) override;
+ virtual sal_Bool SAL_CALL approveRowSetChange(const css::lang::EventObject& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::sdb::XSQLErrorListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXSQLErrorMultiplexer, css::sdb::XSQLErrorListener)
- DECLARE_MULTIPLEXER_VOID_METHOD(errorOccured, css::sdb::SQLErrorEvent)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXSQLErrorMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::sdb::XSQLErrorListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::sdb::XSQLErrorListener>
+ {
+ public:
+ SbaXSQLErrorMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXSQLErrorMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual void SAL_CALL errorOccured(const css::sdb::SQLErrorEvent& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// css::beans::XPropertyChangeListener
- DECLARE_PROPERTY_MULTIPLEXER(SbaXPropertyChangeMultiplexer, css::beans::XPropertyChangeListener, propertyChange, css::beans::PropertyChangeEvent)
+ class SbaXPropertyChangeMultiplexer final
+ :public OSbaWeakSubObject
+ ,public css::beans::XPropertyChangeListener
+ {
+ typedef ::comphelper::OMultiTypeInterfaceContainerHelperVar3<css::beans::XPropertyChangeListener, OUString> ListenerContainerMap;
+ ListenerContainerMap m_aListeners;
+
+ public:
+ SbaXPropertyChangeMultiplexer( ::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex );
+ DECLARE_UNO3_DEFAULTS(SbaXPropertyChangeMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+
+ virtual void SAL_CALL propertyChange(const css::beans::PropertyChangeEvent& e) override;
+
+ void addInterface(const OUString& rName, const css::uno::Reference< css::beans::XPropertyChangeListener >& rListener);
+ void removeInterface(const OUString& rName, const css::uno::Reference< css::beans::XPropertyChangeListener >& rListener);
+
+ void disposeAndClear();
+
+ sal_Int32 getOverallLen() const;
+
+ ::comphelper::OInterfaceContainerHelper3<css::beans::XPropertyChangeListener>* getContainer(const OUString& rName)
+ { return m_aListeners.getContainer(rName); }
+
+ private:
+ void Notify(::comphelper::OInterfaceContainerHelper3<css::beans::XPropertyChangeListener>& rListeners, const css::beans::PropertyChangeEvent& e);
+ };
// css::beans::XVetoableChangeListener
- DECLARE_PROPERTY_MULTIPLEXER(SbaXVetoableChangeMultiplexer, css::beans::XVetoableChangeListener, vetoableChange, css::beans::PropertyChangeEvent)
+ class SbaXVetoableChangeMultiplexer final
+ :public OSbaWeakSubObject
+ ,public css::beans::XVetoableChangeListener
+ {
+ typedef ::comphelper::OMultiTypeInterfaceContainerHelperVar3<css::beans::XVetoableChangeListener, OUString > ListenerContainerMap;
+ ListenerContainerMap m_aListeners;
+
+ public:
+ SbaXVetoableChangeMultiplexer( ::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex );
+ DECLARE_UNO3_DEFAULTS(SbaXVetoableChangeMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+
+ virtual void SAL_CALL vetoableChange(const css::beans::PropertyChangeEvent& e) override;
+
+ void addInterface(const OUString& rName, const css::uno::Reference< css::beans::XVetoableChangeListener >& rListener);
+ void removeInterface(const OUString& rName, const css::uno::Reference< css::beans::XVetoableChangeListener >& rListener);
+
+ void disposeAndClear();
+
+ sal_Int32 getOverallLen() const;
+
+ private:
+ void Notify(::comphelper::OInterfaceContainerHelper3<css::beans::XVetoableChangeListener>& rListeners, const css::beans::PropertyChangeEvent& e);
+ };
// css::beans::XPropertiesChangeListener
- BEGIN_DECLARE_LISTENER_MULTIPLEXER(SbaXPropertiesChangeMultiplexer, css::beans::XPropertiesChangeListener)
- DECLARE_MULTIPLEXER_VOID_METHOD(propertiesChange, css::uno::Sequence< css::beans::PropertyChangeEvent >)
- END_DECLARE_LISTENER_MULTIPLEXER()
+ class SbaXPropertiesChangeMultiplexer
+ :public OSbaWeakSubObject
+ ,public css::beans::XPropertiesChangeListener
+ ,public ::comphelper::OInterfaceContainerHelper3<css::beans::XPropertiesChangeListener>
+ {
+ public:
+ SbaXPropertiesChangeMultiplexer(::cppu::OWeakObject& rSource, ::osl::Mutex& rMutex);
+ DECLARE_UNO3_DEFAULTS(SbaXPropertiesChangeMultiplexer, OSbaWeakSubObject)
+ virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& _rType) override;
+
+ /* css::lang::XEventListener */
+ virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
+ virtual void SAL_CALL propertiesChange(const css::uno::Sequence< css::beans::PropertyChangeEvent >& e) override;
+ /* resolve ambiguity : both OWeakObject and OInterfaceContainerHelper2 have these memory operators */
+ using OSbaWeakSubObject::operator new;
+ using OSbaWeakSubObject::operator delete;
+ };
// the SbaXPropertiesChangeMultiplexer doesn't care about the property names a listener logs on for, it simply
// forwards _all_ changes to _all_ listeners
}
diff --git a/dbaccess/source/ui/inc/singledoccontroller.hxx b/dbaccess/source/ui/inc/singledoccontroller.hxx
index e5e11ba7a2f0..6b535882bc80 100644
--- a/dbaccess/source/ui/inc/singledoccontroller.hxx
+++ b/dbaccess/source/ui/inc/singledoccontroller.hxx
@@ -31,9 +31,8 @@ class SfxUndoManager;
namespace dbaui
{
+class UndoManager;
- // OSingleDocumentController
- struct OSingleDocumentController_Data;
typedef ::cppu::ImplInheritanceHelper< DBSubComponentController
, css::document::XUndoManagerSupplier
> OSingleDocumentController_Base;
@@ -70,7 +69,8 @@ namespace dbaui
using OSingleDocumentController_Base::disposing;
private:
- std::unique_ptr< OSingleDocumentController_Data > m_pData;
+ // no Reference! see UndoManager::acquire
+ std::unique_ptr<UndoManager> m_pUndoManager;
};
} // namespace dbaui
diff --git a/dbaccess/source/ui/inc/sqledit.hxx b/dbaccess/source/ui/inc/sqledit.hxx
index c434a4f06555..d0f8672cc698 100644
--- a/dbaccess/source/ui/inc/sqledit.hxx
+++ b/dbaccess/source/ui/inc/sqledit.hxx
@@ -25,6 +25,7 @@
#include <svtools/colorcfg.hxx>
#include <svx/weldeditview.hxx>
#include <vcl/timer.hxx>
+#include <mutex>
namespace com::sun::star::beans { class XMultiPropertySet; }
@@ -36,15 +37,16 @@ namespace dbaui
class ChangesListener;
friend class ChangesListener;
+ std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow;
Link<LinkParamNone*,void> m_aModifyLink;
const svtools::ColorConfig m_aColorConfig;
Timer m_aUpdateDataTimer;
const SyntaxHighlighter m_aHighlighter;
svtools::ColorConfig m_ColorConfig;
- SfxItemPool* m_pItemPool;
+ rtl::Reference<SfxItemPool> m_pItemPool;
rtl::Reference<ChangesListener> m_listener;
- osl::Mutex m_mutex;
+ std::mutex m_mutex;
css::uno::Reference<css::beans::XMultiPropertySet> m_notifier;
bool m_bInUpdate;
@@ -52,6 +54,8 @@ namespace dbaui
DECL_LINK(ModifyHdl, LinkParamNone*, void);
DECL_LINK(ImplUpdateDataHdl, Timer*, void);
+ DECL_LINK(ScrollHdl, weld::ScrolledWindow&, void);
+ DECL_LINK(EditStatusHdl, EditStatus&, void);
Color GetColorValue(TokenType aToken);
@@ -62,13 +66,20 @@ namespace dbaui
static void SetItemPoolFont(SfxItemPool* pItemPool);
void UpdateData();
+
+ void SetScrollBarRange();
+ void DoScroll();
+
+ virtual void EditViewScrollStateChange() override;
+
public:
- SQLEditView();
+ SQLEditView(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow);
virtual void makeEditEngine() override;
virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
virtual ~SQLEditView() override;
virtual bool KeyInput(const KeyEvent& rKEvt) override;
+ virtual bool Command(const CommandEvent& rCEvt) override;
void SetTextAndUpdate(const OUString& rNewText);
diff --git a/dbaccess/source/ui/inc/sqlmessage.hxx b/dbaccess/source/ui/inc/sqlmessage.hxx
index a2541dc0fe38..ab827c5dec23 100644
--- a/dbaccess/source/ui/inc/sqlmessage.hxx
+++ b/dbaccess/source/ui/inc/sqlmessage.hxx
@@ -23,16 +23,6 @@
#include <vcl/weld.hxx>
#include <memory>
-// some forwards
-namespace com::sun::star {
- namespace sdb {
- class SQLContext;
- }
- namespace sdbc {
- class SQLException;
- }
-}
-
namespace dbaui
{
@@ -89,7 +79,7 @@ public:
weld::Window* pParent,
const dbtools::SQLExceptionInfo& _rException,
MessBoxStyle _nStyle = MessBoxStyle::Ok | MessBoxStyle::DefaultOk,
- const OUString& _rHelpURL = OUString()
+ OUString _sHelpURL = OUString()
);
/** display a database related error message
@@ -106,7 +96,7 @@ public:
const ::dbtools::SQLExceptionInfo* _pAdditionalErrorInfo = nullptr );
void set_title(const OUString& rTitle) { m_xDialog->set_title(rTitle); }
- void add_button(const OUString& rText, int nResponse, const OString& rHelpId = OString()) { m_xDialog->add_button(rText, nResponse, rHelpId); }
+ void add_button(const OUString& rText, int nResponse, const OUString& rHelpId = {}) { m_xDialog->add_button(rText, nResponse, rHelpId); }
void set_default_response(int nResponse) { m_xDialog->set_default_response(nResponse); }
virtual ~OSQLMessageBox() override;
diff --git a/dbaccess/source/ui/inc/stringlistitem.hxx b/dbaccess/source/ui/inc/stringlistitem.hxx
index fc2cc757ea03..18156cc2385e 100644
--- a/dbaccess/source/ui/inc/stringlistitem.hxx
+++ b/dbaccess/source/ui/inc/stringlistitem.hxx
@@ -26,24 +26,24 @@
namespace dbaui
{
-
// OStringListItem
/** <type>SfxPoolItem</type> which transports a sequence of <type scope="rtl">OUString</type>'s
*/
class OStringListItem : public SfxPoolItem
{
- css::uno::Sequence< OUString > m_aList;
+ css::uno::Sequence<OUString> m_aList;
public:
- OStringListItem(sal_Int16 nWhich, const css::uno::Sequence< OUString >& _rList);
+ DECLARE_ITEM_TYPE_FUNCTION(OStringListItem)
+ OStringListItem(sal_Int16 nWhich, const css::uno::Sequence<OUString>& _rList);
OStringListItem(const OStringListItem& _rSource);
- virtual bool operator==(const SfxPoolItem& _rItem) const override;
+ virtual bool operator==(const SfxPoolItem& _rItem) const override;
virtual OStringListItem* Clone(SfxItemPool* _pPool = nullptr) const override;
- const css::uno::Sequence< OUString >& getList() const { return m_aList; }
+ const css::uno::Sequence<OUString>& getList() const { return m_aList; }
};
-} // namespace dbaui
+} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx
index 941ba2a1a80c..ebfbf7d29c4a 100644
--- a/dbaccess/source/ui/inc/tabletree.hxx
+++ b/dbaccess/source/ui/inc/tabletree.hxx
@@ -104,7 +104,7 @@ public:
void checkedButton_noBroadcast(const weld::TreeIter& rEntry);
private:
- TriState implDetermineState(weld::TreeIter& rEntry);
+ TriState implDetermineState(const weld::TreeIter& rEntry);
void implEmphasize(const weld::TreeIter& rEntry, bool _bChecked, bool _bUpdateDescendants = true, bool _bUpdateAncestors = true);
@@ -139,13 +139,13 @@ public:
/** returns a NamedDatabaseObject record which describes the given entry
*/
css::sdb::application::NamedDatabaseObject
- describeObject(weld::TreeIter& rEntry);
+ describeObject(const weld::TreeIter& rEntry);
/** returns the fully qualified name of a table entry
@param _pEntry
the entry whose name is to be obtained. Must not denote a folder entry.
*/
- OUString getQualifiedTableName(weld::TreeIter& rEntry) const;
+ OUString getQualifiedTableName(const weld::TreeIter& rEntry) const;
std::unique_ptr<weld::TreeIter> getEntryByQualifiedName(const OUString& rName);
};
diff --git a/dbaccess/source/ui/inc/unoadmin.hxx b/dbaccess/source/ui/inc/unoadmin.hxx
index b18e4eb276db..a1d6de4e8a0f 100644
--- a/dbaccess/source/ui/inc/unoadmin.hxx
+++ b/dbaccess/source/ui/inc/unoadmin.hxx
@@ -25,7 +25,6 @@
class SfxItemSet;
class SfxItemPool;
-class SfxPoolItem;
namespace dbaui
{
@@ -37,9 +36,7 @@ class ODatabaseAdministrationDialog
{
protected:
std::unique_ptr<SfxItemSet> m_pDatasourceItems; // item set for the dialog
- SfxItemPool* m_pItemPool; // item pool for the item set for the dialog
- std::vector<SfxPoolItem*>*
- m_pItemPoolDefaults; // pool defaults
+ rtl::Reference<SfxItemPool> m_pItemPool; // item pool for the item set for the dialog
std::unique_ptr<::dbaccess::ODsnTypeCollection>
m_pCollection; // datasource type collection
diff --git a/dbaccess/source/ui/inc/unodatbr.hxx b/dbaccess/source/ui/inc/unodatbr.hxx
index e147b44b9e02..abdb75372539 100644
--- a/dbaccess/source/ui/inc/unodatbr.hxx
+++ b/dbaccess/source/ui/inc/unodatbr.hxx
@@ -31,8 +31,10 @@
#include <com/sun/star/sdb/application/DatabaseObject.hpp>
#include <com/sun/star/sdb/application/DatabaseObjectContainer.hpp>
#include <com/sun/star/sdb/XDatabaseRegistrationsListener.hpp>
+#include <comphelper/interfacecontainer2.hxx>
#include <cppuhelper/implbase5.hxx>
#include "callbacks.hxx"
+#include <utility>
#include <vcl/transfer.hxx>
#include <svx/dataaccessdescriptor.hxx>
#include "TableCopyHelper.hxx"
@@ -45,7 +47,7 @@ namespace com::sun::star::container { class XNameContainer; }
namespace dbaui
{
- struct DBTreeEditedEntry;
+ struct DBTreeListUserData;
class ImageProvider;
typedef ::cppu::ImplHelper5 < css::frame::XStatusListener
@@ -72,7 +74,7 @@ namespace dbaui
bool bEnabled;
ExternalFeature() : bEnabled( false ) { }
- ExternalFeature( const css::util::URL& _rURL ) : aURL( _rURL ), bEnabled( false ) { }
+ ExternalFeature( css::util::URL _aURL ) : aURL(std::move( _aURL )), bEnabled( false ) { }
};
typedef std::map< sal_uInt16, ExternalFeature > ExternalFeaturesMap;
@@ -219,7 +221,7 @@ namespace dbaui
virtual vcl::Window* getMenuParent() const override;
virtual void adjustMenuPosition(const weld::TreeView& rControl, ::Point& rPos) const override;
- virtual void impl_initialize() override;
+ virtual void impl_initialize(const ::comphelper::NamedValueCollection& rArguments) override;
// SbaGridListener overridables
virtual void RowChanged() override;
@@ -268,7 +270,7 @@ namespace dbaui
void implAddDatasource( const OUString& _rDataSourceName, const SharedConnection& _rxConnection );
/// removes (and cleans up) the entry for the given data source
- void impl_cleanupDataSourceEntry( const OUString& _rDataSourceName );
+ void impl_cleanupDataSourceEntry( std::u16string_view _rDataSourceName );
/// clears the tree list box
void clearTreeModel();
@@ -289,7 +291,7 @@ namespace dbaui
/** close the connection (and collapse the list entries) of the given list entries
*/
- void closeConnection(weld::TreeIter& rEntry, bool bDisposeConnection = true);
+ void closeConnection(const weld::TreeIter& rEntry, bool bDisposeConnection = true);
void populateTree(const css::uno::Reference< css::container::XNameAccess>& xNameAccess, const weld::TreeIter& rParent, EntryType eEntryType);
void initializeTreeModel();
@@ -308,7 +310,7 @@ namespace dbaui
*/
std::unique_ptr<ImageProvider> getImageProviderFor(const weld::TreeIter* pAnyEntry);
- void implAdministrate(weld::TreeIter& rApplyTo);
+ void implAdministrate(const weld::TreeIter& rApplyTo);
bool implCopyObject(ODataClipboard& rExchange, const weld::TreeIter& rApplyTo, sal_Int32 nCommandType);
@@ -349,14 +351,12 @@ namespace dbaui
bool _bSelectDirect
);
- std::unique_ptr<weld::TreeIter> implGetConnectionEntry(weld::TreeIter& rEntry) const;
+ std::unique_ptr<weld::TreeIter> implGetConnectionEntry(const weld::TreeIter& rEntry) const;
/// inserts an entry into the tree
std::unique_ptr<weld::TreeIter> implAppendEntry(
const weld::TreeIter* pParent,
const OUString& rName,
- void* pUserData,
- EntryType eEntryType
- );
+ const DBTreeListUserData* pUserData);
/// loads the grid control with the data object specified (which may be a table, a query or a command)
bool implLoadAnything(const OUString& _rDataSourceName, const OUString& _rCommand,
@@ -430,7 +430,7 @@ namespace dbaui
@return
<TRUE/> if it is the currently displayed otherwise <FALSE/>
*/
- bool isCurrentlyDisplayedChanged(const OUString& rName, const weld::TreeIter& rContainer);
+ bool isCurrentlyDisplayedChanged(std::u16string_view rName, const weld::TreeIter& rContainer);
/** called whenever the content of the browser is used for preview, as the very last action
of the load process
diff --git a/dbaccess/source/ui/inc/unosqlmessage.hxx b/dbaccess/source/ui/inc/unosqlmessage.hxx
index 087300bfc76d..c084ef240b7d 100644
--- a/dbaccess/source/ui/inc/unosqlmessage.hxx
+++ b/dbaccess/source/ui/inc/unosqlmessage.hxx
@@ -20,7 +20,6 @@
#pragma once
#include <svtools/genericunodialog.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/proparrhlp.hxx>
namespace dbaui
diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx
index cc24fe114c63..1cba0dee6943 100644
--- a/dbaccess/source/ui/misc/DExport.cxx
+++ b/dbaccess/source/ui/misc/DExport.cxx
@@ -40,11 +40,11 @@
#include <TypeInfo.hxx>
#include <FieldDescriptions.hxx>
#include <UITools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/awt/FontDescriptor.hpp>
#include <WCopyTable.hxx>
#include <unotools/syslocale.hxx>
-#include <svl/zforlist.hxx>
+#include <svl/numformat.hxx>
#include <connectivity/dbexception.hxx>
#include <connectivity/FValue.hxx>
#include <com/sun/star/sdb/application/CopyTableOperation.hpp>
@@ -68,20 +68,19 @@ namespace CopyTableOperation = ::com::sun::star::sdb::application::CopyTableOper
// ODatabaseExport
ODatabaseExport::ODatabaseExport(sal_Int32 nRows,
- const TPositions &_rColumnPositions,
+ TPositions&&_rColumnPositions,
const Reference< XNumberFormatter >& _rxNumberF,
const Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* pList,
const OTypeInfoMap* _pInfoMap,
bool _bAutoIncrementEnabled,
SvStream& _rInputStream)
- :m_vColumnPositions(_rColumnPositions)
- ,m_aDestColumns(true)
+ :m_vColumnPositions(std::move(_rColumnPositions))
+ ,m_aDestColumns(comphelper::UStringMixLess(true))
,m_xFormatter(_rxNumberF)
,m_xContext(_rxContext)
,m_pFormatter(nullptr)
,m_rInputStream( _rInputStream )
- ,m_pTypeInfo()
,m_pColumnList(pList)
,m_pInfoMap(_pInfoMap)
,m_nColumnPos(0)
@@ -126,13 +125,12 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection,
const Reference< XNumberFormatter >& _rxNumberF,
const Reference< css::uno::XComponentContext >& _rxContext,
SvStream& _rInputStream)
- :m_aDestColumns(_rxConnection->getMetaData().is() && _rxConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
+ :m_aDestColumns(comphelper::UStringMixLess(_rxConnection->getMetaData().is() && _rxConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers()))
,m_xConnection(_rxConnection)
,m_xFormatter(_rxNumberF)
,m_xContext(_rxContext)
,m_pFormatter(nullptr)
,m_rInputStream( _rInputStream )
- ,m_pTypeInfo()
,m_pColumnList(nullptr)
,m_pInfoMap(nullptr)
,m_nColumnPos(0)
@@ -190,11 +188,11 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection,
sal_Int32 nPos = 1;
OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector");
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- OUString sTypeName = aValue;
+ OUString sTypeName = aValue.getString();
++nPos;
OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector");
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- sal_Int32 nType = aValue;
+ sal_Int32 nType = aValue.getInt32();
++nPos;
if( nType == DataType::VARCHAR )
@@ -206,44 +204,44 @@ ODatabaseExport::ODatabaseExport(const SharedConnection& _rxConnection,
OSL_ENSURE((nPos) < static_cast<sal_Int32>(aTypes.size()),"aTypes: Illegal index for vector");
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->nPrecision = aValue;
+ m_pTypeInfo->nPrecision = aValue.getInt32();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); //LiteralPrefix
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); //LiteralSuffix
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->aCreateParams = aValue;
+ m_pTypeInfo->aCreateParams = aValue.getString();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->bNullable = static_cast<sal_Int32>(aValue) == ColumnValue::NULLABLE;
+ m_pTypeInfo->bNullable = aValue.getInt32() == ColumnValue::NULLABLE;
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
// bCaseSensitive
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->nSearchType = aValue;
+ m_pTypeInfo->nSearchType = aValue.getInt16();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
// bUnsigned
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->bCurrency = aValue;
+ m_pTypeInfo->bCurrency = aValue.getBool();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->bAutoIncrement = aValue;
+ m_pTypeInfo->bAutoIncrement = aValue.getBool();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->aLocalTypeName = aValue;
+ m_pTypeInfo->aLocalTypeName = aValue.getString();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->nMinimumScale = aValue;
+ m_pTypeInfo->nMinimumScale = aValue.getInt16();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- m_pTypeInfo->nMaximumScale = aValue;
+ m_pTypeInfo->nMaximumScale = aValue.getInt16();
nPos = 18;
aValue.fill(nPos,aTypes[nPos],xRow);
- m_pTypeInfo->nNumPrecRadix = aValue;
+ m_pTypeInfo->nNumPrecRadix = aValue.getInt32();
// check if values are less than zero like it happens in a oracle jdbc driver
if( m_pTypeInfo->nPrecision < 0)
@@ -423,9 +421,6 @@ sal_Int16 ODatabaseExport::CheckString(const OUString& aCheckToken, sal_Int16 _n
case NumberFormat::ALL:
nNumberFormat = NumberFormat::ALL;
break;
- case NumberFormat::DEFINED:
- nNumberFormat = NumberFormat::TEXT;
- break;
case NumberFormat::DATE:
switch(_nOldNumberFormat)
{
@@ -461,12 +456,10 @@ sal_Int16 ODatabaseExport::CheckString(const OUString& aCheckToken, sal_Int16 _n
case NumberFormat::CURRENCY:
switch(_nOldNumberFormat)
{
- case NumberFormat::NUMBER:
- nNumberFormat = NumberFormat::CURRENCY;
- break;
case NumberFormat::CURRENCY:
nNumberFormat = _nOldNumberFormat;
break;
+ case NumberFormat::NUMBER:
case NumberFormat::ALL:
nNumberFormat = NumberFormat::CURRENCY;
break;
@@ -498,6 +491,7 @@ sal_Int16 ODatabaseExport::CheckString(const OUString& aCheckToken, sal_Int16 _n
case NumberFormat::TEXT:
case NumberFormat::UNDEFINED:
case NumberFormat::LOGICAL:
+ case NumberFormat::DEFINED:
nNumberFormat = NumberFormat::TEXT; // Text overwrites everything
break;
case NumberFormat::DATETIME:
@@ -550,13 +544,6 @@ void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const OTypeInfo
switch ( nType )
{
- case NumberFormat::ALL:
- nDataType = DataType::DOUBLE;
- break;
- case NumberFormat::DEFINED:
- nDataType = DataType::VARCHAR;
- nLength = ((m_vColumnSize[i] % 10 ) ? m_vColumnSize[i]/ 10 + 1: m_vColumnSize[i]/ 10) * 10;
- break;
case NumberFormat::DATE:
nDataType = DataType::DATE;
break;
@@ -571,12 +558,14 @@ void ODatabaseExport::SetColumnTypes(const TColumnVector* _pList,const OTypeInfo
nScale = 4;
nLength = 19;
break;
+ case NumberFormat::ALL:
case NumberFormat::NUMBER:
case NumberFormat::SCIENTIFIC:
case NumberFormat::FRACTION:
case NumberFormat::PERCENT:
nDataType = DataType::DOUBLE;
break;
+ case NumberFormat::DEFINED:
case NumberFormat::TEXT:
case NumberFormat::UNDEFINED:
case NumberFormat::LOGICAL:
@@ -657,18 +646,18 @@ void ODatabaseExport::CreateDefaultColumn(const OUString& _rColumnName)
void ODatabaseExport::createRowSet()
{
- m_pUpdateHelper = std::make_shared<OParameterUpdateHelper>(createPreparedStatment(m_xConnection->getMetaData(),m_xTable,m_vColumnPositions));
+ m_pUpdateHelper = std::make_shared<OParameterUpdateHelper>(createPreparedStatement(m_xConnection->getMetaData(),m_xTable,m_vColumnPositions));
}
bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTextColor, const FontDescriptor& _rFont)
{
bool bHaveDefaultTable = !m_sDefaultTableName.isEmpty();
- OUString sTableName( bHaveDefaultTable ? m_sDefaultTableName : _rTableName );
+ const OUString& rTableName(bHaveDefaultTable ? m_sDefaultTableName : _rTableName);
OCopyTableWizard aWizard(
nullptr,
- sTableName,
+ rTableName,
bHaveDefaultTable ? CopyTableOperation::AppendData : CopyTableOperation::CopyDefinitionAndData,
- m_aDestColumns,
+ ODatabaseExport::TColumns(m_aDestColumns),
m_vDestVector,
m_xConnection,
m_xFormatter,
@@ -691,7 +680,7 @@ bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTe
bError = !m_xTable.is();
if(m_xTable.is())
{
- m_xTable->setPropertyValue(PROPERTY_FONT,makeAny(_rFont));
+ m_xTable->setPropertyValue(PROPERTY_FONT,Any(_rFont));
if(_aTextColor.hasValue())
m_xTable->setPropertyValue(PROPERTY_TEXTCOLOR,_aTextColor);
}
@@ -773,14 +762,14 @@ void ODatabaseExport::ensureFormatter()
if ( !m_pFormatter )
{
Reference< XNumberFormatsSupplier > xSupplier = m_xFormatter->getNumberFormatsSupplier();
- auto pSupplierImpl = comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>(xSupplier);
+ auto pSupplierImpl = comphelper::getFromUnoTunnel<SvNumberFormatsSupplierObj>(xSupplier);
m_pFormatter = pSupplierImpl ? pSupplierImpl->GetNumberFormatter() : nullptr;
Reference<XPropertySet> xNumberFormatSettings = xSupplier->getNumberFormatSettings();
- xNumberFormatSettings->getPropertyValue("NullDate") >>= m_aNullDate;
+ xNumberFormatSettings->getPropertyValue(u"NullDate"_ustr) >>= m_aNullDate;
}
}
-Reference< XPreparedStatement > ODatabaseExport::createPreparedStatment( const Reference<XDatabaseMetaData>& _xMetaData
+Reference< XPreparedStatement > ODatabaseExport::createPreparedStatement( const Reference<XDatabaseMetaData>& _xMetaData
,const Reference<XPropertySet>& _xDestTable
,const TPositions& _rvColumns)
{
@@ -805,19 +794,17 @@ Reference< XPreparedStatement > ODatabaseExport::createPreparedStatment( const R
{
return Reference< XPreparedStatement > ();
}
- const OUString* pIter = aDestColumnNames.getConstArray();
- std::vector< OUString> aInsertList;
- aInsertList.resize(aDestColumnNames.getLength()+1);
- for(size_t j=0; j < aInsertList.size(); ++j)
+
+ std::vector<OUString> aInsertList;
+ auto sortedColumns = _rvColumns;
+ std::sort(sortedColumns.begin(), sortedColumns.end());
+ aInsertList.reserve(_rvColumns.size());
+ for (const auto& [nSrc, nDest] : sortedColumns)
{
- ODatabaseExport::TPositions::const_iterator aFind = std::find_if(_rvColumns.begin(),_rvColumns.end(),
- [j] (const ODatabaseExport::TPositions::value_type& tPos)
- { return tPos.second == static_cast<sal_Int32>(j+1); });
- if ( _rvColumns.end() != aFind && aFind->second != COLUMN_POSITION_NOT_FOUND && aFind->first != COLUMN_POSITION_NOT_FOUND )
- {
- OSL_ENSURE((aFind->first) < static_cast<sal_Int32>(aInsertList.size()),"aInsertList: Illegal index for vector");
- aInsertList[aFind->first] = ::dbtools::quoteName( aQuote,*(pIter+j));
- }
+ if (nSrc == COLUMN_POSITION_NOT_FOUND || nDest == COLUMN_POSITION_NOT_FOUND)
+ continue;
+ assert(nDest > 0 && nDest <= aDestColumnNames.getLength());
+ aInsertList.push_back(dbtools::quoteName(aQuote, aDestColumnNames[nDest - 1]));
}
// create the sql string
@@ -825,8 +812,7 @@ Reference< XPreparedStatement > ODatabaseExport::createPreparedStatment( const R
{
if ( !elem.isEmpty() )
{
- aSql.append(elem);
- aSql.append(",");
+ aSql.append(elem + ",");
aValues.append("?,");
}
}
diff --git a/dbaccess/source/ui/misc/HtmlReader.cxx b/dbaccess/source/ui/misc/HtmlReader.cxx
index 6e3d329e3ef2..c2917a6300e0 100644
--- a/dbaccess/source/ui/misc/HtmlReader.cxx
+++ b/dbaccess/source/ui/misc/HtmlReader.cxx
@@ -64,14 +64,14 @@ OHTMLReader::OHTMLReader(SvStream& rIn,const SharedConnection& _rxConnection,
OHTMLReader::OHTMLReader(SvStream& rIn,
sal_Int32 nRows,
- const TPositions &_rColumnPositions,
+ TPositions&& _rColumnPositions,
const Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* pList,
const OTypeInfoMap* _pInfoMap,
bool _bAutoIncrementEnabled)
: HTMLParser(rIn)
- , ODatabaseExport( nRows, _rColumnPositions, _rxNumberF, _rxContext, pList, _pInfoMap, _bAutoIncrementEnabled, rIn )
+ , ODatabaseExport( nRows, std::move(_rColumnPositions), _rxNumberF, _rxContext, pList, _pInfoMap, _bAutoIncrementEnabled, rIn )
, m_nTableCount(0)
, m_nColumnWidth(87)
{
@@ -312,7 +312,7 @@ void OHTMLReader::TableFontOn(FontDescriptor& _rFont, Color &_rTextColor)
while( nPos != -1 )
{
// list of fonts, VCL: semicolon as separator, HTML: comma
- OUString aFName = rFace.getToken( 0, ',', nPos );
+ std::u16string_view aFName = o3tl::getToken(rFace, 0, ',', nPos );
aFName = comphelper::string::strip(aFName, ' ');
if( !aFontName.isEmpty() )
aFontName.append(";");
@@ -465,7 +465,7 @@ bool OHTMLReader::CreateTable(HtmlTokenId nToken)
if ( isCheckEnabled() )
return true;
- return !executeWizard(aTableName,makeAny(nTextColor),aFont) && m_xTable.is();
+ return !executeWizard(aTableName,Any(nTextColor),aFont) && m_xTable.is();
}
void OHTMLReader::setTextEncoding()
diff --git a/dbaccess/source/ui/misc/RowSetDrop.cxx b/dbaccess/source/ui/misc/RowSetDrop.cxx
index 065fee9ce9c0..2efbe1cf414d 100644
--- a/dbaccess/source/ui/misc/RowSetDrop.cxx
+++ b/dbaccess/source/ui/misc/RowSetDrop.cxx
@@ -33,11 +33,7 @@
using namespace dbaui;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::lang;
// export data
ORowSetImportExport::ORowSetImportExport(weld::Window* pParent,
@@ -62,7 +58,7 @@ void ORowSetImportExport::initialize()
m_xTargetResultSetMetaData = Reference<XResultSetMetaDataSupplier>(m_xTargetResultSetUpdate,UNO_QUERY_THROW)->getMetaData();
if(!m_xTargetResultSetMetaData.is() || !xColumnLocate.is() || !m_xResultSetMetaData.is() )
- throw SQLException(DBA_RES(STR_UNEXPECTED_ERROR),*this,"S1000",0,Any());
+ throw SQLException(DBA_RES(STR_UNEXPECTED_ERROR),*this,u"S1000"_ustr,0,Any());
sal_Int32 nCount = m_xTargetResultSetMetaData->getColumnCount();
m_aColumnMapping.reserve(nCount);
@@ -99,21 +95,21 @@ bool ORowSetImportExport::Write()
bool ORowSetImportExport::Read()
{
+ if (!m_xResultSet)
+ return false;
// check if there is any column to copy
if(std::none_of(m_aColumnMapping.begin(),m_aColumnMapping.end(),
[](sal_Int32 n) { return n > 0; }))
return false;
- bool bContinue = true;
if(m_aSelection.hasElements())
{
- const Any* pBegin = m_aSelection.getConstArray();
- const Any* pEnd = pBegin + m_aSelection.getLength();
- for(;pBegin != pEnd && bContinue;++pBegin)
+ for (auto& any : m_aSelection)
{
sal_Int32 nPos = -1;
- *pBegin >>= nPos;
+ any >>= nPos;
OSL_ENSURE(nPos != -1,"Invalid position!");
- bContinue = (m_xResultSet.is() && m_xResultSet->absolute(nPos) && insertNewRow());
+ if (!m_xResultSet->absolute(nPos) || !insertNewRow())
+ break;
}
}
else
@@ -135,10 +131,11 @@ bool ORowSetImportExport::Read()
}
OSL_ENSURE(nRowCount,"RowCount is 0!");
m_xResultSet->beforeFirst();
- while(m_xResultSet.is() && m_xResultSet->next() && bContinue && nRowCount )
+ while(m_xResultSet.is() && m_xResultSet->next() && nRowCount )
{
--nRowCount;
- bContinue = insertNewRow();
+ if (!insertNewRow())
+ break;
}
}
return true;
diff --git a/dbaccess/source/ui/misc/RtfReader.cxx b/dbaccess/source/ui/misc/RtfReader.cxx
index 1a247ca88b06..8895d494f817 100644
--- a/dbaccess/source/ui/misc/RtfReader.cxx
+++ b/dbaccess/source/ui/misc/RtfReader.cxx
@@ -57,14 +57,14 @@ ORTFReader::ORTFReader( SvStream& rIn,
ORTFReader::ORTFReader(SvStream& rIn,
sal_Int32 nRows,
- const TPositions &_rColumnPositions,
+ TPositions&& _rColumnPositions,
const Reference< css::util::XNumberFormatter >& _rxNumberF,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const TColumnVector* pList,
const OTypeInfoMap* _pInfoMap,
bool _bAutoIncrementEnabled)
:SvRTFParser(rIn)
- ,ODatabaseExport( nRows, _rColumnPositions, _rxNumberF, _rxContext, pList, _pInfoMap, _bAutoIncrementEnabled, rIn )
+ ,ODatabaseExport( nRows, std::move(_rColumnPositions), _rxNumberF, _rxContext, pList, _pInfoMap, _bAutoIncrementEnabled, rIn )
{
m_bAppendFirstLine = false;
}
diff --git a/dbaccess/source/ui/misc/TableCopyHelper.cxx b/dbaccess/source/ui/misc/TableCopyHelper.cxx
index 36d7ab70fa14..75be554a1cd1 100644
--- a/dbaccess/source/ui/misc/TableCopyHelper.cxx
+++ b/dbaccess/source/ui/misc/TableCopyHelper.cxx
@@ -35,7 +35,7 @@
#include <svx/dbaexchange.hxx>
#include <unotools/ucbhelper.hxx>
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <sal/log.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <unotools/tempfile.hxx>
@@ -48,12 +48,10 @@ using namespace ::svx;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::task;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdb::application;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::ucb;
OTableCopyHelper::OTableCopyHelper(OGenericUnoController* _pController)
@@ -61,10 +59,10 @@ OTableCopyHelper::OTableCopyHelper(OGenericUnoController* _pController)
{
}
-void OTableCopyHelper::insertTable( const OUString& i_rSourceDataSource, const Reference<XConnection>& i_rSourceConnection,
+void OTableCopyHelper::insertTable( std::u16string_view i_rSourceDataSource, const Reference<XConnection>& i_rSourceConnection,
const OUString& i_rCommand, const sal_Int32 i_nCommandType,
const Reference< XResultSet >& i_rSourceRows, const Sequence< Any >& i_rSelection, const bool i_bBookmarkSelection,
- const OUString& i_rDestDataSource, const Reference<XConnection>& i_rDestConnection)
+ std::u16string_view i_rDestDataSource, const Reference<XConnection>& i_rDestConnection)
{
if ( CommandType::QUERY != i_nCommandType && CommandType::TABLE != i_nCommandType )
{
@@ -89,15 +87,15 @@ void OTableCopyHelper::insertTable( const OUString& i_rSourceDataSource, const R
Reference< XDataAccessDescriptorFactory > xFactory( DataAccessDescriptorFactory::get( aContext ) );
Reference< XPropertySet > xSource( xFactory->createDataAccessDescriptor(), UNO_SET_THROW );
- xSource->setPropertyValue( PROPERTY_COMMAND_TYPE, makeAny( i_nCommandType ) );
- xSource->setPropertyValue( PROPERTY_COMMAND, makeAny( i_rCommand ) );
- xSource->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( xSrcConnection ) );
- xSource->setPropertyValue( PROPERTY_RESULT_SET, makeAny( i_rSourceRows ) );
- xSource->setPropertyValue( PROPERTY_SELECTION, makeAny( i_rSelection ) );
- xSource->setPropertyValue( PROPERTY_BOOKMARK_SELECTION, makeAny( i_bBookmarkSelection ) );
+ xSource->setPropertyValue( PROPERTY_COMMAND_TYPE, Any( i_nCommandType ) );
+ xSource->setPropertyValue( PROPERTY_COMMAND, Any( i_rCommand ) );
+ xSource->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, Any( xSrcConnection ) );
+ xSource->setPropertyValue( PROPERTY_RESULT_SET, Any( i_rSourceRows ) );
+ xSource->setPropertyValue( PROPERTY_SELECTION, Any( i_rSelection ) );
+ xSource->setPropertyValue( PROPERTY_BOOKMARK_SELECTION, Any( i_bBookmarkSelection ) );
Reference< XPropertySet > xDest( xFactory->createDataAccessDescriptor(), UNO_SET_THROW );
- xDest->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( i_rDestConnection ) );
+ xDest->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, Any( i_rDestConnection ) );
auto xInteractionHandler = InteractionHandler::createWithParent(aContext, VCLUnoHelper::GetInterface(m_pController->getView()));
@@ -109,7 +107,7 @@ void OTableCopyHelper::insertTable( const OUString& i_rSourceDataSource, const R
bool bAppendToExisting = !sTableNameForAppend.isEmpty();
xWizard->setOperation( bAppendToExisting ? CopyTableOperation::AppendData : CopyTableOperation::CopyDefinitionAndData );
- xWizard->execute();
+ (void)xWizard->execute();
}
catch( const SQLException& )
{
@@ -121,7 +119,7 @@ void OTableCopyHelper::insertTable( const OUString& i_rSourceDataSource, const R
}
}
-void OTableCopyHelper::pasteTable( const svx::ODataAccessDescriptor& _rPasteData, const OUString& i_rDestDataSourceName,
+void OTableCopyHelper::pasteTable( const svx::ODataAccessDescriptor& _rPasteData, std::u16string_view i_rDestDataSourceName,
const SharedConnection& i_rDestConnection )
{
OUString sSrcDataSourceName = _rPasteData.getDataSource();
@@ -166,7 +164,7 @@ void OTableCopyHelper::pasteTable( const svx::ODataAccessDescriptor& _rPasteData
void OTableCopyHelper::pasteTable( SotClipboardFormatId _nFormatId
,const TransferableDataHelper& _rTransData
- ,const OUString& i_rDestDataSource
+ ,std::u16string_view i_rDestDataSource
,const SharedConnection& _xConnection)
{
if ( _nFormatId == SotClipboardFormatId::DBACCESS_TABLE || _nFormatId == SotClipboardFormatId::DBACCESS_QUERY )
@@ -182,17 +180,16 @@ void OTableCopyHelper::pasteTable( SotClipboardFormatId _nFormatId
try
{
DropDescriptor aTrans;
- bool bOk;
if ( _nFormatId != SotClipboardFormatId::RTF )
- bOk = const_cast<TransferableDataHelper&>(_rTransData).GetSotStorageStream(SotClipboardFormatId::HTML ,aTrans.aHtmlRtfStorage);
+ aTrans.aHtmlRtfStorage = _rTransData.GetSotStorageStream(SotClipboardFormatId::HTML);
else
- bOk = const_cast<TransferableDataHelper&>(_rTransData).GetSotStorageStream(SotClipboardFormatId::RTF,aTrans.aHtmlRtfStorage);
+ aTrans.aHtmlRtfStorage = _rTransData.GetSotStorageStream(SotClipboardFormatId::RTF);
aTrans.nType = E_TABLE;
aTrans.bHtml = SotClipboardFormatId::HTML == _nFormatId;
aTrans.sDefaultTableName = GetTableNameForAppend();
- if ( !bOk || !copyTagTable(aTrans,false,_xConnection) )
- m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, "S1000", 0, Any()));
+ if ( !aTrans.aHtmlRtfStorage || !copyTagTable(aTrans,false,_xConnection) )
+ m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, u"S1000"_ustr, 0, Any()));
}
catch(const SQLException&)
{
@@ -204,11 +201,11 @@ void OTableCopyHelper::pasteTable( SotClipboardFormatId _nFormatId
}
}
else
- m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, "S1000", 0, Any()));
+ m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, u"S1000"_ustr, 0, Any()));
}
void OTableCopyHelper::pasteTable( const TransferableDataHelper& _rTransData
- ,const OUString& i_rDestDataSource
+ ,std::u16string_view i_rDestDataSource
,const SharedConnection& _xConnection)
{
if ( _rTransData.HasFormat(SotClipboardFormatId::DBACCESS_TABLE) || _rTransData.HasFormat(SotClipboardFormatId::DBACCESS_QUERY) )
@@ -221,14 +218,12 @@ void OTableCopyHelper::pasteTable( const TransferableDataHelper& _rTransData
bool OTableCopyHelper::copyTagTable(OTableCopyHelper::DropDescriptor const & _rDesc, bool _bCheck, const SharedConnection& _xConnection)
{
- Reference<XEventListener> xEvt;
- ODatabaseImportExport* pImport = nullptr;
+ rtl::Reference<ODatabaseImportExport> pImport;
if ( _rDesc.bHtml )
pImport = new OHTMLImportExport(_xConnection,getNumberFormatter(_xConnection, m_pController->getORB()),m_pController->getORB());
else
pImport = new ORTFImportExport(_xConnection,getNumberFormatter(_xConnection, m_pController->getORB()),m_pController->getORB());
- xEvt = pImport;
SvStream* pStream = _rDesc.aHtmlRtfStorage.get();
if ( _bCheck )
pImport->enableCheckOnly();
@@ -258,26 +253,21 @@ bool OTableCopyHelper::copyTagTable(const TransferableDataHelper& _aDroppedData
bool bHtml = _aDroppedData.HasFormat(SotClipboardFormatId::HTML);
if ( bHtml || _aDroppedData.HasFormat(SotClipboardFormatId::RTF) )
{
- bool bOk;
- if ( bHtml )
- bOk = const_cast<TransferableDataHelper&>(_aDroppedData).GetSotStorageStream(SotClipboardFormatId::HTML ,_rAsyncDrop.aHtmlRtfStorage);
- else
- bOk = const_cast<TransferableDataHelper&>(_aDroppedData).GetSotStorageStream(SotClipboardFormatId::RTF,_rAsyncDrop.aHtmlRtfStorage);
+ _rAsyncDrop.aHtmlRtfStorage = _aDroppedData.GetSotStorageStream(bHtml ? SotClipboardFormatId::HTML : SotClipboardFormatId::RTF);
_rAsyncDrop.bHtml = bHtml;
_rAsyncDrop.bError = !copyTagTable(_rAsyncDrop,true,_xConnection);
- bRet = ( !_rAsyncDrop.bError && bOk && _rAsyncDrop.aHtmlRtfStorage.is() );
+ bRet = ( !_rAsyncDrop.bError && _rAsyncDrop.aHtmlRtfStorage );
if ( bRet )
{
// now we need to copy the stream
- ::utl::TempFile aTmp;
+ ::utl::TempFileNamed aTmp;
_rAsyncDrop.aUrl = aTmp.GetURL();
- ::tools::SvRef<SotStorageStream> aNew = new SotStorageStream( aTmp.GetFileName() );
+ std::unique_ptr<SvStream> aNew = SotTempStream::Create( aTmp.GetFileName() );
_rAsyncDrop.aHtmlRtfStorage->Seek(STREAM_SEEK_TO_BEGIN);
- _rAsyncDrop.aHtmlRtfStorage->CopyTo( aNew.get() );
- aNew->Commit();
- _rAsyncDrop.aHtmlRtfStorage = aNew;
+ aNew->WriteStream(*_rAsyncDrop.aHtmlRtfStorage);
+ _rAsyncDrop.aHtmlRtfStorage = std::move(aNew);
}
else
_rAsyncDrop.aHtmlRtfStorage = nullptr;
@@ -286,10 +276,10 @@ bool OTableCopyHelper::copyTagTable(const TransferableDataHelper& _aDroppedData
}
void OTableCopyHelper::asyncCopyTagTable( DropDescriptor& _rDesc
- ,const OUString& i_rDestDataSource
+ ,std::u16string_view i_rDestDataSource
,const SharedConnection& _xConnection)
{
- if ( _rDesc.aHtmlRtfStorage.is() )
+ if ( _rDesc.aHtmlRtfStorage )
{
copyTagTable(_rDesc,false,_xConnection);
_rDesc.aHtmlRtfStorage = nullptr;
@@ -301,7 +291,7 @@ void OTableCopyHelper::asyncCopyTagTable( DropDescriptor& _rDesc
else if ( !_rDesc.bError )
pasteTable(_rDesc.aDroppedData,i_rDestDataSource,_xConnection);
else
- m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, "S1000", 0, Any()));
+ m_pController->showError(SQLException(DBA_RES(STR_NO_TABLE_FORMAT_INSIDE), *m_pController, u"S1000"_ustr, 0, Any()));
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/misc/TokenWriter.cxx b/dbaccess/source/ui/misc/TokenWriter.cxx
index 5b1be584b18f..17db6b7cdd5d 100644
--- a/dbaccess/source/ui/misc/TokenWriter.cxx
+++ b/dbaccess/source/ui/misc/TokenWriter.cxx
@@ -18,7 +18,7 @@
*/
#include <TokenWriter.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <tools/stream.hxx>
#include <osl/diagnose.h>
#include <rtl/tencinfo.h>
@@ -48,6 +48,7 @@
#include <svtools/htmlout.hxx>
#include <sfx2/frmhtmlw.hxx>
#include <svl/numuno.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <UITools.hxx>
#include <toolkit/helper/vclunohelper.hxx>
@@ -55,6 +56,7 @@
#include <vcl/settings.hxx>
#include <svtools/rtfout.hxx>
#include <svtools/htmlcfg.hxx>
+#include <o3tl/string_view.hxx>
#include <connectivity/formattedcolumnvalue.hxx>
#include <memory>
@@ -72,12 +74,13 @@ using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::util;
-#define CELL_X 1437
+constexpr sal_Int32 CELL_X = 1437;
ODatabaseImportExport::ODatabaseImportExport(const svx::ODataAccessDescriptor& _aDataDescriptor,
const Reference< XComponentContext >& _rM,
const Reference< css::util::XNumberFormatter >& _rxNumberF)
:m_bBookmarkSelection( false )
+ ,m_pStream(nullptr)
,m_xFormatter(_rxNumberF)
,m_xContext(_rM)
,m_nCommandType(CommandType::TABLE)
@@ -93,11 +96,11 @@ ODatabaseImportExport::ODatabaseImportExport(const svx::ODataAccessDescriptor& _
}
// import data
-ODatabaseImportExport::ODatabaseImportExport( const ::dbtools::SharedConnection& _rxConnection,
+ODatabaseImportExport::ODatabaseImportExport( ::dbtools::SharedConnection _xConnection,
const Reference< XNumberFormatter >& _rxNumberF, const Reference< XComponentContext >& _rM )
:m_bBookmarkSelection( false )
,m_pStream(nullptr)
- ,m_xConnection(_rxConnection)
+ ,m_xConnection(std::move(_xConnection))
,m_xFormatter(_rxNumberF)
,m_xContext(_rM)
,m_nCommandType(css::sdb::CommandType::TABLE)
@@ -120,7 +123,7 @@ void ODatabaseImportExport::dispose()
Reference< XComponent > xComponent(m_xConnection, UNO_QUERY);
if (xComponent.is())
{
- Reference< XEventListener> xEvt(static_cast<cppu::OWeakObject*>(this),UNO_QUERY);
+ Reference< XEventListener> xEvt(this);
xComponent->removeEventListener(xEvt);
}
m_xConnection.clear();
@@ -133,6 +136,7 @@ void ODatabaseImportExport::dispose()
m_xRow.clear();
m_xRowLocate.clear();
m_xFormatter.clear();
+ m_xRowSetColumns.clear();
}
void SAL_CALL ODatabaseImportExport::disposing( const EventObject& Source )
@@ -163,7 +167,7 @@ void ODatabaseImportExport::impl_initFromDescriptor( const ODataAccessDescriptor
{
Reference< XConnection > xPureConn( _aDataDescriptor[DataAccessDescriptorProperty::Connection], UNO_QUERY );
m_xConnection.reset( xPureConn, SharedConnection::NoTakeOwnership );
- Reference< XEventListener> xEvt(static_cast<cppu::OWeakObject*>(this),UNO_QUERY);
+ Reference< XEventListener> xEvt(this);
Reference< XComponent > xComponent(m_xConnection, UNO_QUERY);
if (xComponent.is() && xEvt.is())
xComponent->addEventListener(xEvt);
@@ -212,7 +216,7 @@ void ODatabaseImportExport::initialize()
{ // we need a connection
OSL_ENSURE(!m_sDataSourceName.isEmpty(),"There must be a datsource name!");
Reference<XNameAccess> xDatabaseContext( DatabaseContext::create(m_xContext), UNO_QUERY_THROW);
- Reference< XEventListener> xEvt(static_cast<cppu::OWeakObject*>(this),UNO_QUERY);
+ Reference< XEventListener> xEvt(this);
Reference< XConnection > xConnection;
SQLExceptionInfo aInfo = ::dbaui::createConnection( m_sDataSourceName, xDatabaseContext, m_xContext, xEvt, xConnection );
@@ -256,11 +260,11 @@ void ODatabaseImportExport::initialize()
// the result set may be already set with the datadescriptor
if ( !m_xResultSet.is() )
{
- m_xResultSet.set( m_xContext->getServiceManager()->createInstanceWithContext("com.sun.star.sdb.RowSet", m_xContext), UNO_QUERY );
+ m_xResultSet.set( m_xContext->getServiceManager()->createInstanceWithContext(u"com.sun.star.sdb.RowSet"_ustr, m_xContext), UNO_QUERY );
Reference< XPropertySet > xProp( m_xResultSet, UNO_QUERY_THROW );
- xProp->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( m_xConnection.getTyped() ) );
- xProp->setPropertyValue( PROPERTY_COMMAND_TYPE, makeAny( m_nCommandType ) );
- xProp->setPropertyValue( PROPERTY_COMMAND, makeAny( m_sName ) );
+ xProp->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, Any( m_xConnection.getTyped() ) );
+ xProp->setPropertyValue( PROPERTY_COMMAND_TYPE, Any( m_nCommandType ) );
+ xProp->setPropertyValue( PROPERTY_COMMAND, Any( m_sName ) );
Reference< XRowSet > xRowSet( xProp, UNO_QUERY );
xRowSet->execute();
}
@@ -317,23 +321,22 @@ bool ODatabaseImportExport::Read()
bool ORTFImportExport::Write()
{
ODatabaseImportExport::Write();
- m_pStream->WriteChar( '{' ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_RTF );
- m_pStream->WriteCharPtr(OOO_STRING_SVTOOLS_RTF_ANSI);
+ m_pStream->WriteChar( '{' ).WriteOString( OOO_STRING_SVTOOLS_RTF_RTF );
+ m_pStream->WriteOString(OOO_STRING_SVTOOLS_RTF_ANSI);
if (sal_uInt32 nCpg = rtl_getWindowsCodePageFromTextEncoding(m_eDestEnc); nCpg && nCpg != 65001)
{
- m_pStream->WriteCharPtr(OOO_STRING_SVTOOLS_RTF_ANSICPG).WriteUInt32AsString(nCpg);
+ m_pStream->WriteOString(OOO_STRING_SVTOOLS_RTF_ANSICPG).WriteNumberAsString(nCpg);
}
- m_pStream->WriteCharPtr(SAL_NEWLINE_STRING);
+ m_pStream->WriteOString(SAL_NEWLINE_STRING);
bool bBold = ( css::awt::FontWeight::BOLD == m_aFont.Weight );
bool bItalic = ( css::awt::FontSlant_ITALIC == m_aFont.Slant );
bool bUnderline = ( css::awt::FontUnderline::NONE != m_aFont.Underline );
bool bStrikeout = ( css::awt::FontStrikeout::NONE != m_aFont.Strikeout );
- sal_Int32 nColor = 0;
+ ::Color aColor;
if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
+ m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= aColor;
OString aFonts(OUStringToOString(m_aFont.Name, RTL_TEXTENCODING_MS_1252));
if (aFonts.isEmpty())
@@ -342,44 +345,43 @@ bool ORTFImportExport::Write()
aFonts = OUStringToOString(aName, RTL_TEXTENCODING_MS_1252);
}
- m_pStream->WriteCharPtr( "{\\fonttbl" );
+ m_pStream->WriteOString( "{\\fonttbl" );
if (!aFonts.isEmpty())
{
sal_Int32 nIdx{0};
sal_Int32 nTok{-1}; // to compensate pre-increment
do {
- m_pStream->WriteCharPtr( "\\f" );
- m_pStream->WriteInt32AsString(++nTok);
- m_pStream->WriteCharPtr( "\\fcharset0\\fnil " );
- m_pStream->WriteOString( aFonts.getToken(0, ';', nIdx) );
+ m_pStream->WriteOString( "\\f" );
+ m_pStream->WriteNumberAsString(++nTok);
+ m_pStream->WriteOString( "\\fcharset0\\fnil " );
+ m_pStream->WriteOString( o3tl::getToken(aFonts, 0, ';', nIdx) );
m_pStream->WriteChar( ';' );
} while (nIdx>=0);
}
m_pStream->WriteChar( '}' ) ;
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
// write the rtf color table
- m_pStream->WriteChar( '{' ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_COLORTBL ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_RED );
- m_pStream->WriteUInt32AsString(aColor.GetRed());
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_GREEN );
- m_pStream->WriteUInt32AsString(aColor.GetGreen());
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_BLUE );
- m_pStream->WriteUInt32AsString(aColor.GetBlue());
+ m_pStream->WriteChar( '{' ).WriteOString( OOO_STRING_SVTOOLS_RTF_COLORTBL ).WriteOString( OOO_STRING_SVTOOLS_RTF_RED );
+ m_pStream->WriteNumberAsString(aColor.GetRed());
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_GREEN );
+ m_pStream->WriteNumberAsString(aColor.GetGreen());
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_BLUE );
+ m_pStream->WriteNumberAsString(aColor.GetBlue());
- m_pStream->WriteCharPtr( ";\\red255\\green255\\blue255;\\red192\\green192\\blue192;}" )
- .WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( ";\\red255\\green255\\blue255;\\red192\\green192\\blue192;}" )
+ .WriteOString( SAL_NEWLINE_STRING );
static char const aCell1[] = "\\clbrdrl\\brdrs\\brdrcf0\\clbrdrt\\brdrs\\brdrcf0\\clbrdrb\\brdrs\\brdrcf0\\clbrdrr\\brdrs\\brdrcf0\\clshdng10000\\clcfpat2\\cellx";
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_TROWD ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_TRGAPH );
- m_pStream->WriteInt32AsString(40);
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_TROWD ).WriteOString( OOO_STRING_SVTOOLS_RTF_TRGAPH );
+ m_pStream->WriteOString("40");
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
if(m_xObject.is())
{
Reference<XColumnsSupplier> xColSup(m_xObject,UNO_QUERY);
Reference<XNameAccess> xColumns = xColSup->getColumns();
Sequence< OUString> aNames(xColumns->getElementNames());
- const OUString* pIter = aNames.getConstArray();
sal_Int32 nCount = aNames.getLength();
bool bUseResultMetaData = false;
@@ -391,14 +393,14 @@ bool ORTFImportExport::Write()
for( sal_Int32 i=1; i<=nCount; ++i )
{
- m_pStream->WriteCharPtr( aCell1 );
- m_pStream->WriteInt32AsString(i*CELL_X);
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( aCell1 );
+ m_pStream->WriteNumberAsString(i*CELL_X);
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
}
// column description
- m_pStream->WriteChar( '{' ).WriteCharPtr( SAL_NEWLINE_STRING );
- m_pStream->WriteCharPtr( "\\trrh-270\\pard\\intbl" );
+ m_pStream->WriteChar( '{' ).WriteOString( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( "\\trrh-270\\pard\\intbl" );
std::unique_ptr<OString[]> pHorzChar(new OString[nCount]);
@@ -410,11 +412,10 @@ bool ORTFImportExport::Write()
sColumnName = m_xResultSetMetaData->getColumnName(i);
else
{
- sColumnName = *pIter;
+ sColumnName = aNames[i - 1];
Reference<XPropertySet> xColumn;
xColumns->getByName(sColumnName) >>= xColumn;
xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign;
- ++pIter;
}
const char* pChar;
@@ -428,52 +429,49 @@ bool ORTFImportExport::Write()
pHorzChar[i-1] = pChar; // to avoid to always rummage in the ITEMSET later on
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
m_pStream->WriteChar( '{' );
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_QC ); // column header always centered
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_QC ); // column header always centered
- if ( bBold ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_B );
- if ( bItalic ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_I );
- if ( bUnderline ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_UL );
- if ( bStrikeout ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_STRIKE );
+ if ( bBold ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_B );
+ if ( bItalic ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_I );
+ if ( bUnderline ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_UL );
+ if ( bStrikeout ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_STRIKE );
- m_pStream->WriteCharPtr( "\\fs20\\f0\\cf0\\cb2" );
+ m_pStream->WriteOString( "\\fs20\\f0\\cf0\\cb2" );
m_pStream->WriteChar( ' ' );
RTFOutFuncs::Out_String(*m_pStream, sColumnName, m_eDestEnc);
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_CELL );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_CELL );
m_pStream->WriteChar( '}' );
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_PARD ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_INTBL );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_PARD ).WriteOString( OOO_STRING_SVTOOLS_RTF_INTBL );
}
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_ROW );
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING ).WriteChar( '}' );
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_ROW );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING ).WriteChar( '}' );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
sal_Int32 k=1;
sal_Int32 kk=0;
if ( m_aSelection.hasElements() )
{
- const Any* pSelIter = m_aSelection.getConstArray();
- const Any* pEnd = pSelIter + m_aSelection.getLength();
-
- bool bContinue = true;
- for( ; pSelIter != pEnd && bContinue; ++pSelIter )
+ for (auto& any : m_aSelection)
{
if ( m_bBookmarkSelection )
{
- bContinue = m_xRowLocate->moveToBookmark( *pSelIter );
+ if (!m_xRowLocate->moveToBookmark(any))
+ break;
}
else
{
sal_Int32 nPos = -1;
- OSL_VERIFY( *pSelIter >>= nPos );
- bContinue = ( m_xResultSet->absolute( nPos ) );
+ OSL_VERIFY(any >>= nPos);
+ if (!m_xResultSet->absolute(nPos))
+ break;
}
- if ( bContinue )
- appendRow( pHorzChar.get(), nCount, k, kk );
+ appendRow(pHorzChar.get(), nCount, k, kk);
}
}
else
@@ -486,7 +484,7 @@ bool ORTFImportExport::Write()
}
}
- m_pStream->WriteChar( '}' ).WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteChar( '}' ).WriteOString( SAL_NEWLINE_STRING );
m_pStream->WriteUChar( 0 );
return ((*m_pStream).GetError() == ERRCODE_NONE);
}
@@ -494,17 +492,17 @@ bool ORTFImportExport::Write()
void ORTFImportExport::appendRow(OString const * pHorzChar,sal_Int32 _nColumnCount,sal_Int32& k,sal_Int32& kk)
{
++kk;
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_TROWD ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_TRGAPH );
- m_pStream->WriteInt32AsString(40);
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_TROWD ).WriteOString( OOO_STRING_SVTOOLS_RTF_TRGAPH );
+ m_pStream->WriteOString("40");
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
static char const aCell2[] = "\\clbrdrl\\brdrs\\brdrcf2\\clbrdrt\\brdrs\\brdrcf2\\clbrdrb\\brdrs\\brdrcf2\\clbrdrr\\brdrs\\brdrcf2\\clshdng10000\\clcfpat1\\cellx";
for ( sal_Int32 i=1; i<=_nColumnCount; ++i )
{
- m_pStream->WriteCharPtr( aCell2 );
- m_pStream->WriteInt32AsString(i*CELL_X);
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( aCell2 );
+ m_pStream->WriteNumberAsString(i*CELL_X);
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
}
const bool bBold = ( css::awt::FontWeight::BOLD == m_aFont.Weight );
@@ -514,19 +512,19 @@ void ORTFImportExport::appendRow(OString const * pHorzChar,sal_Int32 _nColumnCou
Reference< XRowSet > xRowSet(m_xRow,UNO_QUERY);
m_pStream->WriteChar( '{' );
- m_pStream->WriteCharPtr( "\\trrh-270\\pard\\intbl" );
+ m_pStream->WriteOString( "\\trrh-270\\pard\\intbl" );
for ( sal_Int32 i=1; i <= _nColumnCount; ++i )
{
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
m_pStream->WriteChar( '{' );
m_pStream->WriteOString( pHorzChar[i-1] );
- if ( bBold ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_B );
- if ( bItalic ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_I );
- if ( bUnderline ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_UL );
- if ( bStrikeout ) m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_STRIKE );
+ if ( bBold ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_B );
+ if ( bItalic ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_I );
+ if ( bUnderline ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_UL );
+ if ( bStrikeout ) m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_STRIKE );
- m_pStream->WriteCharPtr( "\\fs20\\f1\\cf0\\cb1 " );
+ m_pStream->WriteOString( "\\fs20\\f1\\cf0\\cb1 " );
try
{
@@ -541,12 +539,12 @@ void ORTFImportExport::appendRow(OString const * pHorzChar,sal_Int32 _nColumnCou
SAL_WARN("dbaccess.ui","RTF WRITE!");
}
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_CELL );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_CELL );
m_pStream->WriteChar( '}' );
- m_pStream->WriteCharPtr( SAL_NEWLINE_STRING );
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_PARD ).WriteCharPtr( OOO_STRING_SVTOOLS_RTF_INTBL );
+ m_pStream->WriteOString( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_PARD ).WriteOString( OOO_STRING_SVTOOLS_RTF_INTBL );
}
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_RTF_ROW ).WriteCharPtr( SAL_NEWLINE_STRING );
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_RTF_ROW ).WriteOString( SAL_NEWLINE_STRING );
m_pStream->WriteChar( '}' );
++k;
}
@@ -569,13 +567,6 @@ bool ORTFImportExport::Read()
const sal_Int16 OHTMLImportExport::nCellSpacing = 0;
const char OHTMLImportExport::sIndentSource[nIndentMax+1] = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
-// Macros for HTML-Export
-#define TAG_ON( tag ) HTMLOutFuncs::Out_AsciiTag( (*m_pStream), tag )
-#define TAG_OFF( tag ) HTMLOutFuncs::Out_AsciiTag( (*m_pStream), tag, false )
-#define OUT_LF() m_pStream->WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() )
-#define TAG_ON_LF( tag ) (TAG_ON( tag ).WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() ))
-#define TAG_OFF_LF( tag ) (TAG_OFF( tag ).WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() ))
-
OHTMLImportExport::OHTMLImportExport(const svx::ODataAccessDescriptor& _aDataDescriptor,
const Reference< XComponentContext >& _rM,
const Reference< css::util::XNumberFormatter >& _rxNumberF)
@@ -586,8 +577,7 @@ OHTMLImportExport::OHTMLImportExport(const svx::ODataAccessDescriptor& _aDataDes
#endif
{
// set HTML configuration
- SvxHtmlOptions& rHtmlOptions = SvxHtmlOptions::Get();
- m_eDestEnc = rHtmlOptions.GetTextEncoding();
+ m_eDestEnc = RTL_TEXTENCODING_UTF8;
strncpy( sIndent, sIndentSource ,std::min(sizeof(sIndent),sizeof(sIndentSource)));
sIndent[0] = 0;
}
@@ -597,13 +587,13 @@ bool OHTMLImportExport::Write()
ODatabaseImportExport::Write();
if(m_xObject.is())
{
- m_pStream->WriteChar( '<' ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_doctype ).WriteChar( ' ' ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_doctype40 ).WriteChar( '>' ).WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( SAL_NEWLINE_STRING );
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_html );
+ m_pStream->WriteChar( '<' ).WriteOString( OOO_STRING_SVTOOLS_HTML_doctype ).WriteChar( ' ' ).WriteOString( OOO_STRING_SVTOOLS_HTML_doctype5 ).WriteChar( '>' ).WriteOString( SAL_NEWLINE_STRING ).WriteOString( SAL_NEWLINE_STRING );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_html).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
WriteHeader();
- OUT_LF();
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
WriteBody();
- OUT_LF();
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_html );
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_html, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
return ((*m_pStream).GetError() == ERRCODE_NONE);
}
@@ -634,47 +624,53 @@ void OHTMLImportExport::WriteHeader()
xDocProps->setTitle(m_sName);
}
- IncIndent(1); TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_head );
+ IncIndent(1);
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_head).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
SfxFrameHTMLWriter::Out_DocInfo( (*m_pStream), OUString(),
- xDocProps, sIndent, osl_getThreadTextEncoding() );
- OUT_LF();
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_head );
+ xDocProps, sIndent );
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ IncIndent(-1);
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_head, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
void OHTMLImportExport::WriteBody()
{
IncIndent(1);
- m_pStream->WriteCharPtr( "<" ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_style ).WriteCharPtr( " " ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_O_type ).WriteCharPtr( "=\"text/css\">" );
+ m_pStream->WriteOString( "<" ).WriteOString( OOO_STRING_SVTOOLS_HTML_style ).WriteOString( " " ).WriteOString( OOO_STRING_SVTOOLS_HTML_O_type ).WriteOString( "=\"text/css\">" );
- m_pStream->WriteCharPtr( "<!-- " ); OUT_LF();
- m_pStream->WriteCharPtr( OOO_STRING_SVTOOLS_HTML_body ).WriteCharPtr( " { " ).WriteCharPtr( "font-family: " ).WriteChar( '"' ).WriteOString( OUStringToOString(m_aFont.Name, osl_getThreadTextEncoding()) ).WriteChar( '\"' );
+ m_pStream->WriteOString( "<!-- " );
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ m_pStream->WriteOString( OOO_STRING_SVTOOLS_HTML_body ).WriteOString( " { " ).WriteOString( "font-family: " ).WriteChar( '"' ).WriteOString( OUStringToOString(m_aFont.Name, osl_getThreadTextEncoding()) ).WriteChar( '\"' );
// TODO : think about the encoding of the font name
- m_pStream->WriteCharPtr( "; " ).WriteCharPtr( "font-size: " );
- m_pStream->WriteInt32AsString(m_aFont.Height);
+ m_pStream->WriteOString( "; " ).WriteOString( "font-size: " );
+ m_pStream->WriteNumberAsString(m_aFont.Height);
m_pStream->WriteChar( '}' );
- OUT_LF();
- m_pStream->WriteCharPtr( " -->" );
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_style );
- OUT_LF();
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ m_pStream->WriteOString( " -->" );
+ IncIndent(-1);
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_style, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
// default Textcolour black
- m_pStream->WriteChar( '<' ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_body ).WriteChar( ' ' ).WriteCharPtr( OOO_STRING_SVTOOLS_HTML_O_text ).WriteChar( '=' );
- sal_Int32 nColor = 0;
+ m_pStream->WriteChar( '<' ).WriteOString( OOO_STRING_SVTOOLS_HTML_body ).WriteChar( ' ' ).WriteOString( OOO_STRING_SVTOOLS_HTML_O_text ).WriteChar( '=' );
+ ::Color aColor;
if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
+ m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= aColor;
HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
- m_pStream->WriteCharPtr( " " OOO_STRING_SVTOOLS_HTML_O_bgcolor "=" );
+ m_pStream->WriteOString( " " OOO_STRING_SVTOOLS_HTML_O_bgcolor "=" );
HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
- m_pStream->WriteChar( '>' ); OUT_LF();
+ m_pStream->WriteChar( '>' );
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
WriteTables();
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_body );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_body, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
void OHTMLImportExport::WriteTables()
@@ -683,7 +679,7 @@ void OHTMLImportExport::WriteTables()
" "
OOO_STRING_SVTOOLS_HTML_frame
"="
- OOO_STRING_SVTOOLS_HTML_TF_void;
+ OOO_STRING_SVTOOLS_HTML_TF_void ""_ostr;
Sequence< OUString> aNames;
Reference<XNameAccess> xColumns;
@@ -697,8 +693,9 @@ void OHTMLImportExport::WriteTables()
{
sal_Int32 nCount = m_xResultSetMetaData->getColumnCount();
aNames.realloc(nCount);
+ auto aNamesRange = asNonConstRange(aNames);
for (sal_Int32 i= 0; i < nCount; ++i)
- aNames[i] = m_xResultSetMetaData->getColumnName(i+1);
+ aNamesRange[i] = m_xResultSetMetaData->getColumnName(i+1);
bUseResultMetaData = true;
}
}
@@ -720,27 +717,27 @@ void OHTMLImportExport::WriteTables()
"=1";
IncIndent(1);
- TAG_ON( aStrOut.getStr() );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, aStrOut);
FontOn();
- TAG_ON( OOO_STRING_SVTOOLS_HTML_caption );
- TAG_ON( OOO_STRING_SVTOOLS_HTML_bold );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_caption);
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_bold);
m_pStream->WriteOString( OUStringToOString(m_sName, osl_getThreadTextEncoding()) );
// TODO : think about the encoding of the name
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_bold );
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_caption );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_bold, false);
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_caption, false);
FontOff();
- OUT_LF();
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
// </FONT>
IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_thead );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_thead).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tablerow).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
if(m_xObject.is())
{
@@ -753,10 +750,7 @@ void OHTMLImportExport::WriteTables()
m_xObject->getPropertyValue(PROPERTY_ROW_HEIGHT) >>= nHeight;
// 1. writing the column description
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
-
- for( sal_Int32 i=0;pIter != pEnd; ++pIter,++i )
+ for (sal_Int32 i = 0; i < aNames.getLength(); ++i)
{
sal_Int32 nAlign = 0;
pFormat[i] = 0;
@@ -764,7 +758,7 @@ void OHTMLImportExport::WriteTables()
if ( !bUseResultMetaData )
{
Reference<XPropertySet> xColumn;
- xColumns->getByName(*pIter) >>= xColumn;
+ xColumns->getByName(aNames[i]) >>= xColumn;
xColumn->getPropertyValue(PROPERTY_ALIGN) >>= nAlign;
pFormat[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_FORMATKEY));
pColWidth[i] = ::comphelper::getINT32(xColumn->getPropertyValue(PROPERTY_WIDTH));
@@ -780,26 +774,24 @@ void OHTMLImportExport::WriteTables()
if(i == aNames.getLength()-1)
IncIndent(-1);
- WriteCell(pFormat[i],pColWidth[i],nHeight,pHorJustify[i],*pIter,OOO_STRING_SVTOOLS_HTML_tableheader);
+ WriteCell(pFormat[i],pColWidth[i],nHeight,pHorJustify[i],aNames[i],OOO_STRING_SVTOOLS_HTML_tableheader);
}
IncIndent(-1);
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_thead );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tablerow, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_thead, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tbody );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tbody).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
// 2. and now the data
Reference< XRowSet > xRowSet(m_xRow,UNO_QUERY);
- sal_Int32 kk=0;
m_xResultSet->beforeFirst(); // set back before the first row
while(m_xResultSet->next())
{
IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tablerow).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
- ++kk;
for(sal_Int32 i=1;i<=aNames.getLength();++i)
{
if(i == aNames.getLength())
@@ -822,21 +814,24 @@ void OHTMLImportExport::WriteTables()
}
WriteCell(pFormat[i-1],pColWidth[i-1],nHeight,pHorJustify[i-1],aValue,OOO_STRING_SVTOOLS_HTML_tabledata);
}
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tablerow, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
}
else
{
IncIndent(-1);
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tablerow );
- TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_thead );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tablerow, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_thead, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
IncIndent(1);
- TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_tbody );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tbody).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
- IncIndent(-1); OUT_LF(); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_tbody );
- IncIndent(-1); TAG_OFF_LF( OOO_STRING_SVTOOLS_HTML_table );
+ IncIndent(-1);
+ m_pStream->WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_tbody, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
+ IncIndent(-1);
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_table, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
void OHTMLImportExport::WriteCell( sal_Int32 nFormat, sal_Int32 nWidthPixel, sal_Int32 nHeightPixel, const char* pChar,
@@ -864,7 +859,7 @@ void OHTMLImportExport::WriteCell( sal_Int32 nFormat, sal_Int32 nWidthPixel, sal
"=" +
pChar;
- SvNumberFormatsSupplierObj* pSupplierImpl = m_xFormatter.is() ? comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>(m_xFormatter->getNumberFormatsSupplier()) : nullptr;
+ SvNumberFormatsSupplierObj* pSupplierImpl = m_xFormatter.is() ? comphelper::getFromUnoTunnel<SvNumberFormatsSupplierObj>(m_xFormatter->getNumberFormatsSupplier()) : nullptr;
SvNumberFormatter* pFormatter = pSupplierImpl ? pSupplierImpl->GetNumberFormatter() : nullptr;
if(pFormatter)
{
@@ -881,7 +876,7 @@ void OHTMLImportExport::WriteCell( sal_Int32 nFormat, sal_Int32 nWidthPixel, sal
}
}
- TAG_ON( aStrTD.getStr() );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, aStrTD);
FontOn();
@@ -890,24 +885,24 @@ void OHTMLImportExport::WriteCell( sal_Int32 nFormat, sal_Int32 nWidthPixel, sal
bool bUnderline = ( css::awt::FontUnderline::NONE != m_aFont.Underline );
bool bStrikeout = ( css::awt::FontStrikeout::NONE != m_aFont.Strikeout );
- if ( bBold ) TAG_ON( OOO_STRING_SVTOOLS_HTML_bold );
- if ( bItalic ) TAG_ON( OOO_STRING_SVTOOLS_HTML_italic );
- if ( bUnderline ) TAG_ON( OOO_STRING_SVTOOLS_HTML_underline );
- if ( bStrikeout ) TAG_ON( OOO_STRING_SVTOOLS_HTML_strike );
+ if ( bBold ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_bold);
+ if ( bItalic ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_italic);
+ if ( bUnderline ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_underline);
+ if ( bStrikeout ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_strike);
if ( rValue.isEmpty() )
- TAG_ON( OOO_STRING_SVTOOLS_HTML_linebreak ); // no completely empty cell
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_linebreak); // no completely empty cell
else
- HTMLOutFuncs::Out_String( (*m_pStream), rValue ,m_eDestEnc);
+ HTMLOutFuncs::Out_String( (*m_pStream), rValue );
- if ( bStrikeout ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_strike );
- if ( bUnderline ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_underline );
- if ( bItalic ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_italic );
- if ( bBold ) TAG_OFF( OOO_STRING_SVTOOLS_HTML_bold );
+ if ( bStrikeout ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_strike, false);
+ if ( bUnderline ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_underline, false);
+ if ( bItalic ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_italic, false);
+ if ( bBold ) HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_bold, false);
FontOff();
- TAG_OFF_LF( pHtmlTag );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, pHtmlTag, false).WriteOString(SAL_NEWLINE_STRING).WriteOString(GetIndentStr());
}
void OHTMLImportExport::FontOn()
@@ -931,13 +926,12 @@ void OHTMLImportExport::FontOn()
"=";
m_pStream->WriteOString( aStrOut );
- sal_Int32 nColor = 0;
+ ::Color aColor;
if(m_xObject.is())
- m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= nColor;
- ::Color aColor(nColor);
+ m_xObject->getPropertyValue(PROPERTY_TEXTCOLOR) >>= aColor;
HTMLOutFuncs::Out_Color( (*m_pStream), aColor );
- m_pStream->WriteCharPtr( ">" );
+ m_pStream->WriteOString( ">" );
}
inline void OHTMLImportExport::FontOff()
@@ -945,7 +939,7 @@ inline void OHTMLImportExport::FontOff()
#if OSL_DEBUG_LEVEL > 0
OSL_ENSURE(m_bCheckFont,"No FontOn() called");
#endif
- TAG_OFF( OOO_STRING_SVTOOLS_HTML_font );
+ HTMLOutFuncs::Out_AsciiTag(*m_pStream, OOO_STRING_SVTOOLS_HTML_font, false);
#if OSL_DEBUG_LEVEL > 0
m_bCheckFont = false;
#endif
diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx
index d75ea241ed95..831116797646 100644
--- a/dbaccess/source/ui/misc/UITools.cxx
+++ b/dbaccess/source/ui/misc/UITools.cxx
@@ -64,6 +64,7 @@
#include <svx/svxids.hrc>
#include <sal/log.hxx>
+#include <svl/numformat.hxx>
#include <svl/itempool.hxx>
#include <helpids.h>
#include <svl/itemset.hxx>
@@ -82,7 +83,7 @@
#include <dlgsize.hxx>
#include <svtools/editbrowsebox.hxx>
#include <tools/urlobj.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <svl/numuno.hxx>
#include <svl/filenotation.hxx>
#include <connectivity/FValue.hxx>
@@ -105,7 +106,6 @@ using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::ui::dialogs;
using namespace ::svt;
using ::com::sun::star::ucb::InteractiveIOException;
using ::com::sun::star::ucb::IOErrorCode_NO_FILE;
@@ -195,7 +195,6 @@ Reference< XDataSource > getDataSourceByName( const OUString& _rDataSourceName,
Reference< XDatabaseContext > xDatabaseContext = DatabaseContext::create(_rxContext);
Reference< XDataSource > xDatasource;
- Any aError;
SQLExceptionInfo aSQLError;
try
{
@@ -218,8 +217,6 @@ Reference< XDataSource > getDataSourceByName( const OUString& _rDataSourceName,
else
{
aSQLError = SQLExceptionInfo( e.TargetException );
- if ( !aSQLError.isValid() )
- aError = e.TargetException;
}
}
catch( const Exception& )
@@ -234,7 +231,7 @@ Reference< XDataSource > getDataSourceByName( const OUString& _rDataSourceName,
{
if ( _pErrorInfo )
{
- *_pErrorInfo = aSQLError;
+ *_pErrorInfo = std::move(aSQLError);
}
else
{
@@ -397,7 +394,7 @@ TOTypeInfoSP getTypeInfoFromType(const OTypeInfoMap& _rTypeInfo,
}
void fillTypeInfo( const Reference< css::sdbc::XConnection>& _rxConnection,
- const OUString& _rsTypeNames,
+ std::u16string_view _rsTypeNames,
OTypeInfoMap& _rTypeInfoMap,
std::vector<OTypeInfoMap::iterator>& _rTypeInfoIters)
{
@@ -434,52 +431,52 @@ void fillTypeInfo( const Reference< css::sdbc::XConnection>& _rxConnection,
}
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->aTypeName = aValue;
+ pInfo->aTypeName = aValue.getString();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nType = aValue;
+ pInfo->nType = aValue.getInt32();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nPrecision = aValue;
+ pInfo->nPrecision = aValue.getInt32();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); // LiteralPrefix
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow); //LiteralSuffix
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->aCreateParams = aValue;
+ pInfo->aCreateParams = aValue.getString();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->bNullable = static_cast<sal_Int32>(aValue) == ColumnValue::NULLABLE;
+ pInfo->bNullable = aValue.getInt32() == ColumnValue::NULLABLE;
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
// bCaseSensitive
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nSearchType = aValue;
+ pInfo->nSearchType = aValue.getInt16();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
// bUnsigned
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->bCurrency = static_cast<bool>(aValue);
+ pInfo->bCurrency = aValue.getBool();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->bAutoIncrement = static_cast<bool>(aValue);
+ pInfo->bAutoIncrement = aValue.getBool();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->aLocalTypeName = aValue;
+ pInfo->aLocalTypeName = aValue.getString();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nMinimumScale = aValue;
+ pInfo->nMinimumScale = aValue.getInt16();
++nPos;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nMaximumScale = aValue;
+ pInfo->nMaximumScale = aValue.getInt16();
assert(nPos == 15);
// 16 and 17 are unused
nPos = 18;
aValue.fill(nPos,aTypes[nPos],aNullable[nPos],xRow);
- pInfo->nNumPrecRadix = aValue;
+ pInfo->nNumPrecRadix = aValue.getInt32();
// check if values are less than zero like it happens in a oracle jdbc driver
if( pInfo->nPrecision < 0)
@@ -491,108 +488,108 @@ void fillTypeInfo( const Reference< css::sdbc::XConnection>& _rxConnection,
if( pInfo->nNumPrecRadix <= 1)
pInfo->nNumPrecRadix = 10;
- OUString aName;
+ std::u16string_view aName;
switch(pInfo->nType)
{
case DataType::CHAR:
- aName = _rsTypeNames.getToken(TYPE_CHAR, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_CHAR, ';');
break;
case DataType::VARCHAR:
- aName = _rsTypeNames.getToken(TYPE_TEXT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_TEXT, ';');
break;
case DataType::DECIMAL:
- aName = _rsTypeNames.getToken(TYPE_DECIMAL, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_DECIMAL, ';');
break;
case DataType::NUMERIC:
- aName = _rsTypeNames.getToken(TYPE_NUMERIC, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_NUMERIC, ';');
break;
case DataType::BIGINT:
- aName = _rsTypeNames.getToken(TYPE_BIGINT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_BIGINT, ';');
break;
case DataType::FLOAT:
- aName = _rsTypeNames.getToken(TYPE_FLOAT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_FLOAT, ';');
break;
case DataType::DOUBLE:
- aName = _rsTypeNames.getToken(TYPE_DOUBLE, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_DOUBLE, ';');
break;
case DataType::LONGVARCHAR:
- aName = _rsTypeNames.getToken(TYPE_MEMO, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_MEMO, ';');
break;
case DataType::LONGVARBINARY:
- aName = _rsTypeNames.getToken(TYPE_IMAGE, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_IMAGE, ';');
break;
case DataType::DATE:
- aName = _rsTypeNames.getToken(TYPE_DATE, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_DATE, ';');
break;
case DataType::TIME:
- aName = _rsTypeNames.getToken(TYPE_TIME, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_TIME, ';');
break;
case DataType::TIMESTAMP:
- aName = _rsTypeNames.getToken(TYPE_DATETIME, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_DATETIME, ';');
break;
case DataType::BIT:
if ( !pInfo->aCreateParams.isEmpty() )
{
- aName = _rsTypeNames.getToken(TYPE_BIT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_BIT, ';');
break;
}
[[fallthrough]];
case DataType::BOOLEAN:
- aName = _rsTypeNames.getToken(TYPE_BOOL, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_BOOL, ';');
break;
case DataType::TINYINT:
- aName = _rsTypeNames.getToken(TYPE_TINYINT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_TINYINT, ';');
break;
case DataType::SMALLINT:
- aName = _rsTypeNames.getToken(TYPE_SMALLINT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_SMALLINT, ';');
break;
case DataType::INTEGER:
- aName = _rsTypeNames.getToken(TYPE_INTEGER, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_INTEGER, ';');
break;
case DataType::REAL:
- aName = _rsTypeNames.getToken(TYPE_REAL, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_REAL, ';');
break;
case DataType::BINARY:
- aName = _rsTypeNames.getToken(TYPE_BINARY, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_BINARY, ';');
break;
case DataType::VARBINARY:
- aName = _rsTypeNames.getToken(TYPE_VARBINARY, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_VARBINARY, ';');
break;
case DataType::SQLNULL:
- aName = _rsTypeNames.getToken(TYPE_SQLNULL, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_SQLNULL, ';');
break;
case DataType::OBJECT:
- aName = _rsTypeNames.getToken(TYPE_OBJECT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_OBJECT, ';');
break;
case DataType::DISTINCT:
- aName = _rsTypeNames.getToken(TYPE_DISTINCT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_DISTINCT, ';');
break;
case DataType::STRUCT:
- aName = _rsTypeNames.getToken(TYPE_STRUCT, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_STRUCT, ';');
break;
case DataType::ARRAY:
- aName = _rsTypeNames.getToken(TYPE_ARRAY, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_ARRAY, ';');
break;
case DataType::BLOB:
- aName = _rsTypeNames.getToken(TYPE_BLOB, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_BLOB, ';');
break;
case DataType::CLOB:
- aName = _rsTypeNames.getToken(TYPE_CLOB, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_CLOB, ';');
break;
case DataType::REF:
- aName = _rsTypeNames.getToken(TYPE_REF, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_REF, ';');
break;
case DataType::OTHER:
- aName = _rsTypeNames.getToken(TYPE_OTHER, ';');
+ aName = o3tl::getToken(_rsTypeNames, TYPE_OTHER, ';');
break;
}
- if ( !aName.isEmpty() )
+ if ( !aName.empty() )
{
pInfo->aUIName = aName;
pInfo->aUIName += " [ ";
}
pInfo->aUIName += pInfo->aTypeName;
- if ( !aName.isEmpty() )
+ if ( !aName.empty() )
pInfo->aUIName += " ]";
// Now that we have the type info, save it in the multimap
_rTypeInfoMap.emplace(pInfo->nType,pInfo);
@@ -612,20 +609,20 @@ void fillTypeInfo( const Reference< css::sdbc::XConnection>& _rxConnection,
void setColumnProperties(const Reference<XPropertySet>& _rxColumn,const OFieldDescription* _pFieldDesc)
{
- _rxColumn->setPropertyValue(PROPERTY_NAME,makeAny(_pFieldDesc->GetName()));
- _rxColumn->setPropertyValue(PROPERTY_TYPENAME,makeAny(_pFieldDesc->getTypeInfo()->aTypeName));
- _rxColumn->setPropertyValue(PROPERTY_TYPE,makeAny(_pFieldDesc->GetType()));
- _rxColumn->setPropertyValue(PROPERTY_PRECISION,makeAny(_pFieldDesc->GetPrecision()));
- _rxColumn->setPropertyValue(PROPERTY_SCALE,makeAny(_pFieldDesc->GetScale()));
- _rxColumn->setPropertyValue(PROPERTY_ISNULLABLE, makeAny(_pFieldDesc->GetIsNullable()));
- _rxColumn->setPropertyValue(PROPERTY_ISAUTOINCREMENT, css::uno::makeAny(_pFieldDesc->IsAutoIncrement()));
- _rxColumn->setPropertyValue(PROPERTY_DESCRIPTION,makeAny(_pFieldDesc->GetDescription()));
+ _rxColumn->setPropertyValue(PROPERTY_NAME,Any(_pFieldDesc->GetName()));
+ _rxColumn->setPropertyValue(PROPERTY_TYPENAME,Any(_pFieldDesc->getTypeInfo()->aTypeName));
+ _rxColumn->setPropertyValue(PROPERTY_TYPE,Any(_pFieldDesc->GetType()));
+ _rxColumn->setPropertyValue(PROPERTY_PRECISION,Any(_pFieldDesc->GetPrecision()));
+ _rxColumn->setPropertyValue(PROPERTY_SCALE,Any(_pFieldDesc->GetScale()));
+ _rxColumn->setPropertyValue(PROPERTY_ISNULLABLE, Any(_pFieldDesc->GetIsNullable()));
+ _rxColumn->setPropertyValue(PROPERTY_ISAUTOINCREMENT, css::uno::Any(_pFieldDesc->IsAutoIncrement()));
+ _rxColumn->setPropertyValue(PROPERTY_DESCRIPTION,Any(_pFieldDesc->GetDescription()));
if ( _rxColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_ISCURRENCY) && _pFieldDesc->IsCurrency() )
- _rxColumn->setPropertyValue(PROPERTY_ISCURRENCY, css::uno::makeAny(_pFieldDesc->IsCurrency()));
+ _rxColumn->setPropertyValue(PROPERTY_ISCURRENCY, css::uno::Any(_pFieldDesc->IsCurrency()));
// set autoincrement value when available
// and only set when the entry is not empty, that lets the value in the column untouched
if ( _pFieldDesc->IsAutoIncrement() && !_pFieldDesc->GetAutoIncrementValue().isEmpty() && _rxColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION) )
- _rxColumn->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION,makeAny(_pFieldDesc->GetAutoIncrementValue()));
+ _rxColumn->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION,Any(_pFieldDesc->GetAutoIncrementValue()));
}
OUString createDefaultName(const Reference< XDatabaseMetaData>& _xMetaData,const Reference<XNameAccess>& _xTables,const OUString& _sName)
@@ -688,7 +685,7 @@ bool checkDataSourceAvailable(const OUString& _sDataSourceName,const Reference<
return bRet;
}
-sal_Int32 mapTextAllign(const SvxCellHorJustify& _eAlignment)
+sal_Int32 mapTextAlign(const SvxCellHorJustify& _eAlignment)
{
sal_Int32 nAlignment = css::awt::TextAlign::LEFT;
switch (_eAlignment)
@@ -741,9 +738,9 @@ void callColumnFormatDialog(const Reference<XPropertySet>& xAffectedCol,
if(callColumnFormatDialog(_pParent,_pFormatter,nDataType,nFormatKey,eJustify,bHasFormat))
{
- xAffectedCol->setPropertyValue(PROPERTY_ALIGN, makeAny(static_cast<sal_Int16>(dbaui::mapTextAllign(eJustify))));
+ xAffectedCol->setPropertyValue(PROPERTY_ALIGN, Any(static_cast<sal_Int16>(dbaui::mapTextAlign(eJustify))));
if (bHasFormat)
- xAffectedCol->setPropertyValue(PROPERTY_FORMATKEY, makeAny(nFormatKey));
+ xAffectedCol->setPropertyValue(PROPERTY_FORMATKEY, Any(nFormatKey));
}
}
@@ -753,6 +750,31 @@ void callColumnFormatDialog(const Reference<XPropertySet>& xAffectedCol,
}
}
+static ItemInfoPackage& getItemInfoPackageColumnFormatDialog()
+{
+ class ItemInfoPackageColumnFormatDialog : public ItemInfoPackage
+ {
+ typedef std::array<ItemInfoStatic, SBA_ATTR_ALIGN_HOR_JUSTIFY - SBA_DEF_RANGEFORMAT + 1> ItemInfoArrayColumnFormatDialog;
+ ItemInfoArrayColumnFormatDialog maItemInfos {{
+ // m_nWhich, m_pItem, m_nSlotID, m_nItemInfoFlags
+ { SBA_DEF_RANGEFORMAT, new SfxRangeItem(SBA_DEF_RANGEFORMAT, SBA_DEF_FMTVALUE, SBA_ATTR_ALIGN_HOR_JUSTIFY), 0, SFX_ITEMINFOFLAG_NONE },
+ { SBA_DEF_FMTVALUE, new SfxUInt32Item(SBA_DEF_FMTVALUE), SID_ATTR_NUMBERFORMAT_VALUE, SFX_ITEMINFOFLAG_NONE },
+ { SBA_ATTR_ALIGN_HOR_JUSTIFY, new SvxHorJustifyItem(SvxCellHorJustify::Standard, SBA_ATTR_ALIGN_HOR_JUSTIFY), SID_ATTR_ALIGN_HOR_JUSTIFY, SFX_ITEMINFOFLAG_NONE },
+ }};
+
+ virtual const ItemInfoStatic& getItemInfoStatic(size_t nIndex) const override { return maItemInfos[nIndex]; }
+
+ public:
+ virtual size_t size() const override { return maItemInfos.size(); }
+ virtual const ItemInfo& getItemInfo(size_t nIndex, SfxItemPool& /*rPool*/) override { return maItemInfos[nIndex]; }
+ };
+
+ static std::unique_ptr<ItemInfoPackageColumnFormatDialog> g_aItemInfoPackageColumnFormatDialog;
+ if (!g_aItemInfoPackageColumnFormatDialog)
+ g_aItemInfoPackageColumnFormatDialog.reset(new ItemInfoPackageColumnFormatDialog);
+ return *g_aItemInfoPackageColumnFormatDialog;
+}
+
bool callColumnFormatDialog(weld::Widget* _pParent,
SvNumberFormatter* _pFormatter,
sal_Int32 _nDataType,
@@ -763,36 +785,17 @@ bool callColumnFormatDialog(weld::Widget* _pParent,
bool bRet = false;
// UNO->ItemSet
- static SfxItemInfo aItemInfos[] =
- {
- { 0, false },
- { SID_ATTR_NUMBERFORMAT_VALUE, true },
- { SID_ATTR_ALIGN_HOR_JUSTIFY, true },
- { SID_ATTR_NUMBERFORMAT_ONE_AREA, true },
- { SID_ATTR_NUMBERFORMAT_INFO, true }
- };
- static const sal_uInt16 aAttrMap[] =
- {
+ static const auto aAttrMap = svl::Items<
SBA_DEF_RANGEFORMAT, SBA_ATTR_ALIGN_HOR_JUSTIFY,
- SID_ATTR_NUMBERFORMAT_ONE_AREA, SID_ATTR_NUMBERFORMAT_ONE_AREA,
SID_ATTR_NUMBERFORMAT_INFO, SID_ATTR_NUMBERFORMAT_INFO,
- 0
- };
+ SID_ATTR_NUMBERFORMAT_ONE_AREA, SID_ATTR_NUMBERFORMAT_ONE_AREA
+ >;
- std::vector<SfxPoolItem*> pDefaults
- {
- new SfxRangeItem(SBA_DEF_RANGEFORMAT, SBA_DEF_FMTVALUE, SBA_ATTR_ALIGN_HOR_JUSTIFY),
- new SfxUInt32Item(SBA_DEF_FMTVALUE),
- new SvxHorJustifyItem(SvxCellHorJustify::Standard, SBA_ATTR_ALIGN_HOR_JUSTIFY),
- new SfxBoolItem(SID_ATTR_NUMBERFORMAT_ONE_AREA, false),
- new SvxNumberInfoItem(SID_ATTR_NUMBERFORMAT_INFO)
- };
-
- SfxItemPool* pPool = new SfxItemPool("GridBrowserProperties", SBA_DEF_RANGEFORMAT, SBA_ATTR_ALIGN_HOR_JUSTIFY, aItemInfos, &pDefaults);
+ rtl::Reference<SfxItemPool> pPool(new SfxItemPool(u"GridBrowserProperties"_ustr));
+ pPool->registerItemInfoPackage(getItemInfoPackageColumnFormatDialog());
pPool->SetDefaultMetric( MapUnit::MapTwip ); // ripped, don't understand why
- pPool->FreezeIdRanges(); // the same
- std::unique_ptr<SfxItemSet> pFormatDescriptor(new SfxItemSet(*pPool, aAttrMap));
+ std::optional<SfxItemSet> pFormatDescriptor(SfxItemSet(*pPool, aAttrMap));
// fill it
pFormatDescriptor->Put(SvxHorJustifyItem(_eJustify, SBA_ATTR_ALIGN_HOR_JUSTIFY));
bool bText = false;
@@ -818,7 +821,7 @@ bool callColumnFormatDialog(weld::Widget* _pParent,
}
{ // want the dialog to be destroyed before our set
- SbaSbAttrDlg aDlg(_pParent, pFormatDescriptor.get(), _pFormatter, _bHasFormat);
+ SbaSbAttrDlg aDlg(_pParent, &*pFormatDescriptor, _pFormatter, _bHasFormat);
if (RET_OK == aDlg.run())
{
// ItemSet->UNO
@@ -855,16 +858,14 @@ bool callColumnFormatDialog(weld::Widget* _pParent,
}
pFormatDescriptor.reset();
- SfxItemPool::Free(pPool);
- for (SfxPoolItem* pDefault : pDefaults)
- delete pDefault;
+ pPool.clear();
return bRet;
}
std::shared_ptr<const SfxFilter> getStandardDatabaseFilter()
{
- std::shared_ptr<const SfxFilter> pFilter = SfxFilter::GetFilterByName("StarOffice XML (Base)");
+ std::shared_ptr<const SfxFilter> pFilter = SfxFilter::GetFilterByName(u"StarOffice XML (Base)"_ustr);
OSL_ENSURE(pFilter,"Filter: StarOffice XML (Base) could not be found!");
return pFilter;
}
@@ -885,7 +886,7 @@ bool appendToFilter(const Reference<XConnection>& _xConnection,
xProp->getPropertyValue(PROPERTY_TABLEFILTER) >>= aFilter;
// first check if we have something like SCHEMA.%
bool bHasToInsert = true;
- for (const OUString& rItem : std::as_const(aFilter))
+ for (const OUString& rItem : aFilter)
{
if(rItem.indexOf('%') != -1)
{
@@ -911,7 +912,7 @@ bool appendToFilter(const Reference<XConnection>& _xConnection,
{
aFilter.realloc(aFilter.getLength()+1);
aFilter.getArray()[aFilter.getLength()-1] = _sName;
- xProp->setPropertyValue(PROPERTY_TABLEFILTER,makeAny(aFilter));
+ xProp->setPropertyValue(PROPERTY_TABLEFILTER,Any(aFilter));
}
}
}
@@ -932,7 +933,7 @@ void notifySystemWindow(vcl::Window const * _pWindow, vcl::Window* _pToRegister,
void adjustBrowseBoxColumnWidth( ::svt::EditBrowseBox* _pBox, sal_uInt16 _nColId )
{
sal_Int32 nColSize = -1;
- sal_uInt32 nDefaultWidth = _pBox->GetDefaultColumnWidth( _pBox->GetColumnTitle( _nColId ) );
+ ::tools::Long nDefaultWidth = _pBox->GetDefaultColumnWidth( _pBox->GetColumnTitle( _nColId ) );
if ( nDefaultWidth != _pBox->GetColumnWidth( _nColId ) )
{
Size aSizeMM = _pBox->PixelToLogic( Size( _pBox->GetColumnWidth( _nColId ), 0 ), MapMode( MapUnit::MapMM ) );
@@ -986,17 +987,17 @@ void fillAutoIncrementValue(const Reference<XPropertySet>& _xDatasource,
_xDatasource->getPropertyValue(PROPERTY_INFO) >>= aInfo;
// search the right propertyvalue
- const PropertyValue* pValue =std::find_if(aInfo.begin(), aInfo.end(),
+ const PropertyValue* pValue =std::find_if(std::cbegin(aInfo), std::cend(aInfo),
[](const PropertyValue& lhs)
{return lhs.Name == PROPERTY_AUTOINCREMENTCREATION;} );
- if ( pValue != aInfo.end() )
+ if ( pValue != std::cend(aInfo) )
pValue->Value >>= _rsAutoIncrementValue;
- pValue =std::find_if(aInfo.begin(), aInfo.end(),
+ pValue =std::find_if(std::cbegin(aInfo), std::cend(aInfo),
[](const PropertyValue& lhs)
{return lhs.Name == "IsAutoRetrievingEnabled";} );
- if ( pValue != aInfo.end() )
+ if ( pValue != std::cend(aInfo) )
pValue->Value >>= _rAutoIncrementValueEnabled;
}
@@ -1040,7 +1041,7 @@ void setEvalDateFormatForFormatter(Reference< css::util::XNumberFormatter > cons
Reference< css::util::XNumberFormatsSupplier > xSupplier = _rxFormatter->getNumberFormatsSupplier();
- auto pSupplierImpl = comphelper::getUnoTunnelImplementation<SvNumberFormatsSupplierObj>(xSupplier);
+ auto pSupplierImpl = comphelper::getFromUnoTunnel<SvNumberFormatsSupplierObj>(xSupplier);
OSL_ENSURE(pSupplierImpl,"No Supplier!");
if ( pSupplierImpl )
@@ -1050,29 +1051,40 @@ void setEvalDateFormatForFormatter(Reference< css::util::XNumberFormatter > cons
}
}
+static bool TypeIsGreater(const TOTypeInfoSP& lhs, const TOTypeInfoSP& rhs)
+{
+ assert(lhs);
+ if (!rhs)
+ return true;
+ if (lhs->nNumPrecRadix == rhs->nNumPrecRadix)
+ return lhs->nPrecision > rhs->nPrecision;
+ if (lhs->nPrecision == rhs->nPrecision)
+ return lhs->nNumPrecRadix > rhs->nNumPrecRadix;
+ if ((lhs->nNumPrecRadix > rhs->nNumPrecRadix) == (lhs->nPrecision > rhs->nPrecision))
+ return lhs->nPrecision > rhs->nPrecision;
+ return std::pow(lhs->nNumPrecRadix, lhs->nPrecision)
+ > std::pow(rhs->nNumPrecRadix, rhs->nPrecision);
+}
+
TOTypeInfoSP queryPrimaryKeyType(const OTypeInfoMap& _rTypeInfo)
{
- TOTypeInfoSP pTypeInfo;
- // first we search for a type which supports autoIncrement
+ TOTypeInfoSP pTypeInfo, pFallback;
+ // first we search for a largest type which supports autoIncrement
for (auto const& elem : _rTypeInfo)
{
- // OJ: we don't want to set an autoincrement column to be key
- // because we don't have the possibility to know how to create
- // such auto increment column later on
- // so until we know how to do it, we create a column without autoincrement
- // therefore we have searched
- if ( elem.second->nType == DataType::INTEGER )
- {
- pTypeInfo = elem.second; // alternative
- break;
- }
- else if ( !pTypeInfo && elem.second->nType == DataType::DOUBLE )
- pTypeInfo = elem.second; // alternative
- else if ( !pTypeInfo && elem.second->nType == DataType::REAL )
- pTypeInfo = elem.second; // alternative
+ if (elem.second->bAutoIncrement && TypeIsGreater(elem.second, pTypeInfo))
+ pTypeInfo = elem.second;
+ if (pTypeInfo)
+ continue;
+ if (elem.second->nType == DataType::INTEGER)
+ pFallback = elem.second; // default alternative
+ else if (!pFallback && elem.second->nType == DataType::DOUBLE)
+ pFallback = elem.second; // alternative
+ else if (!pFallback && elem.second->nType == DataType::REAL)
+ pFallback = elem.second; // alternative
}
if ( !pTypeInfo ) // just a fallback
- pTypeInfo = queryTypeInfoByType(DataType::VARCHAR,_rTypeInfo);
+ pTypeInfo = pFallback ? std::move(pFallback) : queryTypeInfoByType(DataType::VARCHAR, _rTypeInfo);
OSL_ENSURE(pTypeInfo,"checkColumns: can't find a type which is usable as a key!");
return pTypeInfo;
@@ -1144,13 +1156,13 @@ TOTypeInfoSP queryTypeInfoByType(sal_Int32 _nDataType,const OTypeInfoMap& _rType
if ( !pTypeInfo )
{
bool bForce = true;
- pTypeInfo = ::dbaui::getTypeInfoFromType(_rTypeInfo,DataType::VARCHAR,OUString(),"x",50,0,false,bForce);
+ pTypeInfo = ::dbaui::getTypeInfoFromType(_rTypeInfo,DataType::VARCHAR,OUString(),u"x"_ustr,50,0,false,bForce);
}
OSL_ENSURE(pTypeInfo,"Wrong DataType supplied!");
return pTypeInfo;
}
-sal_Int32 askForUserAction(weld::Window* pParent, const char* pTitle, const char* pText, bool _bAll, const OUString& _sName)
+sal_Int32 askForUserAction(weld::Window* pParent, TranslateId pTitle, TranslateId pText, bool _bAll, std::u16string_view _sName)
{
SolarMutexGuard aGuard;
OUString aMsg = DBA_RES(pText);
@@ -1207,11 +1219,11 @@ Reference< XPropertySet > createView( const OUString& _rName, const Reference< X
sTable,
::dbtools::EComposeRule::InDataManipulation);
- xView->setPropertyValue(PROPERTY_CATALOGNAME,makeAny(sCatalog));
- xView->setPropertyValue(PROPERTY_SCHEMANAME,makeAny(sSchema));
- xView->setPropertyValue(PROPERTY_NAME,makeAny(sTable));
+ xView->setPropertyValue(PROPERTY_CATALOGNAME,Any(sCatalog));
+ xView->setPropertyValue(PROPERTY_SCHEMANAME,Any(sSchema));
+ xView->setPropertyValue(PROPERTY_NAME,Any(sTable));
- xView->setPropertyValue( PROPERTY_COMMAND, makeAny( _rCommand ) );
+ xView->setPropertyValue( PROPERTY_COMMAND, Any( _rCommand ) );
Reference<XAppend> xAppend(xViews,UNO_QUERY);
if(xAppend.is())
@@ -1253,7 +1265,7 @@ Reference<XPropertySet> createView( const OUString& _rName, const Reference< XCo
return createView( _rName, _rxConnection, sCommand );
}
-bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentContext >& _rxContext,
+bool insertHierarchyElement(weld::Window* pParent, const Reference< XComponentContext >& _rxContext,
const Reference<XHierarchicalNameContainer>& _xNames,
const OUString& _sParentFolder,
bool _bForm,
@@ -1261,7 +1273,7 @@ bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentCon
const Reference<XContent>& _xContent,
bool _bMove)
{
- OSL_ENSURE( _xNames.is(), "insertHierachyElement: illegal name container!" );
+ OSL_ENSURE( _xNames.is(), "insertHierarchyElement: illegal name container!" );
if ( !_xNames.is() )
return false;
@@ -1274,7 +1286,7 @@ bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentCon
xNameAccess.set(xChild->getParent(),UNO_QUERY);
}
- OSL_ENSURE( xNameAccess.is(), "insertHierachyElement: could not find the proper name container!" );
+ OSL_ENSURE( xNameAccess.is(), "insertHierarchyElement: could not find the proper name container!" );
if ( !xNameAccess.is() )
return false;
@@ -1296,7 +1308,7 @@ bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentCon
sTargetName = ::dbtools::createUniqueName(xNameAccess,sTargetName);
// here we have everything needed to create a new query object ...
- HierarchicalNameCheck aNameChecker( _xNames.get(), _sParentFolder );
+ HierarchicalNameCheck aNameChecker( _xNames, _sParentFolder );
// ... ehm, except a new name
OSaveAsDlg aAskForName(pParent,
_rxContext,
@@ -1315,7 +1327,7 @@ bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentCon
{
OUString sError(DBA_RES(STR_NAME_ALREADY_EXISTS));
sError = sError.replaceFirst("#",sNewName);
- throw SQLException(sError,nullptr,"S1000",0,Any());
+ throw SQLException(sError,nullptr,u"S1000"_ustr,0,Any());
}
try
@@ -1327,11 +1339,11 @@ bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentCon
{"Parent", uno::Any(xNameAccess)},
{PROPERTY_EMBEDDEDOBJECT, uno::Any(_xContent)},
}));
- OUString sServiceName(_bCollection ? (_bForm ? OUString(SERVICE_NAME_FORM_COLLECTION) : OUString(SERVICE_NAME_REPORT_COLLECTION)) : OUString(SERVICE_SDB_DOCUMENTDEFINITION));
+ OUString sServiceName(_bCollection ? (_bForm ? SERVICE_NAME_FORM_COLLECTION : SERVICE_NAME_REPORT_COLLECTION) : SERVICE_SDB_DOCUMENTDEFINITION);
Reference<XContent > xNew( xORB->createInstanceWithArguments( sServiceName, aArguments ), UNO_QUERY_THROW );
Reference< XNameContainer > xNameContainer( xNameAccess, UNO_QUERY_THROW );
- xNameContainer->insertByName( sNewName, makeAny( xNew ) );
+ xNameContainer->insertByName( sNewName, Any( xNew ) );
}
catch( const IllegalArgumentException& e )
{
diff --git a/dbaccess/source/ui/misc/WCPage.cxx b/dbaccess/source/ui/misc/WCPage.cxx
index 35c8a7fe0f18..123db5efc548 100644
--- a/dbaccess/source/ui/misc/WCPage.cxx
+++ b/dbaccess/source/ui/misc/WCPage.cxx
@@ -34,7 +34,6 @@ using namespace ::dbtools;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdbcx;
@@ -42,19 +41,19 @@ using namespace ::com::sun::star::sdbcx;
namespace CopyTableOperation = css::sdb::application::CopyTableOperation;
OCopyTable::OCopyTable(weld::Container* pPage, OCopyTableWizard* pWizard)
- : OWizardPage(pPage, pWizard, "dbaccess/ui/copytablepage.ui", "CopyTablePage")
+ : OWizardPage(pPage, pWizard, u"dbaccess/ui/copytablepage.ui"_ustr, u"CopyTablePage"_ustr)
, m_bPKeyAllowed(false)
, m_bUseHeaderAllowed(true)
, m_nOldOperation(0)
- , m_xEdTableName(m_xBuilder->weld_entry("name"))
- , m_xRB_DefData(m_xBuilder->weld_radio_button("defdata"))
- , m_xRB_Def(m_xBuilder->weld_radio_button("def"))
- , m_xRB_View(m_xBuilder->weld_radio_button("view"))
- , m_xRB_AppendData(m_xBuilder->weld_radio_button("data"))
- , m_xCB_UseHeaderLine(m_xBuilder->weld_check_button("firstline"))
- , m_xCB_PrimaryColumn(m_xBuilder->weld_check_button("primarykey"))
- , m_xFT_KeyName(m_xBuilder->weld_label("keynamelabel"))
- , m_xEdKeyName(m_xBuilder->weld_entry("keyname"))
+ , m_xEdTableName(m_xBuilder->weld_entry(u"name"_ustr))
+ , m_xRB_DefData(m_xBuilder->weld_radio_button(u"defdata"_ustr))
+ , m_xRB_Def(m_xBuilder->weld_radio_button(u"def"_ustr))
+ , m_xRB_View(m_xBuilder->weld_radio_button(u"view"_ustr))
+ , m_xRB_AppendData(m_xBuilder->weld_radio_button(u"data"_ustr))
+ , m_xCB_UseHeaderLine(m_xBuilder->weld_check_button(u"firstline"_ustr))
+ , m_xCB_PrimaryColumn(m_xBuilder->weld_check_button(u"primarykey"_ustr))
+ , m_xFT_KeyName(m_xBuilder->weld_label(u"keynamelabel"_ustr))
+ , m_xEdKeyName(m_xBuilder->weld_entry(u"keyname"_ustr))
{
if ( m_pParent->m_xDestConnection.is() )
{
@@ -66,17 +65,16 @@ OCopyTable::OCopyTable(weld::Container* pPage, OCopyTableWizard* pWizard)
m_xCB_PrimaryColumn->set_sensitive(m_bPKeyAllowed);
- m_xRB_AppendData->connect_clicked( LINK( this, OCopyTable, AppendDataClickHdl ) );
+ m_xRB_AppendData->connect_toggled( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_DefData->connect_toggled( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_Def->connect_toggled( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_View->connect_toggled( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_xRB_DefData->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_xRB_Def->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_xRB_View->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
-
- m_xCB_PrimaryColumn->connect_clicked(LINK( this, OCopyTable, KeyClickHdl ) );
+ m_xCB_PrimaryColumn->connect_toggled(LINK( this, OCopyTable, KeyClickHdl ) );
m_xFT_KeyName->set_sensitive(false);
m_xEdKeyName->set_sensitive(false);
- m_xEdKeyName->set_text(m_pParent->createUniqueName("ID"));
+ m_xEdKeyName->set_text(m_pParent->createUniqueName(u"ID"_ustr));
const sal_Int32 nMaxLen = m_pParent->getMaxColumnNameLength();
m_xEdKeyName->set_max_length(nMaxLen);
@@ -89,11 +87,6 @@ OCopyTable::~OCopyTable()
{
}
-IMPL_LINK_NOARG( OCopyTable, AppendDataClickHdl, weld::Button&, void )
-{
- SetAppendDataRadio();
-}
-
void OCopyTable::SetAppendDataRadio()
{
m_pParent->EnableNextButton(true);
@@ -103,10 +96,17 @@ void OCopyTable::SetAppendDataRadio()
m_pParent->setOperation(CopyTableOperation::AppendData);
}
-IMPL_LINK(OCopyTable, RadioChangeHdl, weld::Button&, rButton, void)
+IMPL_LINK(OCopyTable, RadioChangeHdl, weld::Toggleable&, rButton, void)
{
- m_pParent->EnableNextButton(&rButton != m_xRB_View.get());
- bool bKey = m_bPKeyAllowed && &rButton != m_xRB_View.get();
+ if (!rButton.get_active())
+ return;
+ if (m_xRB_AppendData->get_active())
+ {
+ SetAppendDataRadio();
+ return;
+ }
+ m_pParent->EnableNextButton(!m_xRB_View->get_active());
+ bool bKey = m_bPKeyAllowed && !m_xRB_View->get_active();
m_xFT_KeyName->set_sensitive(bKey && m_xCB_PrimaryColumn->get_active());
m_xEdKeyName->set_sensitive(bKey && m_xCB_PrimaryColumn->get_active());
m_xCB_PrimaryColumn->set_sensitive(bKey);
@@ -121,7 +121,7 @@ IMPL_LINK(OCopyTable, RadioChangeHdl, weld::Button&, rButton, void)
m_pParent->setOperation( CopyTableOperation::CreateAsView );
}
-IMPL_LINK_NOARG( OCopyTable, KeyClickHdl, weld::Button&, void )
+IMPL_LINK_NOARG( OCopyTable, KeyClickHdl, weld::Toggleable&, void )
{
m_xEdKeyName->set_sensitive(m_xCB_PrimaryColumn->get_active());
m_xFT_KeyName->set_sensitive(m_xCB_PrimaryColumn->get_active());
diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx b/dbaccess/source/ui/misc/WColumnSelect.cxx
index 8941119e9234..8cc8868760cd 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -26,17 +26,14 @@
#include <com/sun/star/sdb/application/CopyTableOperation.hpp>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace dbaui;
namespace CopyTableOperation = ::com::sun::star::sdb::application::CopyTableOperation;
OUString OWizColumnSelect::GetTitle() const { return DBA_RES(STR_WIZ_COLUMN_SELECT_TITLE); }
-OWizardPage::OWizardPage(weld::Container* pPage, OCopyTableWizard* pWizard, const OUString& rUIXMLDescription, const OString& rID)
+OWizardPage::OWizardPage(weld::Container* pPage, OCopyTableWizard* pWizard, const OUString& rUIXMLDescription, const OUString& rID)
: ::vcl::OWizardPage(pPage, pWizard, rUIXMLDescription, rID)
, m_pParent(pWizard)
, m_bFirstTime(true)
@@ -49,13 +46,13 @@ OWizardPage::~OWizardPage()
// OWizColumnSelect
OWizColumnSelect::OWizColumnSelect(weld::Container* pPage, OCopyTableWizard* pWizard)
- : OWizardPage(pPage, pWizard, "dbaccess/ui/applycolpage.ui", "ApplyColPage")
- , m_xOrgColumnNames(m_xBuilder->weld_tree_view("from"))
- , m_xColumn_RH(m_xBuilder->weld_button("colrh"))
- , m_xColumns_RH(m_xBuilder->weld_button("colsrh"))
- , m_xColumn_LH(m_xBuilder->weld_button("collh"))
- , m_xColumns_LH(m_xBuilder->weld_button("colslh"))
- , m_xNewColumnNames(m_xBuilder->weld_tree_view("to"))
+ : OWizardPage(pPage, pWizard, u"dbaccess/ui/applycolpage.ui"_ustr, u"ApplyColPage"_ustr)
+ , m_xOrgColumnNames(m_xBuilder->weld_tree_view(u"from"_ustr))
+ , m_xColumn_RH(m_xBuilder->weld_button(u"colrh"_ustr))
+ , m_xColumns_RH(m_xBuilder->weld_button(u"colsrh"_ustr))
+ , m_xColumn_LH(m_xBuilder->weld_button(u"collh"_ustr))
+ , m_xColumns_LH(m_xBuilder->weld_button(u"colslh"_ustr))
+ , m_xNewColumnNames(m_xBuilder->weld_tree_view(u"to"_ustr))
{
m_xColumn_RH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
m_xColumn_LH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
@@ -73,7 +70,7 @@ OWizColumnSelect::~OWizColumnSelect()
{
while (m_xNewColumnNames->n_children())
{
- delete reinterpret_cast<OFieldDescription*>(m_xNewColumnNames->get_id(0).toInt64());
+ delete weld::fromId<OFieldDescription*>(m_xNewColumnNames->get_id(0));
m_xNewColumnNames->remove(0);
}
}
@@ -90,7 +87,7 @@ void OWizColumnSelect::Reset()
for (auto const& column : rSrcColumns)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(column->second)));
+ OUString sId(weld::toId(column->second));
m_xOrgColumnNames->append(sId, column->first);
}
@@ -121,7 +118,7 @@ void OWizColumnSelect::Activate( )
{
if (rSrcColumns.find(column->first) != rSrcColumns.end())
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(new OFieldDescription(*(column->second)))));
+ OUString sId(weld::toId(new OFieldDescription(*(column->second))));
m_xNewColumnNames->append(sId, column->first);
int nRemove = m_xOrgColumnNames->find_text(column->first);
if (nRemove != -1)
@@ -140,7 +137,7 @@ bool OWizColumnSelect::LeavePage()
for(sal_Int32 i=0 ; i< m_xNewColumnNames->n_children();++i)
{
- OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xNewColumnNames->get_id(i).toInt64());
+ OFieldDescription* pField = weld::fromId<OFieldDescription*>(m_xNewColumnNames->get_id(i));
OSL_ENSURE(pField,"The field information can not be null!");
m_pParent->insertColumn(i,pField);
}
@@ -275,7 +272,7 @@ void OWizColumnSelect::createNewColumn( weld::TreeView* _pListbox,
OFieldDescription const * _pSrcField,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase)
{
@@ -290,7 +287,7 @@ void OWizColumnSelect::createNewColumn( weld::TreeView* _pListbox,
if ( !m_pParent->supportsPrimaryKey() )
pNewField->SetPrimaryKey(false);
- _pListbox->append(OUString::number(reinterpret_cast<sal_Int64>(pNewField)), sConvertedName);
+ _pListbox->append(weld::toId(pNewField), sConvertedName);
_rRightColumns.push_back(sConvertedName);
if ( !bNotConvert )
@@ -301,14 +298,14 @@ void OWizColumnSelect::moveColumn( weld::TreeView* _pRight,
weld::TreeView const * _pLeft,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase)
{
if(_pRight == m_xNewColumnNames.get())
{
// we copy the column into the new format for the dest
- OFieldDescription* pSrcField = reinterpret_cast<OFieldDescription*>(_pLeft->get_id(_pLeft->find_text(_sColumnName)).toInt64());
+ OFieldDescription* pSrcField = weld::fromId<OFieldDescription*>(_pLeft->get_id(_pLeft->find_text(_sColumnName)));
createNewColumn(_pRight,pSrcField,_rRightColumns,_sColumnName,_sExtraChars,_nMaxNameLen,_aCase);
}
else
@@ -332,7 +329,7 @@ void OWizColumnSelect::moveColumn( weld::TreeView* _pRight,
OSL_ENSURE( aPos != rSrcVector.end(),"Invalid position for the iterator here!");
ODatabaseExport::TColumnVector::size_type nPos = (aPos - rSrcVector.begin()) - adjustColumnPosition(_pLeft, _sColumnName, (aPos - rSrcVector.begin()), _aCase);
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aSrcIter->second)));
+ OUString sId(weld::toId(aSrcIter->second));
const OUString& rStr = (*aIter).first;
_pRight->insert(nullptr, nPos, &rStr, &sId, nullptr, nullptr, false, nullptr);
_rRightColumns.push_back(rStr);
@@ -346,7 +343,7 @@ void OWizColumnSelect::moveColumn( weld::TreeView* _pRight,
// been removed earlier and adjust accordingly. Based on the
// algorithm employed in moveColumn().
sal_Int32 OWizColumnSelect::adjustColumnPosition(weld::TreeView const * _pLeft,
- const OUString& _sColumnName,
+ std::u16string_view _sColumnName,
ODatabaseExport::TColumnVector::size_type nCurrentPos,
const ::comphelper::UStringMixEqual& _aCase)
{
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index 373a17907952..7825c1af26c8 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -53,7 +53,10 @@
#include <o3tl/safeint.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
+
+#include <algorithm>
+#include <utility>
using namespace ::dbaui;
using namespace ::com::sun::star::uno;
@@ -130,21 +133,21 @@ bool ObjectCopySource::isView() const
void ObjectCopySource::copyUISettingsTo( const Reference< XPropertySet >& _rxObject ) const
{
- const OUString aCopyProperties[] = {
- OUString(PROPERTY_FONT), OUString(PROPERTY_ROW_HEIGHT), OUString(PROPERTY_TEXTCOLOR),OUString(PROPERTY_TEXTLINECOLOR),OUString(PROPERTY_TEXTEMPHASIS),OUString(PROPERTY_TEXTRELIEF)
+ static constexpr OUString aCopyProperties[] {
+ PROPERTY_FONT, PROPERTY_ROW_HEIGHT, PROPERTY_TEXTCOLOR,PROPERTY_TEXTLINECOLOR,PROPERTY_TEXTEMPHASIS,PROPERTY_TEXTRELIEF
};
- for (const auto & aCopyPropertie : aCopyProperties)
+ for (const auto & aCopyProperty : aCopyProperties)
{
- if ( m_xObjectPSI->hasPropertyByName( aCopyPropertie ) )
- _rxObject->setPropertyValue( aCopyPropertie, m_xObject->getPropertyValue( aCopyPropertie ) );
+ if ( m_xObjectPSI->hasPropertyByName( aCopyProperty ) )
+ _rxObject->setPropertyValue( aCopyProperty, m_xObject->getPropertyValue( aCopyProperty ) );
}
}
void ObjectCopySource::copyFilterAndSortingTo( const Reference< XConnection >& _xConnection,const Reference< XPropertySet >& _rxObject ) const
{
- std::pair< OUString, OUString > aProperties[] = {
- std::pair< OUString, OUString >(PROPERTY_FILTER,OUString(" AND "))
- ,std::pair< OUString, OUString >(PROPERTY_ORDER,OUString(" ORDER BY "))
+ static constexpr std::pair< OUString, OUString > aProperties[] {
+ std::pair< OUString, OUString >(PROPERTY_FILTER,u" AND "_ustr)
+ ,std::pair< OUString, OUString >(PROPERTY_ORDER,u" ORDER BY "_ustr)
};
try
@@ -155,17 +158,17 @@ void ObjectCopySource::copyFilterAndSortingTo( const Reference< XConnection >& _
OUStringBuffer sStatement = "SELECT * FROM " + sTargetName + " WHERE 0=1";
- for (const std::pair<OUString,OUString> & aPropertie : aProperties)
+ for (const std::pair<OUString,OUString> & aProperty : aProperties)
{
- if ( m_xObjectPSI->hasPropertyByName( aPropertie.first ) )
+ if ( m_xObjectPSI->hasPropertyByName( aProperty.first ) )
{
OUString sFilter;
- m_xObject->getPropertyValue( aPropertie.first ) >>= sFilter;
+ m_xObject->getPropertyValue( aProperty.first ) >>= sFilter;
if ( !sFilter.isEmpty() )
{
- sStatement.append(aPropertie.second);
+ sStatement.append(aProperty.second);
sFilter = sFilter.replaceFirst(sSourceName,sTargetNameTemp);
- _rxObject->setPropertyValue( aPropertie.first, makeAny(sFilter) );
+ _rxObject->setPropertyValue( aProperty.first, Any(sFilter) );
sStatement.append(sFilter);
}
}
@@ -210,27 +213,21 @@ OUString ObjectCopySource::getSelectStatement() const
}
else
{ // table
- OUStringBuffer aSQL;
- aSQL.append( "SELECT " );
+ OUStringBuffer aSQL( "SELECT " );
// we need to create the sql stmt with column names
// otherwise it is possible that names don't match
const OUString sQuote = m_xMetaData->getIdentifierQuoteString();
Sequence< OUString > aColumnNames = getColumnNames();
- const OUString* pColumnName = aColumnNames.getConstArray();
- const OUString* pEnd = pColumnName + aColumnNames.getLength();
- for ( ; pColumnName != pEnd; )
+ for (sal_Int32 i = 0; i < aColumnNames.getLength(); ++i)
{
- aSQL.append( ::dbtools::quoteName( sQuote, *pColumnName++ ) );
-
- if ( pColumnName == pEnd )
- aSQL.append( " " );
- else
- aSQL.append( ", " );
+ if (i > 0)
+ aSQL.append(", ");
+ aSQL.append(::dbtools::quoteName(sQuote, aColumnNames[i]));
}
- aSQL.append( "FROM " ).append( ::dbtools::composeTableNameForSelect( m_xConnection, m_xObject ) );
+ aSQL.append( " FROM " + ::dbtools::composeTableNameForSelect( m_xConnection, m_xObject ) );
sSelectStatement = aSQL.makeStringAndClear();
}
@@ -248,11 +245,10 @@ OUString ObjectCopySource::getSelectStatement() const
}
// NamedTableCopySource
-NamedTableCopySource::NamedTableCopySource( const Reference< XConnection >& _rxConnection, const OUString& _rTableName )
+NamedTableCopySource::NamedTableCopySource( const Reference< XConnection >& _rxConnection, OUString _sTableName )
:m_xConnection( _rxConnection, UNO_SET_THROW )
,m_xMetaData( _rxConnection->getMetaData(), UNO_SET_THROW )
- ,m_sTableName( _rTableName )
- ,m_aColumnInfo()
+ ,m_sTableName(std::move( _sTableName ))
{
::dbtools::qualifiedNameComponents( m_xMetaData, m_sTableName, m_sTableCatalog, m_sTableSchema, m_sTableBareName, ::dbtools::EComposeRule::Complete );
impl_ensureColumnInfo_throw();
@@ -268,7 +264,7 @@ bool NamedTableCopySource::isView() const
OUString sTableType;
try
{
- Reference< XResultSet > xTableDesc( m_xMetaData->getTables( makeAny( m_sTableCatalog ), m_sTableSchema, m_sTableBareName,
+ Reference< XResultSet > xTableDesc( m_xMetaData->getTables( Any( m_sTableCatalog ), m_sTableSchema, m_sTableBareName,
Sequence< OUString >() ) );
Reference< XRow > xTableDescRow( xTableDesc, UNO_QUERY_THROW );
OSL_VERIFY( xTableDesc->next() );
@@ -328,9 +324,8 @@ void NamedTableCopySource::impl_ensureColumnInfo_throw()
Sequence< OUString > NamedTableCopySource::getColumnNames() const
{
Sequence< OUString > aNames( m_aColumnInfo.size() );
- size_t nPos = 0;
- for (auto const& elem : m_aColumnInfo)
- aNames[ nPos++ ] = elem.GetName();
+ std::transform(m_aColumnInfo.begin(), m_aColumnInfo.end(), aNames.getArray(),
+ [](const auto& elem) { return elem.GetName(); });
return aNames;
}
@@ -341,13 +336,13 @@ Sequence< OUString > NamedTableCopySource::getPrimaryKeyColumnNames() const
try
{
- Reference< XResultSet > xPKDesc( m_xMetaData->getPrimaryKeys( makeAny( m_sTableCatalog ), m_sTableSchema, m_sTableBareName ) );
+ Reference< XResultSet > xPKDesc( m_xMetaData->getPrimaryKeys( Any( m_sTableCatalog ), m_sTableSchema, m_sTableBareName ) );
Reference< XRow > xPKDescRow( xPKDesc, UNO_QUERY_THROW );
while ( xPKDesc->next() )
{
sal_Int32 len( aPKColNames.getLength() );
aPKColNames.realloc( len + 1 );
- aPKColNames[ len ] = xPKDescRow->getString( 4 ); // COLUMN_NAME
+ aPKColNames.getArray()[ len ] = xPKDescRow->getString( 4 ); // COLUMN_NAME
}
}
catch( const Exception& )
@@ -369,12 +364,8 @@ OFieldDescription* NamedTableCopySource::createFieldDescription( const OUString&
OUString NamedTableCopySource::getSelectStatement() const
{
- OUStringBuffer aSQL;
- aSQL.append( "SELECT * FROM " );
-
- aSQL.append( ::dbtools::composeTableNameForSelect( m_xConnection, m_sTableCatalog, m_sTableSchema, m_sTableBareName ) );
-
- return aSQL.makeStringAndClear();
+ return "SELECT * FROM " +
+ ::dbtools::composeTableNameForSelect( m_xConnection, m_sTableCatalog, m_sTableSchema, m_sTableBareName );
}
::utl::SharedUNOComponent< XPreparedStatement > NamedTableCopySource::getPreparedSelectStatement() const
@@ -490,7 +481,7 @@ OCopyTableWizard::OCopyTableWizard(weld::Window* pParent, const OUString& _rDefa
const Reference< XConnection >& _xConnection, const Reference< XComponentContext >& _rxContext,
const Reference< XInteractionHandler>& _xInteractionHandler)
: vcl::RoadmapWizardMachine(pParent)
- , m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
+ , m_mNameMapping(comphelper::UStringMixLess(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers()))
, m_xDestConnection( _xConnection )
, m_rSourceObject( _rSourceObject )
, m_xFormatter( getNumberFormatter( _xConnection, _rxContext ) )
@@ -582,18 +573,18 @@ OCopyTableWizard::OCopyTableWizard(weld::Window* pParent, const OUString& _rDefa
weld::Container* OCopyTableWizard::CreatePageContainer()
{
- OString sIdent(OString::number(m_nPageCount));
+ OUString sIdent(OUString::number(m_nPageCount));
weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
return pPageContainer;
}
-OCopyTableWizard::OCopyTableWizard( weld::Window* pParent, const OUString& _rDefaultName, sal_Int16 _nOperation,
- const ODatabaseExport::TColumns& _rSourceColumns, const ODatabaseExport::TColumnVector& _rSourceColVec,
+OCopyTableWizard::OCopyTableWizard( weld::Window* pParent, OUString _sDefaultName, sal_Int16 _nOperation,
+ ODatabaseExport::TColumns&& _rSourceColumns, const ODatabaseExport::TColumnVector& _rSourceColVec,
const Reference< XConnection >& _xConnection, const Reference< XNumberFormatter >& _xFormatter,
TypeSelectionPageFactory _pTypeSelectionPageFactory, SvStream& _rTypeSelectionPageArg, const Reference< XComponentContext >& _rxContext )
: vcl::RoadmapWizardMachine(pParent)
- , m_vSourceColumns(_rSourceColumns)
- , m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
+ , m_vSourceColumns(std::move(_rSourceColumns))
+ , m_mNameMapping(comphelper::UStringMixLess(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers()))
, m_xDestConnection( _xConnection )
, m_rSourceObject( DummyCopySource::Instance() )
, m_xFormatter(_xFormatter)
@@ -602,7 +593,7 @@ OCopyTableWizard::OCopyTableWizard( weld::Window* pParent, const OUString& _rDef
, m_nPageCount(0)
, m_bDeleteSourceColumns(false)
, m_bInterConnectionCopy( false )
- , m_sName(_rDefaultName)
+ , m_sName(std::move(_sDefaultName))
, m_nOperation( _nOperation )
, m_ePressed( WIZARD_NONE )
, m_bCreatePrimaryKeyColumn(false)
@@ -655,9 +646,9 @@ void OCopyTableWizard::construct()
if (!m_vDestColumns.empty())
// source is a html or rtf table
- m_xNextPage->set_has_default(true);
+ m_xAssistant->change_default_widget(nullptr, m_xNextPage.get());
else
- m_xFinish->set_has_default(true);
+ m_xAssistant->change_default_widget(nullptr, m_xFinish.get());
m_pTypeInfo = std::make_shared<OTypeInfo>();
m_pTypeInfo->aUIName = m_sTypeNames.getToken(TYPE_OTHER, ';');
@@ -675,6 +666,7 @@ OCopyTableWizard::~OCopyTableWizard()
m_aTypeInfoIndex.clear();
m_aTypeInfo.clear();
m_aDestTypeInfoIndex.clear();
+ m_aDestTypeInfo.clear();
}
IMPL_LINK_NOARG(OCopyTableWizard, ImplPrevHdl, weld::Button&, void)
@@ -740,6 +732,7 @@ bool OCopyTableWizard::CheckColumns(sal_Int32& _rnBreakPos)
OFieldDescription* pField = new OFieldDescription();
pField->SetName(m_aKeyName);
pField->FillFromTypeInfo(pTypeInfo,true,true);
+ pField->SetAutoIncrement(pTypeInfo->bAutoIncrement);
pField->SetPrimaryKey(true);
m_bAddPKFirstTime = false;
insertColumn(0,pField);
@@ -845,16 +838,15 @@ IMPL_LINK_NOARG(OCopyTableWizard, ImplOKHdl, weld::Button&, void)
{
OUString sMsg(DBA_RES(STR_TABLEDESIGN_NO_PRIM_KEY));
- SQLContext aError;
- aError.Message = sMsg;
- ::rtl::Reference xRequest( new ::comphelper::OInteractionRequest( makeAny( aError ) ) );
+ SQLContext aError(sMsg, {}, {}, 0, {}, {});
+ ::rtl::Reference xRequest( new ::comphelper::OInteractionRequest( Any( aError ) ) );
::rtl::Reference xYes = new ::comphelper::OInteractionApprove;
- xRequest->addContinuation( xYes.get() );
+ xRequest->addContinuation( xYes );
xRequest->addContinuation( new ::comphelper::OInteractionDisapprove );
::rtl::Reference< ::comphelper::OInteractionAbort > xAbort = new ::comphelper::OInteractionAbort;
- xRequest->addContinuation( xAbort.get() );
+ xRequest->addContinuation( xAbort );
- m_xInteractionHandler->handle( xRequest.get() );
+ m_xInteractionHandler->handle( xRequest );
if ( xYes->wasSelected() )
{
@@ -995,19 +987,15 @@ void OCopyTableWizard::loadData( const ICopyTableSourceObject& _rSourceObject,
_rColumns.clear();
OFieldDescription* pActFieldDescr = nullptr;
- OUString const sCreateParam("x");
+ static constexpr OUStringLiteral sCreateParam(u"x");
// ReadOnly-Flag
// On drop no line must be editable.
// On add only empty lines must be editable.
// On Add and Drop all lines can be edited.
- Sequence< OUString > aColumns( _rSourceObject.getColumnNames() );
- const OUString* pColumn = aColumns.getConstArray();
- const OUString* pColumnEnd = pColumn + aColumns.getLength();
-
- for ( ; pColumn != pColumnEnd; ++pColumn )
+ for (auto& column : _rSourceObject.getColumnNames())
{
// get the properties of the column
- pActFieldDescr = _rSourceObject.createFieldDescription( *pColumn );
+ pActFieldDescr = _rSourceObject.createFieldDescription(column);
OSL_ENSURE( pActFieldDescr, "OCopyTableWizard::loadData: illegal field description!" );
if ( !pActFieldDescr )
continue;
@@ -1029,13 +1017,9 @@ void OCopyTableWizard::loadData( const ICopyTableSourceObject& _rSourceObject,
}
// determine which columns belong to the primary key
- Sequence< OUString > aPrimaryKeyColumns( _rSourceObject.getPrimaryKeyColumnNames() );
- const OUString* pKeyColName = aPrimaryKeyColumns.getConstArray();
- const OUString* pKeyColEnd = pKeyColName + aPrimaryKeyColumns.getLength();
-
- for( ; pKeyColName != pKeyColEnd; ++pKeyColName )
+ for (auto& keyColName : _rSourceObject.getPrimaryKeyColumnNames())
{
- ODatabaseExport::TColumns::const_iterator keyPos = _rColumns.find( *pKeyColName );
+ ODatabaseExport::TColumns::const_iterator keyPos = _rColumns.find(keyColName);
if ( keyPos != _rColumns.end() )
{
keyPos->second->SetPrimaryKey( true );
@@ -1078,7 +1062,7 @@ void OCopyTableWizard::appendColumns( Reference<XColumnsSupplier> const & _rxCol
if(!_bKeyColumns)
dbaui::setColumnProperties(xColumn,pField);
else
- xColumn->setPropertyValue(PROPERTY_NAME,makeAny(pField->GetName()));
+ xColumn->setPropertyValue(PROPERTY_NAME,Any(pField->GetName()));
xAppend->appendByDescriptor(xColumn);
xColumn = nullptr;
@@ -1113,7 +1097,7 @@ void OCopyTableWizard::appendKey( Reference<XKeysSupplier> const & _rxSup, const
Reference<XPropertySet> xKey = xKeyFactory->createDataDescriptor();
OSL_ENSURE(xKey.is(),"Key is null!");
- xKey->setPropertyValue(PROPERTY_TYPE,makeAny(KeyType::PRIMARY));
+ xKey->setPropertyValue(PROPERTY_TYPE,Any(KeyType::PRIMARY));
Reference<XColumnsSupplier> xColSup(xKey,UNO_QUERY);
if(xColSup.is())
@@ -1198,16 +1182,16 @@ Reference< XPropertySet > OCopyTableWizard::createTable()
if(xMetaData->getDatabaseProductName() == "MySQL")
{
Reference< XStatement > xSelect = m_xDestConnection->createStatement();
- Reference< XResultSet > xRs = xSelect->executeQuery("select database()");
+ Reference< XResultSet > xRs = xSelect->executeQuery(u"select database()"_ustr);
(void)xRs->next(); // first and only result
Reference< XRow > xRow( xRs, UNO_QUERY_THROW );
sSchema = xRow->getString(1);
}
}
- xTable->setPropertyValue(PROPERTY_CATALOGNAME,makeAny(sCatalog));
- xTable->setPropertyValue(PROPERTY_SCHEMANAME,makeAny(sSchema));
- xTable->setPropertyValue(PROPERTY_NAME,makeAny(sTable));
+ xTable->setPropertyValue(PROPERTY_CATALOGNAME,Any(sCatalog));
+ xTable->setPropertyValue(PROPERTY_SCHEMANAME,Any(sSchema));
+ xTable->setPropertyValue(PROPERTY_NAME,Any(sTable));
Reference< XColumnsSupplier > xSuppDestinationColumns( xTable, UNO_QUERY );
// now append the columns
@@ -1251,12 +1235,10 @@ Reference< XPropertySet > OCopyTableWizard::createTable()
// set column mappings
Reference<XNameAccess> xNameAccess = xSuppDestinationColumns->getColumns();
Sequence< OUString> aSeq = xNameAccess->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(sal_Int32 nNewPos=1;pIter != pEnd;++pIter,++nNewPos)
+ for (sal_Int32 i = 0; i < aSeq.getLength(); ++i)
{
- ODatabaseExport::TColumns::const_iterator aDestIter = m_vDestColumns.find(*pIter);
+ ODatabaseExport::TColumns::const_iterator aDestIter = m_vDestColumns.find(aSeq[i]);
if ( aDestIter != m_vDestColumns.end() )
{
@@ -1273,7 +1255,7 @@ Reference< XPropertySet > OCopyTableWizard::createTable()
if ( m_vColumnPositions.end() != aPosFind )
{
- aPosFind->second = nNewPos;
+ aPosFind->second = i + 1;
OSL_ENSURE( m_vColumnTypes.size() > o3tl::make_unsigned( aPosFind - m_vColumnPositions.begin() ),
"Invalid index for vector!" );
m_vColumnTypes[ aPosFind - m_vColumnPositions.begin() ] = (*aFind)->second->GetType();
@@ -1362,7 +1344,7 @@ void OCopyTableWizard::setOperation( const sal_Int16 _nOperation )
OUString OCopyTableWizard::convertColumnName(const TColumnFindFunctor& _rCmpFunctor,
const OUString& _sColumnName,
- const OUString& _sExtraChars,
+ std::u16string_view _sExtraChars,
sal_Int32 _nMaxNameLen)
{
OUString sAlias = _sColumnName;
@@ -1495,7 +1477,7 @@ TOTypeInfoSP OCopyTableWizard::convertType(const TOTypeInfoSP& _pType, bool& _bN
if ( !pType )
{
_bNotConvert = false;
- pType = ::dbaui::getTypeInfoFromType(m_aDestTypeInfo,DataType::VARCHAR,_pType->aTypeName,"x",50,0,false,bForce);
+ pType = ::dbaui::getTypeInfoFromType(m_aDestTypeInfo,DataType::VARCHAR,_pType->aTypeName,u"x"_ustr,50,0,false,bForce);
if ( !pType )
pType = m_pTypeInfo;
}
@@ -1525,7 +1507,7 @@ OUString OCopyTableWizard::createUniqueName(const OUString& _sName)
return sName;
}
-void OCopyTableWizard::showColumnTypeNotSupported(const OUString& _rColumnName)
+void OCopyTableWizard::showColumnTypeNotSupported(std::u16string_view _rColumnName)
{
OUString sMessage( DBA_RES( STR_UNKNOWN_TYPE_FOUND ) );
sMessage = sMessage.replaceFirst("#1",_rColumnName);
@@ -1545,7 +1527,7 @@ void OCopyTableWizard::showError(const Any& _aError)
try
{
::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( _aError ) );
- m_xInteractionHandler->handle( xRequest.get() );
+ m_xInteractionHandler->handle( xRequest );
}
catch( const Exception& )
{
diff --git a/dbaccess/source/ui/misc/WExtendPages.cxx b/dbaccess/source/ui/misc/WExtendPages.cxx
index f34661cabd7d..c7eac9181e00 100644
--- a/dbaccess/source/ui/misc/WExtendPages.cxx
+++ b/dbaccess/source/ui/misc/WExtendPages.cxx
@@ -31,7 +31,7 @@ void OWizHTMLExtend::createReaderAndCallParser(sal_Int32 _nRows)
{
tools::SvRef<OHTMLReader> xParser = new OHTMLReader(*m_pParserStream,
_nRows,
- m_pParent->GetColumnPositions(),
+ std::vector(m_pParent->GetColumnPositions()),
m_pParent->GetFormatter(),
m_pParent->GetComponentContext(),
&m_pParent->getDestVector(),
@@ -44,7 +44,7 @@ void OWizRTFExtend::createReaderAndCallParser(sal_Int32 _nRows)
{
tools::SvRef<ORTFReader> xParser = new ORTFReader(*m_pParserStream,
_nRows,
- m_pParent->GetColumnPositions(),
+ std::vector(m_pParent->GetColumnPositions()),
m_pParent->GetFormatter(),
m_pParent->GetComponentContext(),
&m_pParent->getDestVector(),
diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx
index 75ff6e3372f1..5eba2844b625 100644
--- a/dbaccess/source/ui/misc/WNameMatch.cxx
+++ b/dbaccess/source/ui/misc/WNameMatch.cxx
@@ -30,17 +30,17 @@ using namespace ::dbaui;
// OWizColumnSelect
OWizNameMatching::OWizNameMatching(weld::Container* pPage, OCopyTableWizard* pWizard)
- : OWizardPage(pPage, pWizard, "dbaccess/ui/namematchingpage.ui", "NameMatching")
- , m_xTABLE_LEFT(m_xBuilder->weld_label("leftlabel"))
- , m_xTABLE_RIGHT(m_xBuilder->weld_label("rightlabel"))
- , m_xCTRL_LEFT(m_xBuilder->weld_tree_view("left"))
- , m_xCTRL_RIGHT(m_xBuilder->weld_tree_view("right"))
- , m_xColumn_up(m_xBuilder->weld_button("up"))
- , m_xColumn_down(m_xBuilder->weld_button("down"))
- , m_xColumn_up_right(m_xBuilder->weld_button("up_right"))
- , m_xColumn_down_right(m_xBuilder->weld_button("down_right"))
- , m_xAll(m_xBuilder->weld_button("all"))
- , m_xNone(m_xBuilder->weld_button("none"))
+ : OWizardPage(pPage, pWizard, u"dbaccess/ui/namematchingpage.ui"_ustr, u"NameMatching"_ustr)
+ , m_xTABLE_LEFT(m_xBuilder->weld_label(u"leftlabel"_ustr))
+ , m_xTABLE_RIGHT(m_xBuilder->weld_label(u"rightlabel"_ustr))
+ , m_xCTRL_LEFT(m_xBuilder->weld_tree_view(u"left"_ustr))
+ , m_xCTRL_RIGHT(m_xBuilder->weld_tree_view(u"right"_ustr))
+ , m_xColumn_up(m_xBuilder->weld_button(u"up"_ustr))
+ , m_xColumn_down(m_xBuilder->weld_button(u"down"_ustr))
+ , m_xColumn_up_right(m_xBuilder->weld_button(u"up_right"_ustr))
+ , m_xColumn_down_right(m_xBuilder->weld_button(u"down_right"_ustr))
+ , m_xAll(m_xBuilder->weld_button(u"all"_ustr))
+ , m_xNone(m_xBuilder->weld_button(u"none"_ustr))
{
OUString aImgUp(BMP_UP);
OUString aImgDown(BMP_DOWN);
@@ -60,8 +60,8 @@ OWizNameMatching::OWizNameMatching(weld::Container* pPage, OCopyTableWizard* pWi
m_xCTRL_LEFT->enable_toggle_buttons(weld::ColumnToggleType::Check);
- m_xCTRL_LEFT->connect_changed(LINK(this,OWizNameMatching,TableListClickHdl));
- m_xCTRL_RIGHT->connect_changed(LINK(this,OWizNameMatching,TableListRightSelectHdl));
+ m_xCTRL_LEFT->connect_selection_changed(LINK(this, OWizNameMatching, TableListClickHdl));
+ m_xCTRL_RIGHT->connect_selection_changed(LINK(this, OWizNameMatching, TableListRightSelectHdl));
m_sSourceText = m_xTABLE_LEFT->get_label() + "\n";
m_sDestText = m_xTABLE_RIGHT->get_label() + "\n";
@@ -119,7 +119,7 @@ bool OWizNameMatching::LeavePage()
bool bRightEntry = m_xCTRL_RIGHT->get_iter_first(*xRightEntry);
while (bLeftEntry && bRightEntry)
{
- OFieldDescription* pSrcField = reinterpret_cast<OFieldDescription*>(m_xCTRL_LEFT->get_id(*xLeftEntry).toInt64());
+ OFieldDescription* pSrcField = weld::fromId<OFieldDescription*>(m_xCTRL_LEFT->get_id(*xLeftEntry));
OSL_ENSURE(pSrcField,"OWizNameMatching: OColumn can not be null!");
sal_Int32 nPos = 0;
@@ -132,7 +132,7 @@ bool OWizNameMatching::LeavePage()
if (m_xCTRL_LEFT->get_toggle(*xLeftEntry) == TRISTATE_TRUE)
{
- OFieldDescription* pDestField = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(*xRightEntry).toInt64());
+ OFieldDescription* pDestField = weld::fromId<OFieldDescription*>(m_xCTRL_RIGHT->get_id(*xRightEntry));
OSL_ENSURE(pDestField,"OWizNameMatching: OColumn can not be null!");
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
sal_Int32 nPosDest = 1;
@@ -268,7 +268,7 @@ IMPL_LINK_NOARG( OWizNameMatching, TableListRightSelectHdl, weld::TreeView&, voi
if (nPos == -1)
return;
- OFieldDescription* pColumn = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(nPos).toInt64());
+ OFieldDescription* pColumn = weld::fromId<OFieldDescription*>(m_xCTRL_RIGHT->get_id(nPos));
if (pColumn->IsAutoIncrement())
{
m_xCTRL_RIGHT->unselect(nPos);
@@ -319,7 +319,7 @@ void OWizNameMatching::FillListBox(weld::TreeView& rTreeView, const ODatabaseExp
rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
}
rTreeView.set_text(nRow, elem->first, 0);
- rTreeView.set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(elem->second)));
+ rTreeView.set_id(nRow, weld::toId(elem->second));
++nRow;
}
diff --git a/dbaccess/source/ui/misc/WTypeSelect.cxx b/dbaccess/source/ui/misc/WTypeSelect.cxx
index 44bb78b36924..4224ea66b9f8 100644
--- a/dbaccess/source/ui/misc/WTypeSelect.cxx
+++ b/dbaccess/source/ui/misc/WTypeSelect.cxx
@@ -19,7 +19,7 @@
#include <WTypeSelect.hxx>
#include <bitmaps.hlst>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <FieldDescriptions.hxx>
#include <WCopyTable.hxx>
@@ -33,7 +33,6 @@
using namespace ::dbaui;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdbc;
@@ -77,7 +76,7 @@ void OWizTypeSelectControl::DeactivateAggregate( EControlType eType )
}
}
-void OWizTypeSelectControl::CellModified(tools::Long nRow, sal_uInt16 nColId )
+void OWizTypeSelectControl::CellModified(sal_Int32 nRow, sal_uInt16 nColId )
{
OSL_ENSURE(nRow == -1,"nRow must be -1!");
@@ -86,7 +85,7 @@ void OWizTypeSelectControl::CellModified(tools::Long nRow, sal_uInt16 nColId )
OFieldDescription* pCurFieldDescr = getCurrentFieldDescData();
const sal_Int32 nPos = pListBox->find_text(pCurFieldDescr->GetName());
- pCurFieldDescr = reinterpret_cast< OFieldDescription* >( pListBox->get_id(nPos).toInt64() );
+ pCurFieldDescr = weld::fromId<OFieldDescription*>(pListBox->get_id(nPos));
OSL_ENSURE( pCurFieldDescr, "OWizTypeSelectControl::CellModified: Columnname/type not found in the listbox!" );
if ( !pCurFieldDescr )
return;
@@ -153,7 +152,7 @@ void OWizTypeSelectControl::CellModified(tools::Long nRow, sal_uInt16 nColId )
pListBox->remove(nPos);
pListBox->insert_text(nPos, pCurFieldDescr->GetName());
- pListBox->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(pCurFieldDescr)));
+ pListBox->set_id(nPos, weld::toId(pCurFieldDescr));
pWiz->replaceColumn(nPos,pCurFieldDescr,sOldName);
}
@@ -203,15 +202,14 @@ OUString OWizTypeSelectControl::getAutoIncrementValue() const
}
OWizTypeSelect::OWizTypeSelect(weld::Container* pPage, OCopyTableWizard* pWizard, SvStream* pStream)
- : OWizardPage(pPage, pWizard, "dbaccess/ui/typeselectpage.ui", "TypeSelect")
- , m_xColumnNames(new OWizTypeSelectList(m_xBuilder->weld_tree_view("columnnames")))
- , m_xColumns(m_xBuilder->weld_label("columns"))
- , m_xControlContainer(m_xBuilder->weld_container("control_container"))
+ : OWizardPage(pPage, pWizard, u"dbaccess/ui/typeselectpage.ui"_ustr, u"TypeSelect"_ustr)
+ , m_xColumnNames(new OWizTypeSelectList(m_xBuilder->weld_tree_view(u"columnnames"_ustr)))
+ , m_xControlContainer(m_xBuilder->weld_container(u"control_container"_ustr))
, m_xTypeControl(new OWizTypeSelectControl(m_xControlContainer.get(), this))
- , m_xAutoType(m_xBuilder->weld_label("autotype"))
- , m_xAutoFt(m_xBuilder->weld_label("autolabel"))
- , m_xAutoEt(m_xBuilder->weld_spin_button("auto"))
- , m_xAutoPb(m_xBuilder->weld_button("autobutton"))
+ , m_xAutoType(m_xBuilder->weld_label(u"autotype"_ustr))
+ , m_xAutoFt(m_xBuilder->weld_label(u"autolabel"_ustr))
+ , m_xAutoEt(m_xBuilder->weld_spin_button(u"auto"_ustr))
+ , m_xAutoPb(m_xBuilder->weld_button(u"autobutton"_ustr))
, m_pParserStream(pStream)
, m_nDisplayRow(0)
, m_bAutoIncrementEnabled(false)
@@ -221,7 +219,7 @@ OWizTypeSelect::OWizTypeSelect(weld::Container* pPage, OCopyTableWizard* pWizard
m_xTypeControl->Init();
- m_xAutoEt->set_text("10");
+ m_xAutoEt->set_text(u"10"_ustr);
m_xAutoEt->set_digits(0);
m_xAutoPb->connect_clicked(LINK(this,OWizTypeSelect,ButtonClickHdl));
m_xColumnNames->set_selection_mode(SelectionMode::Multiple);
@@ -248,7 +246,7 @@ OUString OWizTypeSelect::GetTitle() const
IMPL_LINK_NOARG(OWizTypeSelect, ColumnSelectHdl, weld::TreeView&, void)
{
- OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xColumnNames->get_selected_id().toInt64());
+ OFieldDescription* pField = weld::fromId<OFieldDescription*>(m_xColumnNames->get_selected_id());
if (pField)
m_xTypeControl->DisplayData(pField);
@@ -265,7 +263,7 @@ void OWizTypeSelect::Reset()
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
for (auto const& column : rDestColumns)
{
- OUString sId(OUString::number(reinterpret_cast<sal_Int64>(column->second)));
+ OUString sId(weld::toId(column->second));
m_xColumnNames->append(sId, column->first);
if (column->second->IsPrimaryKey())
m_xColumnNames->set_image(nCount, BMP_PRIMARY_KEY);
@@ -288,7 +286,7 @@ void OWizTypeSelect::Activate( )
bool OWizTypeSelect::LeavePage()
{
bool bDuplicateName = false;
- OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xColumnNames->get_selected_id().toInt64());
+ OFieldDescription* pField = weld::fromId<OFieldDescription*>(m_xColumnNames->get_selected_id());
if ( pField )
{
m_xTypeControl->SaveData(pField);
@@ -339,7 +337,7 @@ bool OWizTypeSelectList::IsPrimaryKeyAllowed() const
for( sal_Int32 j = 0; m_bPKey && j < nCount; ++j )
{
- OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(aRows[j]).toInt64());
+ OFieldDescription* pField = weld::fromId<OFieldDescription*>(m_xControl->get_id(aRows[j]));
if(!pField || pField->getTypeInfo()->nSearchType == ColumnSearch::NONE)
return false;
}
@@ -367,14 +365,14 @@ IMPL_LINK(OWizTypeSelectList, CommandHdl, const CommandEvent&, rCEvt, bool)
if (!IsPrimaryKeyAllowed())
return false;
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xControl.get(), "dbaccess/ui/keymenu.ui"));
- auto xContextMenu = xBuilder->weld_menu("menu");
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xControl.get(), u"dbaccess/ui/keymenu.ui"_ustr));
+ auto xContextMenu = xBuilder->weld_menu(u"menu"_ustr);
// Should primary key checkbox be checked?
const sal_Int32 nCount = m_xControl->n_children();
bool bCheckOk = false;
for(sal_Int32 j = 0 ; j < nCount ; ++j)
{
- OFieldDescription* pFieldDescr = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(j).toInt64());
+ OFieldDescription* pFieldDescr = weld::fromId<OFieldDescription*>(m_xControl->get_id(j));
// if at least one of the fields is selected but not in the primary key,
// or is in the primary key but not selected, then don't check the
// primary key checkbox.
@@ -388,28 +386,28 @@ IMPL_LINK(OWizTypeSelectList, CommandHdl, const CommandEvent&, rCEvt, bool)
}
if (bCheckOk)
- xContextMenu->set_active("primarykey", true);
+ xContextMenu->set_active(u"primarykey"_ustr, true);
- OString sCommand(xContextMenu->popup_at_rect(m_xControl.get(), tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
- if (sCommand == "primarykey")
+ OUString sCommand(xContextMenu->popup_at_rect(m_xControl.get(), tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
+ if (sCommand != "primarykey")
+ return true;
+
+ for (sal_Int32 j = 0 ; j < nCount; ++j)
{
- for (sal_Int32 j = 0 ; j < nCount; ++j)
+ OFieldDescription* pFieldDescr = weld::fromId<OFieldDescription*>(m_xControl->get_id(j));
+ if (pFieldDescr)
{
- OFieldDescription* pFieldDescr = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(j).toInt64());
- if (pFieldDescr)
+ if(!bCheckOk && m_xControl->is_selected(j))
{
- if(!bCheckOk && m_xControl->is_selected(j))
- {
- setPrimaryKey(pFieldDescr,j,true);
- }
- else
- {
- setPrimaryKey(pFieldDescr,j);
- }
+ setPrimaryKey(pFieldDescr,j,true);
+ }
+ else
+ {
+ setPrimaryKey(pFieldDescr,j);
}
}
- m_aChangeHdl.Call(*m_xControl);
}
+ m_aChangeHdl.Call(*m_xControl);
return true;
}
diff --git a/dbaccess/source/ui/misc/asyncmodaldialog.cxx b/dbaccess/source/ui/misc/asyncmodaldialog.cxx
index 3c59a58f8b85..2c7db57be16e 100644
--- a/dbaccess/source/ui/misc/asyncmodaldialog.cxx
+++ b/dbaccess/source/ui/misc/asyncmodaldialog.cxx
@@ -22,7 +22,7 @@
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <vcl/svapp.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaui
{
@@ -65,7 +65,7 @@ namespace dbaui
{
try
{
- m_xDialog->execute();
+ (void)m_xDialog->execute();
}
catch( const Exception& )
{
diff --git a/dbaccess/source/ui/misc/charsets.cxx b/dbaccess/source/ui/misc/charsets.cxx
index 86e55b226df0..5224e65d3c63 100644
--- a/dbaccess/source/ui/misc/charsets.cxx
+++ b/dbaccess/source/ui/misc/charsets.cxx
@@ -23,6 +23,7 @@
#include <strings.hrc>
#include <rtl/tencinfo.h>
#include <svx/txenctab.hxx>
+#include <utility>
namespace dbaui
{
@@ -30,8 +31,7 @@ namespace dbaui
// OCharsetDisplay
OCharsetDisplay::OCharsetDisplay()
- : OCharsetMap()
- , m_aSystemDisplayName(DBA_RES( STR_RSC_CHARSETS ))
+ : m_aSystemDisplayName(DBA_RES( STR_RSC_CHARSETS ))
{
}
@@ -62,7 +62,7 @@ namespace dbaui
return const_iterator( this, aBaseIter );
}
- OCharsetDisplay::const_iterator OCharsetDisplay::findIanaName(const OUString& _rIanaName) const
+ OCharsetDisplay::const_iterator OCharsetDisplay::findIanaName(std::u16string_view _rIanaName) const
{
OCharsetMap::const_iterator aBaseIter = OCharsetMap::findIanaName(_rIanaName);
return const_iterator( this, aBaseIter );
@@ -87,17 +87,17 @@ namespace dbaui
{
}
- CharsetDisplayDerefHelper::CharsetDisplayDerefHelper(const ::dbtools::CharsetIteratorDerefHelper& _rBase, const OUString& _rDisplayName)
+ CharsetDisplayDerefHelper::CharsetDisplayDerefHelper(const ::dbtools::CharsetIteratorDerefHelper& _rBase, OUString _sDisplayName)
:CharsetDisplayDerefHelper_Base(_rBase)
- ,m_sDisplayName(_rDisplayName)
+ ,m_sDisplayName(std::move(_sDisplayName))
{
OSL_ENSURE( !m_sDisplayName.isEmpty(), "CharsetDisplayDerefHelper::CharsetDisplayDerefHelper: invalid display name!" );
}
// OCharsetDisplay::ExtendedCharsetIterator
- OCharsetDisplay::ExtendedCharsetIterator::ExtendedCharsetIterator( const OCharsetDisplay* _pContainer, const base_iterator& _rPosition )
+ OCharsetDisplay::ExtendedCharsetIterator::ExtendedCharsetIterator( const OCharsetDisplay* _pContainer, base_iterator _aPosition )
:m_pContainer(_pContainer)
- ,m_aPosition(_rPosition)
+ ,m_aPosition(std::move(_aPosition))
{
OSL_ENSURE(m_pContainer, "OCharsetDisplay::ExtendedCharsetIterator::ExtendedCharsetIterator : invalid container!");
}
diff --git a/dbaccess/source/ui/misc/controllerframe.cxx b/dbaccess/source/ui/misc/controllerframe.cxx
index 599398e5d00f..cfca8f73413e 100644
--- a/dbaccess/source/ui/misc/controllerframe.cxx
+++ b/dbaccess/source/ui/misc/controllerframe.cxx
@@ -29,7 +29,7 @@
#include <cppuhelper/implbase.hxx>
#include <rtl/ref.hxx>
#include <sfx2/objsh.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/window.hxx>
@@ -42,7 +42,6 @@ namespace dbaui
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::frame::XFrame;
using ::com::sun::star::frame::FrameAction;
@@ -104,9 +103,6 @@ namespace dbaui
{
explicit ControllerFrame_Data( IController& _rController )
:m_rController( _rController )
- ,m_xFrame()
- ,m_xDocEventBroadcaster()
- ,m_pListener()
,m_bActive( false )
,m_bIsTopLevelDocumentWindow( false )
{
@@ -212,7 +208,7 @@ namespace dbaui
{
if ( _rData.m_xDocEventBroadcaster.is() )
{
- OUString sEventName = _bActive ? OUString("OnFocus") : OUString("OnUnfocus");
+ OUString sEventName = _bActive ? u"OnFocus"_ustr : u"OnUnfocus"_ustr;
Reference< XController2 > xController( _rData.m_rController.getXController(), UNO_QUERY_THROW );
_rData.m_xDocEventBroadcaster->notifyDocumentEvent( sEventName, xController, Any() );
}
diff --git a/dbaccess/source/ui/misc/databaseobjectview.cxx b/dbaccess/source/ui/misc/databaseobjectview.cxx
index 49d3cfe5591a..112c79947393 100644
--- a/dbaccess/source/ui/misc/databaseobjectview.cxx
+++ b/dbaccess/source/ui/misc/databaseobjectview.cxx
@@ -31,7 +31,8 @@
#include <connectivity/dbtools.hxx>
#include <osl/diagnose.h>
#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
+#include <utility>
#include <vcl/window.hxx>
namespace dbaui
@@ -51,12 +52,11 @@ namespace dbaui
DatabaseObjectView::DatabaseObjectView( const Reference< XComponentContext >& _rxORB,
const Reference< XDatabaseDocumentUI >& _rxApplication,
const Reference< XFrame >& _rxParentFrame,
- const OUString& _rComponentURL )
+ OUString _sComponentURL )
:m_xORB ( _rxORB )
,m_xParentFrame ( _rxParentFrame )
- ,m_xFrameLoader ( )
,m_xApplication ( _rxApplication )
- ,m_sComponentURL ( _rComponentURL )
+ ,m_sComponentURL (std::move( _sComponentURL ))
{
OSL_ENSURE( m_xORB.is(), "DatabaseObjectView::DatabaseObjectView: invalid service factory!" );
OSL_ENSURE( m_xApplication.is(), "DatabaseObjectView::DatabaseObjectView: invalid connection!" );
@@ -72,7 +72,7 @@ namespace dbaui
Reference< XComponent > DatabaseObjectView::createNew( const Reference< XDataSource >& _xDataSource, const ::comphelper::NamedValueCollection& i_rDispatchArgs )
{
- return doCreateView( makeAny( _xDataSource ), OUString(), i_rDispatchArgs );
+ return doCreateView( Any( _xDataSource ), OUString(), i_rDispatchArgs );
}
Reference< XComponent > DatabaseObjectView::openExisting( const Any& _rDataSource, const OUString& _rName,
@@ -104,21 +104,10 @@ namespace dbaui
if ( !m_xFrameLoader.is() )
{
Reference< XSingleServiceFactory > xFact = TaskCreator::create(m_xORB);
- Sequence< Any > lArgs(3);
- NamedValue aProp;
- sal_Int32 nArg = 0;
-
- aProp.Name = "ParentFrame";
- aProp.Value <<= m_xParentFrame;
- lArgs[nArg++] <<= aProp;
-
- aProp.Name = "TopWindow";
- aProp.Value <<= true;
- lArgs[nArg++] <<= aProp;
-
- aProp.Name = "SupportPersistentWindowState";
- aProp.Value <<= true;
- lArgs[nArg++] <<= aProp;
+ Sequence< Any > lArgs{ Any(NamedValue(u"ParentFrame"_ustr, Any(m_xParentFrame))),
+ Any(NamedValue(u"TopWindow"_ustr, Any(true))),
+ Any(NamedValue(u"SupportPersistentWindowState"_ustr,
+ Any(true))) };
m_xFrameLoader.set(xFact->createInstanceWithArguments(lArgs), UNO_QUERY_THROW);
@@ -135,7 +124,7 @@ namespace dbaui
Reference< XComponentLoader > xFrameLoader( m_xFrameLoader, UNO_SET_THROW );
xReturn = xFrameLoader->loadComponentFromURL(
m_sComponentURL,
- "_self",
+ u"_self"_ustr,
0,
i_rDispatchArgs.getPropertyValues()
);
@@ -158,20 +147,20 @@ namespace dbaui
Reference<XDataSource> xDataSource;
if ( _aDataSource >>= sDataSource )
{
- i_rDispatchArgs.put( OUString(PROPERTY_DATASOURCENAME), sDataSource );
+ i_rDispatchArgs.put( PROPERTY_DATASOURCENAME, sDataSource );
}
else if ( _aDataSource >>= xDataSource )
{
- i_rDispatchArgs.put( OUString(PROPERTY_DATASOURCE), xDataSource );
+ i_rDispatchArgs.put( PROPERTY_DATASOURCE, xDataSource );
}
- i_rDispatchArgs.put( OUString(PROPERTY_ACTIVE_CONNECTION), getConnection() );
+ i_rDispatchArgs.put( PROPERTY_ACTIVE_CONNECTION, getConnection() );
}
// QueryDesigner
QueryDesigner::QueryDesigner( const Reference< XComponentContext >& _rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication,
const Reference< XFrame >& _rxParentFrame, bool _bCreateView )
- :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, _bCreateView ? OUString(URL_COMPONENT_VIEWDESIGN) : OUString(URL_COMPONENT_QUERYDESIGN) )
+ :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, _bCreateView ? URL_COMPONENT_VIEWDESIGN : URL_COMPONENT_QUERYDESIGN )
,m_nCommandType( _bCreateView ? CommandType::TABLE : CommandType::QUERY )
{
}
@@ -185,22 +174,22 @@ namespace dbaui
const bool bGraphicalDesign = i_rDispatchArgs.getOrDefault( PROPERTY_GRAPHICAL_DESIGN, true );
const bool bEditViewAsSQLCommand = ( m_nCommandType == CommandType::TABLE ) && !bGraphicalDesign;
- i_rDispatchArgs.put( OUString(PROPERTY_COMMAND_TYPE), m_nCommandType );
+ i_rDispatchArgs.put( PROPERTY_COMMAND_TYPE, m_nCommandType );
if ( bIncludeQueryName )
{
- i_rDispatchArgs.put( OUString(PROPERTY_COMMAND), _rObjectName );
+ i_rDispatchArgs.put( PROPERTY_COMMAND, _rObjectName );
}
if ( bEditViewAsSQLCommand )
{
- i_rDispatchArgs.put( OUString(PROPERTY_ESCAPE_PROCESSING), false );
+ i_rDispatchArgs.put( PROPERTY_ESCAPE_PROCESSING, false );
}
}
// TableDesigner
TableDesigner::TableDesigner( const Reference< XComponentContext >& _rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication, const Reference< XFrame >& _rxParentFrame )
- :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, static_cast< OUString >( URL_COMPONENT_TABLEDESIGN ) )
+ :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, URL_COMPONENT_TABLEDESIGN )
{
}
@@ -211,7 +200,7 @@ namespace dbaui
if ( !_rObjectName.isEmpty() )
{
- i_rDispatchArgs.put( OUString(PROPERTY_CURRENTTABLE), _rObjectName );
+ i_rDispatchArgs.put( PROPERTY_CURRENTTABLE, _rObjectName );
}
}
@@ -254,7 +243,7 @@ namespace dbaui
// ResultSetBrowser
ResultSetBrowser::ResultSetBrowser( const Reference< XComponentContext >& _rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication, const Reference< XFrame >& _rxParentFrame,
bool _bTable )
- :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, static_cast < OUString >( URL_COMPONENT_DATASOURCEBROWSER ) )
+ :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, URL_COMPONENT_DATASOURCEBROWSER )
,m_bTable(_bTable)
{
}
@@ -264,27 +253,27 @@ namespace dbaui
{
DatabaseObjectView::fillDispatchArgs( i_rDispatchArgs, _aDataSource, _rQualifiedName );
OSL_ENSURE( !_rQualifiedName.isEmpty(),"A Table name must be set");
- OUString sCatalog;
- OUString sSchema;
- OUString sTable;
- if ( m_bTable )
- ::dbtools::qualifiedNameComponents( getConnection()->getMetaData(), _rQualifiedName, sCatalog, sSchema, sTable, ::dbtools::EComposeRule::InDataManipulation );
-
- i_rDispatchArgs.put( OUString(PROPERTY_COMMAND_TYPE), (m_bTable ? CommandType::TABLE : CommandType::QUERY) );
- i_rDispatchArgs.put( OUString(PROPERTY_COMMAND), _rQualifiedName );
- i_rDispatchArgs.put( OUString(PROPERTY_ENABLE_BROWSER), false );
+ i_rDispatchArgs.put( PROPERTY_COMMAND, _rQualifiedName );
+ i_rDispatchArgs.put( PROPERTY_ENABLE_BROWSER, false );
if ( m_bTable )
{
- i_rDispatchArgs.put( OUString(PROPERTY_UPDATE_CATALOGNAME), sCatalog );
- i_rDispatchArgs.put( OUString(PROPERTY_UPDATE_SCHEMANAME), sSchema );
- i_rDispatchArgs.put( OUString(PROPERTY_UPDATE_TABLENAME), sTable );
+ OUString sCatalog;
+ OUString sSchema;
+ OUString sTable;
+ ::dbtools::qualifiedNameComponents( getConnection()->getMetaData(), _rQualifiedName, sCatalog, sSchema, sTable, ::dbtools::EComposeRule::InDataManipulation );
+ i_rDispatchArgs.put( PROPERTY_UPDATE_CATALOGNAME, sCatalog );
+ i_rDispatchArgs.put( PROPERTY_UPDATE_SCHEMANAME, sSchema );
+ i_rDispatchArgs.put( PROPERTY_UPDATE_TABLENAME, sTable );
+ i_rDispatchArgs.put( PROPERTY_COMMAND_TYPE, CommandType::TABLE );
}
+ else
+ i_rDispatchArgs.put( PROPERTY_COMMAND_TYPE, CommandType::QUERY );
}
// RelationDesigner
RelationDesigner::RelationDesigner( const Reference< XComponentContext >& _rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication, const Reference< XFrame >& _rxParentFrame )
- :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, static_cast< OUString >( URL_COMPONENT_RELATIONDESIGN ) )
+ :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, URL_COMPONENT_RELATIONDESIGN )
{
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/misc/datasourceconnector.cxx b/dbaccess/source/ui/misc/datasourceconnector.cxx
index 49053e569000..11fcf5ff6c1e 100644
--- a/dbaccess/source/ui/misc/datasourceconnector.cxx
+++ b/dbaccess/source/ui/misc/datasourceconnector.cxx
@@ -30,10 +30,12 @@
#include <connectivity/dbexception.hxx>
#include <com/sun/star/sdbc/XDataSource.hpp>
#include <UITools.hxx>
+#include <utility>
+#include <vcl/mnemonic.hxx>
#include <vcl/outdev.hxx>
#include <vcl/stdtext.hxx>
#include <vcl/weld.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <strings.hrc>
#include <strings.hxx>
@@ -59,10 +61,10 @@ namespace dbaui
}
ODatasourceConnector::ODatasourceConnector( const Reference< XComponentContext >& _rxContext, weld::Window* _pMessageParent,
- const OUString& _rContextInformation )
+ OUString _sContextInformation )
:m_pErrorMessageParent(_pMessageParent)
,m_xContext(_rxContext)
- ,m_sContextInformation( _rContextInformation )
+ ,m_sContextInformation(std::move( _sContextInformation ))
{
}
@@ -118,7 +120,7 @@ namespace dbaui
Reference< XModel > xModel( getDataSourceOrModel( _xDataSource ), UNO_QUERY_THROW );
::comphelper::NamedValueCollection aArgs( xModel->getArgs() );
- Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( "InteractionHandler", Reference< XInteractionHandler >() ) );
+ Reference< XInteractionHandler > xHandler( aArgs.getOrDefault( u"InteractionHandler"_ustr, Reference< XInteractionHandler >() ) );
if ( !xHandler.is() )
{
@@ -155,11 +157,9 @@ namespace dbaui
{
OUString sMessage( DBA_RES( STR_WARNINGS_DURING_CONNECT ) );
sMessage = sMessage.replaceFirst( "$buttontext$", GetStandardText( StandardButtonType::More ) );
- sMessage = OutputDevice::GetNonMnemonicString( sMessage );
+ sMessage = removeMnemonicFromString( sMessage );
- SQLWarning aContext;
- aContext.Message = sMessage;
- aContext.NextException = aWarnings;
+ SQLWarning aContext(sMessage, {}, {}, 0, aWarnings);
aInfo = aContext;
}
xConnectionWarnings->clearWarnings();
@@ -174,10 +174,7 @@ namespace dbaui
{
if ( !m_sContextInformation.isEmpty() )
{
- SQLException aError;
- aError.Message = m_sContextInformation;
- aError.NextException = aInfo.get();
-
+ SQLException aError(m_sContextInformation, {}, {}, 0, aInfo.get());
aInfo = aError;
}
}
@@ -187,7 +184,7 @@ namespace dbaui
{
if ( _pErrorInfo )
{
- *_pErrorInfo = aInfo;
+ *_pErrorInfo = std::move(aInfo);
}
else
{
diff --git a/dbaccess/source/ui/misc/dbaundomanager.cxx b/dbaccess/source/ui/misc/dbaundomanager.cxx
index d8659ce6157d..9ed72bbdf477 100644
--- a/dbaccess/source/ui/misc/dbaundomanager.cxx
+++ b/dbaccess/source/ui/misc/dbaundomanager.cxx
@@ -47,7 +47,6 @@ namespace dbaui
,rParent( i_parent )
,rMutex( i_mutex )
,bDisposed( false )
- ,aUndoManager()
,aUndoHelper( *this )
{
}
@@ -166,12 +165,12 @@ namespace dbaui
return m_xImpl->aUndoManager;
}
- void SAL_CALL UndoManager::acquire( ) throw ()
+ void SAL_CALL UndoManager::acquire( ) noexcept
{
m_xImpl->rParent.acquire();
}
- void SAL_CALL UndoManager::release( ) throw ()
+ void SAL_CALL UndoManager::release( ) noexcept
{
m_xImpl->rParent.release();
}
diff --git a/dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx b/dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx
index 63e30d06ad3b..0d3676db5d80 100644
--- a/dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx
+++ b/dbaccess/source/ui/misc/dbsubcomponentcontroller.cxx
@@ -37,12 +37,12 @@
#include <connectivity/dbexception.hxx>
#include <connectivity/dbmetadata.hxx>
#include <connectivity/dbtools.hxx>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
@@ -124,7 +124,7 @@ namespace dbaui
public:
::dbtools::SQLExceptionInfo m_aCurrentError;
- ::comphelper::OInterfaceContainerHelper2
+ ::comphelper::OInterfaceContainerHelper3<css::util::XModifyListener>
m_aModifyListeners;
// <properties>
@@ -141,8 +141,7 @@ namespace dbaui
bool m_bNotAttached;
explicit DBSubComponentController_Impl(osl::Mutex& i_rMutex)
- :m_aDocScriptSupport()
- ,m_aModifyListeners( i_rMutex )
+ :m_aModifyListeners( i_rMutex )
,m_nDocStartNumber(0)
,m_bSuspended( false )
,m_bEditable(true)
@@ -153,14 +152,14 @@ namespace dbaui
bool documentHasScriptSupport() const
{
- OSL_PRECOND( !!m_aDocScriptSupport,
+ OSL_PRECOND( m_aDocScriptSupport.has_value(),
"DBSubComponentController_Impl::documentHasScriptSupport: not completely initialized, yet - don't know!?" );
- return !!m_aDocScriptSupport && *m_aDocScriptSupport;
+ return m_aDocScriptSupport.has_value() && *m_aDocScriptSupport;
}
void setDocumentScriptSupport( const bool _bSupport )
{
- OSL_PRECOND( !m_aDocScriptSupport,
+ OSL_PRECOND( !m_aDocScriptSupport.has_value(),
"DBSubComponentController_Impl::setDocumentScriptSupport: already initialized!" );
m_aDocScriptSupport = ::std::optional< bool >( _bSupport );
}
@@ -177,11 +176,9 @@ namespace dbaui
{
}
- void DBSubComponentController::impl_initialize()
+ void DBSubComponentController::impl_initialize(const ::comphelper::NamedValueCollection& rArguments)
{
- OGenericUnoController::impl_initialize();
-
- const ::comphelper::NamedValueCollection& rArguments( getInitParams() );
+ OGenericUnoController::impl_initialize(rArguments);
Reference< XConnection > xConnection;
xConnection = rArguments.getOrDefault( PROPERTY_ACTIVE_CONNECTION, xConnection );
@@ -211,7 +208,7 @@ namespace dbaui
if ( _rType.equals( cppu::UnoType<XScriptInvocationContext>::get() ) )
{
if ( m_pImpl->documentHasScriptSupport() )
- return makeAny( Reference< XScriptInvocationContext >( this ) );
+ return Any( Reference< XScriptInvocationContext >( this ) );
return Any();
}
@@ -223,11 +220,12 @@ namespace dbaui
Sequence< Type > aTypes( DBSubComponentController_Base::getTypes() );
if ( !m_pImpl->documentHasScriptSupport() )
{
- auto newEnd = std::remove_if( aTypes.begin(), aTypes.end(),
+ auto [begin, end] = asNonConstRange(aTypes);
+ auto newEnd = std::remove_if( begin, end,
[](const Type& type)
{ return type == cppu::UnoType<XScriptInvocationContext>::get(); } );
- aTypes.realloc( std::distance(aTypes.begin(), newEnd) );
- }
+ aTypes.realloc( std::distance(begin, newEnd) );
+ }
return aTypes;
}
@@ -447,7 +445,7 @@ namespace dbaui
Reference< XWindow > xWindow = getTopMostContainerWindow();
vcl::Window* pWin = nullptr;
if ( xWindow.is() )
- pWin = VCLUnoHelper::GetWindow(xWindow).get();
+ pWin = VCLUnoHelper::GetWindow(xWindow);
if ( !pWin )
pWin = getView()->Window::GetParent();
@@ -535,8 +533,7 @@ namespace dbaui
Reference< XTitle > xTitle(getPrivateModel(),UNO_QUERY);
if ( xTitle.is() )
{
- sTitle.append( xTitle->getTitle() );
- sTitle.append(" : ");
+ sTitle.append( xTitle->getTitle() + " : ");
}
sTitle.append( getPrivateTitle() );
return sTitle.makeStringAndClear();
diff --git a/dbaccess/source/ui/misc/defaultobjectnamecheck.cxx b/dbaccess/source/ui/misc/defaultobjectnamecheck.cxx
index 34fac13d18d5..cc44de2bdee0 100644
--- a/dbaccess/source/ui/misc/defaultobjectnamecheck.cxx
+++ b/dbaccess/source/ui/misc/defaultobjectnamecheck.cxx
@@ -24,7 +24,6 @@
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
-#include <com/sun/star/sdb/tools/XConnectionTools.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <connectivity/dbexception.hxx>
@@ -32,10 +31,11 @@
#include <rtl/ustrbuf.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <memory>
+#include <string_view>
namespace dbaui
{
@@ -46,7 +46,6 @@ namespace dbaui
using ::com::sun::star::sdbc::SQLException;
using ::com::sun::star::uno::Exception;
using ::com::sun::star::sdbc::XConnection;
- using ::com::sun::star::sdb::tools::XObjectNames;
using ::com::sun::star::sdb::tools::XConnectionTools;
using ::com::sun::star::uno::UNO_QUERY;
@@ -57,31 +56,22 @@ namespace dbaui
// helper
namespace
{
- void lcl_fillNameExistsError( const OUString& _rObjectName, SQLExceptionInfo& _out_rErrorToDisplay )
+ void lcl_fillNameExistsError( std::u16string_view _rObjectName, SQLExceptionInfo& _out_rErrorToDisplay )
{
- SQLException aError;
OUString sErrorMessage = DBA_RES(STR_NAMED_OBJECT_ALREADY_EXISTS);
- aError.Message = sErrorMessage.replaceAll("$#$", _rObjectName);
+ SQLException aError(sErrorMessage.replaceAll("$#$", _rObjectName), {}, {}, 0, {});
_out_rErrorToDisplay = aError;
}
}
- // HierarchicalNameCheck_Impl
- struct HierarchicalNameCheck_Impl
- {
- Reference< XHierarchicalNameAccess > xHierarchicalNames;
- OUString sRelativeRoot;
- };
-
// HierarchicalNameCheck
HierarchicalNameCheck::HierarchicalNameCheck( const Reference< XHierarchicalNameAccess >& _rxNames, const OUString& _rRelativeRoot )
- :m_pImpl( new HierarchicalNameCheck_Impl )
{
- m_pImpl->xHierarchicalNames = _rxNames;
- m_pImpl->sRelativeRoot = _rRelativeRoot;
+ mxHierarchicalNames = _rxNames;
+ msRelativeRoot = _rRelativeRoot;
- if ( !m_pImpl->xHierarchicalNames.is() )
+ if ( !mxHierarchicalNames.is() )
throw IllegalArgumentException();
}
@@ -94,15 +84,14 @@ namespace dbaui
try
{
OUStringBuffer aCompleteName;
- if ( !m_pImpl->sRelativeRoot.isEmpty() )
+ if ( !msRelativeRoot.isEmpty() )
{
- aCompleteName.append( m_pImpl->sRelativeRoot );
- aCompleteName.append( "/" );
+ aCompleteName.append( msRelativeRoot + "/" );
}
aCompleteName.append( _rObjectName );
OUString sCompleteName( aCompleteName.makeStringAndClear() );
- if ( !m_pImpl->xHierarchicalNames->hasByHierarchicalName( sCompleteName ) )
+ if ( !mxHierarchicalNames->hasByHierarchicalName( sCompleteName ) )
return true;
}
catch( const Exception& )
@@ -114,26 +103,18 @@ namespace dbaui
return false;
}
- // DynamicTableOrQueryNameCheck_Impl
- struct DynamicTableOrQueryNameCheck_Impl
- {
- sal_Int32 nCommandType;
- Reference< XObjectNames > xObjectNames;
- };
-
// DynamicTableOrQueryNameCheck
DynamicTableOrQueryNameCheck::DynamicTableOrQueryNameCheck( const Reference< XConnection >& _rxSdbLevelConnection, sal_Int32 _nCommandType )
- :m_pImpl( new DynamicTableOrQueryNameCheck_Impl )
{
Reference< XConnectionTools > xConnTools( _rxSdbLevelConnection, UNO_QUERY );
if ( xConnTools.is() )
- m_pImpl->xObjectNames.set( xConnTools->getObjectNames() );
- if ( !m_pImpl->xObjectNames.is() )
+ mxObjectNames.set( xConnTools->getObjectNames() );
+ if ( !mxObjectNames.is() )
throw IllegalArgumentException();
if ( ( _nCommandType != CommandType::QUERY ) && ( _nCommandType != CommandType::TABLE ) )
throw IllegalArgumentException();
- m_pImpl->nCommandType = _nCommandType;
+ mnCommandType = _nCommandType;
}
DynamicTableOrQueryNameCheck::~DynamicTableOrQueryNameCheck()
@@ -144,7 +125,7 @@ namespace dbaui
{
try
{
- m_pImpl->xObjectNames->checkNameForCreate( m_pImpl->nCommandType, _rObjectName );
+ mxObjectNames->checkNameForCreate( mnCommandType, _rObjectName );
return true;
}
catch( const SQLException& )
diff --git a/dbaccess/source/ui/misc/dsmeta.cxx b/dbaccess/source/ui/misc/dsmeta.cxx
index 58831f081185..c25fb8eda16a 100644
--- a/dbaccess/source/ui/misc/dsmeta.cxx
+++ b/dbaccess/source/ui/misc/dsmeta.cxx
@@ -21,6 +21,7 @@
#include <connectivity/DriversConfig.hxx>
#include <dsntypes.hxx>
#include <comphelper/processfactory.hxx>
+#include <osl/diagnose.h>
#include <map>
#include <utility>
@@ -28,7 +29,6 @@
namespace dbaui
{
- using namespace dbaccess;
using namespace ::com::sun::star;
namespace {
@@ -53,45 +53,39 @@ namespace dbaui
{
/// one of the items from dsitems.hxx
ItemID nItemID;
- const char* pAsciiFeatureName;
+ OUString pAsciiFeatureName;
};
- }
-
// global tables
- static const FeatureMapping* lcl_getFeatureMappings()
- {
- static const FeatureMapping s_aMappings[] = {
- { DSID_AUTORETRIEVEENABLED, "GeneratedValues" },
- { DSID_AUTOINCREMENTVALUE, "GeneratedValues" },
- { DSID_AUTORETRIEVEVALUE, "GeneratedValues" },
- { DSID_SQL92CHECK, "UseSQL92NamingConstraints" },
- { DSID_APPEND_TABLE_ALIAS, "AppendTableAliasInSelect" },
- { DSID_AS_BEFORE_CORRNAME, "UseKeywordAsBeforeAlias" },
- { DSID_ENABLEOUTERJOIN, "UseBracketedOuterJoinSyntax" },
- { DSID_IGNOREDRIVER_PRIV, "IgnoreDriverPrivileges" },
- { DSID_PARAMETERNAMESUBST, "ParameterNameSubstitution" },
- { DSID_SUPPRESSVERSIONCL, "DisplayVersionColumns" },
- { DSID_CATALOG, "UseCatalogInSelect" },
- { DSID_SCHEMA, "UseSchemaInSelect" },
- { DSID_INDEXAPPENDIX, "UseIndexDirectionKeyword" },
- { DSID_DOSLINEENDS, "UseDOSLineEnds" },
- { DSID_BOOLEANCOMPARISON, "BooleanComparisonMode" },
- { DSID_CHECK_REQUIRED_FIELDS, "FormsCheckRequiredFields" },
- { DSID_IGNORECURRENCY, "IgnoreCurrency" },
- { DSID_ESCAPE_DATETIME, "EscapeDateTime" },
- { DSID_PRIMARY_KEY_SUPPORT, "PrimaryKeySupport" },
- { DSID_RESPECTRESULTSETTYPE, "RespectDriverResultSetType" },
- { DSID_MAX_ROW_SCAN, "MaxRowScan" },
- { 0, nullptr }
- };
- return s_aMappings;
+ const FeatureMapping s_aMappings[] = {
+ { DSID_AUTORETRIEVEENABLED, u"GeneratedValues"_ustr },
+ { DSID_AUTOINCREMENTVALUE, u"GeneratedValues"_ustr },
+ { DSID_AUTORETRIEVEVALUE, u"GeneratedValues"_ustr },
+ { DSID_SQL92CHECK, u"UseSQL92NamingConstraints"_ustr },
+ { DSID_APPEND_TABLE_ALIAS, u"AppendTableAliasInSelect"_ustr },
+ { DSID_AS_BEFORE_CORRNAME, u"UseKeywordAsBeforeAlias"_ustr },
+ { DSID_ENABLEOUTERJOIN, u"UseBracketedOuterJoinSyntax"_ustr },
+ { DSID_IGNOREDRIVER_PRIV, u"IgnoreDriverPrivileges"_ustr },
+ { DSID_PARAMETERNAMESUBST, u"ParameterNameSubstitution"_ustr },
+ { DSID_SUPPRESSVERSIONCL, u"DisplayVersionColumns"_ustr },
+ { DSID_CATALOG, u"UseCatalogInSelect"_ustr },
+ { DSID_SCHEMA, u"UseSchemaInSelect"_ustr },
+ { DSID_INDEXAPPENDIX, u"UseIndexDirectionKeyword"_ustr },
+ { DSID_DOSLINEENDS, u"UseDOSLineEnds"_ustr },
+ { DSID_BOOLEANCOMPARISON, u"BooleanComparisonMode"_ustr },
+ { DSID_CHECK_REQUIRED_FIELDS, u"FormsCheckRequiredFields"_ustr },
+ { DSID_IGNORECURRENCY, u"IgnoreCurrency"_ustr },
+ { DSID_ESCAPE_DATETIME, u"EscapeDateTime"_ustr },
+ { DSID_PRIMARY_KEY_SUPPORT, u"PrimaryKeySupport"_ustr },
+ { DSID_RESPECTRESULTSETTYPE, u"RespectDriverResultSetType"_ustr },
+ { DSID_MAX_ROW_SCAN, u"MaxRowScan"_ustr },
+ };
}
static const FeatureSet& lcl_getFeatureSet( const OUString& _rURL )
{
typedef std::map< OUString, FeatureSet > FeatureSets;
- static FeatureSets s_aFeatureSets = [&]()
+ static FeatureSets s_aFeatureSets = []()
{
FeatureSets tmp;
::connectivity::DriversConfig aDriverConfig( ::comphelper::getProcessComponentContext() );
@@ -101,15 +95,13 @@ namespace dbaui
FeatureSet aCurrentSet;
const ::comphelper::NamedValueCollection aCurrentFeatures( aDriverConfig.getFeatures( pattern ).getNamedValues() );
- const FeatureMapping* pFeatureMapping = lcl_getFeatureMappings();
- while ( pFeatureMapping->pAsciiFeatureName )
+ for ( const FeatureMapping& rFeatureMapping : s_aMappings )
{
- if ( aCurrentFeatures.has( pFeatureMapping->pAsciiFeatureName ) )
- aCurrentSet.put( pFeatureMapping->nItemID );
- ++pFeatureMapping;
+ if ( aCurrentFeatures.has( rFeatureMapping.pAsciiFeatureName ) )
+ aCurrentSet.put( rFeatureMapping.nItemID );
}
- tmp[ pattern ] = aCurrentSet;
+ tmp[pattern] = std::move(aCurrentSet);
}
return tmp;
}();
@@ -120,27 +112,24 @@ namespace dbaui
static AuthenticationMode getAuthenticationMode( const OUString& _sURL )
{
- static std::map< OUString, FeatureSupport > s_aSupport = [&]()
+ static std::map< OUString, FeatureSupport > s_aSupport = []()
{
std::map< OUString, FeatureSupport > tmp;
::connectivity::DriversConfig aDriverConfig(::comphelper::getProcessComponentContext());
- const uno::Sequence< OUString > aURLs = aDriverConfig.getURLs();
- const OUString* pIter = aURLs.getConstArray();
- const OUString* pEnd = pIter + aURLs.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& url : aDriverConfig.getURLs())
{
FeatureSupport aInit( AuthNone );
- const ::comphelper::NamedValueCollection& aMetaData = aDriverConfig.getMetaData(*pIter);
- if ( aMetaData.has("Authentication") )
+ const ::comphelper::NamedValueCollection& aMetaData = aDriverConfig.getMetaData(url);
+ if ( aMetaData.has(u"Authentication"_ustr) )
{
OUString sAuth;
- aMetaData.get("Authentication") >>= sAuth;
+ aMetaData.get(u"Authentication"_ustr) >>= sAuth;
if ( sAuth == "UserPassword" )
aInit = FeatureSupport(AuthUserPwd);
else if ( sAuth == "Password" )
aInit = FeatureSupport(AuthPwd);
}
- tmp.insert(std::make_pair(*pIter,aInit));
+ tmp.insert(std::make_pair(url, aInit));
}
return tmp;
}();
@@ -148,26 +137,9 @@ namespace dbaui
return s_aSupport[ _sURL ].eAuthentication;
}
- // DataSourceMetaData_Impl
- class DataSourceMetaData_Impl
- {
- public:
- explicit DataSourceMetaData_Impl(const OUString& rURL);
-
- const OUString& getType() const { return m_sURL; }
-
- private:
- const OUString m_sURL;
- };
-
- DataSourceMetaData_Impl::DataSourceMetaData_Impl( const OUString& _sURL )
- :m_sURL( _sURL )
- {
- }
-
// DataSourceMetaData
DataSourceMetaData::DataSourceMetaData( const OUString& _sURL )
- :m_pImpl( std::make_shared<DataSourceMetaData_Impl>( _sURL ) )
+ :m_sURL( _sURL )
{
}
@@ -177,7 +149,7 @@ namespace dbaui
const FeatureSet& DataSourceMetaData::getFeatureSet() const
{
- return lcl_getFeatureSet( m_pImpl->getType() );
+ return lcl_getFeatureSet( m_sURL );
}
AuthenticationMode DataSourceMetaData::getAuthentication( const OUString& _sURL )
diff --git a/dbaccess/source/ui/misc/imageprovider.cxx b/dbaccess/source/ui/misc/imageprovider.cxx
index 585b87bc9294..6cba1b80ca30 100644
--- a/dbaccess/source/ui/misc/imageprovider.cxx
+++ b/dbaccess/source/ui/misc/imageprovider.cxx
@@ -25,7 +25,7 @@
#include <com/sun/star/sdb/application/DatabaseObject.hpp>
#include <com/sun/star/sdbcx/XViewsSupplier.hpp>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
namespace dbaui
{
@@ -43,26 +43,16 @@ namespace dbaui
namespace GraphicColorMode = css::graphic::GraphicColorMode;
namespace DatabaseObject = css::sdb::application::DatabaseObject;
- // ImageProvider_Data
- struct ImageProvider_Data
- {
- /// the connection we work with
- Reference< XConnection > xConnection;
- /// the views of the connection, if the DB supports views
- Reference< XNameAccess > xViews;
- /// interface for providing table's UI
- Reference< XTableUIProvider > xTableUI;
- };
-
namespace
{
- void lcl_getConnectionProvidedTableIcon_nothrow( const ImageProvider_Data& _rData,
+ void lcl_getConnectionProvidedTableIcon_nothrow(
+ const css::uno::Reference< css::sdb::application::XTableUIProvider >& _xTableUI,
const OUString& _rName, Reference< XGraphic >& _out_rxGraphic )
{
try
{
- if ( _rData.xTableUI.is() )
- _out_rxGraphic = _rData.xTableUI->getTableIcon( _rName, GraphicColorMode::NORMAL );
+ if ( _xTableUI.is() )
+ _out_rxGraphic = _xTableUI->getTableIcon( _rName, GraphicColorMode::NORMAL );
}
catch( const Exception& )
{
@@ -70,13 +60,15 @@ namespace dbaui
}
}
- void lcl_getTableImageResourceID_nothrow( const ImageProvider_Data& _rData, const OUString& _rName,
+ void lcl_getTableImageResourceID_nothrow(
+ const css::uno::Reference< css::container::XNameAccess >& _xViews,
+ const OUString& _rName,
OUString& _out_rResourceID)
{
_out_rResourceID = OUString();
try
{
- bool bIsView = _rData.xViews.is() && _rData.xViews->hasByName( _rName );
+ bool bIsView = _xViews.is() && _xViews->hasByName( _rName );
if ( bIsView )
{
_out_rResourceID = VIEW_TREE_ICON;
@@ -94,21 +86,19 @@ namespace dbaui
}
// ImageProvider
ImageProvider::ImageProvider()
- :m_pData( std::make_shared<ImageProvider_Data>() )
{
}
ImageProvider::ImageProvider( const Reference< XConnection >& _rxConnection )
- :m_pData( std::make_shared<ImageProvider_Data>() )
+ : mxConnection(_rxConnection)
{
- m_pData->xConnection = _rxConnection;
try
{
- Reference< XViewsSupplier > xSuppViews( m_pData->xConnection, UNO_QUERY );
+ Reference< XViewsSupplier > xSuppViews( mxConnection, UNO_QUERY );
if ( xSuppViews.is() )
- m_pData->xViews.set( xSuppViews->getViews(), UNO_SET_THROW );
+ mxViews.set( xSuppViews->getViews(), UNO_SET_THROW );
- m_pData->xTableUI.set( _rxConnection, UNO_QUERY );
+ mxTableUI.set( _rxConnection, UNO_QUERY );
}
catch( const Exception& )
{
@@ -116,33 +106,6 @@ namespace dbaui
}
}
- void ImageProvider::getImages( const OUString& _rName, const sal_Int32 _nDatabaseObjectType, Image& _out_rImage )
- {
- if ( _nDatabaseObjectType != DatabaseObject::TABLE )
- {
- // for types other than tables, the icon does not depend on the concrete object
- _out_rImage = getDefaultImage( _nDatabaseObjectType );
- }
- else
- {
- // check whether the connection can give us an icon
- Reference< XGraphic > xGraphic;
- lcl_getConnectionProvidedTableIcon_nothrow( *m_pData, _rName, xGraphic );
- if ( xGraphic.is() )
- _out_rImage = Image( xGraphic );
-
- if ( !_out_rImage )
- {
- // no -> determine by type
- OUString sImageResourceID;
- lcl_getTableImageResourceID_nothrow( *m_pData, _rName, sImageResourceID );
-
- if (!sImageResourceID.isEmpty() && !_out_rImage)
- _out_rImage = Image(StockImage::Yes, sImageResourceID);
- }
- }
- }
-
OUString ImageProvider::getImageId(const OUString& _rName, const sal_Int32 _nDatabaseObjectType)
{
if (_nDatabaseObjectType != DatabaseObject::TABLE)
@@ -154,7 +117,7 @@ namespace dbaui
{
// no -> determine by type
OUString sImageResourceID;
- lcl_getTableImageResourceID_nothrow( *m_pData, _rName, sImageResourceID );
+ lcl_getTableImageResourceID_nothrow( mxViews, _rName, sImageResourceID );
return sImageResourceID;
}
}
@@ -165,20 +128,11 @@ namespace dbaui
if (_nDatabaseObjectType == DatabaseObject::TABLE)
{
// check whether the connection can give us an icon
- lcl_getConnectionProvidedTableIcon_nothrow( *m_pData, _rName, xGraphic );
+ lcl_getConnectionProvidedTableIcon_nothrow( mxTableUI, _rName, xGraphic );
}
return xGraphic;
}
- Image ImageProvider::getDefaultImage( sal_Int32 _nDatabaseObjectType )
- {
- Image aObjectImage;
- OUString sImageResourceID( getDefaultImageResourceID( _nDatabaseObjectType) );
- if (!sImageResourceID.isEmpty())
- aObjectImage = Image(StockImage::Yes, sImageResourceID);
- return aObjectImage;
- }
-
OUString ImageProvider::getDefaultImageResourceID( sal_Int32 _nDatabaseObjectType)
{
OUString sImageResourceID;
@@ -228,7 +182,7 @@ namespace dbaui
return sImageResourceID;
}
- OUString ImageProvider::getDatabaseImage()
+ const OUString & ImageProvider::getDatabaseImage()
{
return DATABASE_TREE_ICON;
}
diff --git a/dbaccess/source/ui/misc/indexcollection.cxx b/dbaccess/source/ui/misc/indexcollection.cxx
index fb83377f1740..f61c68452be8 100644
--- a/dbaccess/source/ui/misc/indexcollection.cxx
+++ b/dbaccess/source/ui/misc/indexcollection.cxx
@@ -18,7 +18,7 @@
*/
#include <indexcollection.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/sdbcx/XAppend.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -122,10 +122,10 @@ namespace dbaui
}
// set the properties
- static const char s_sNamePropertyName[] = "Name";
+ static constexpr OUString s_sNamePropertyName = u"Name"_ustr;
// the index' own props
- xIndexDescriptor->setPropertyValue("IsUnique", css::uno::makeAny(_rPos->bUnique));
- xIndexDescriptor->setPropertyValue(s_sNamePropertyName, makeAny(_rPos->sName));
+ xIndexDescriptor->setPropertyValue(u"IsUnique"_ustr, css::uno::Any(_rPos->bUnique));
+ xIndexDescriptor->setPropertyValue(s_sNamePropertyName, Any(_rPos->sName));
// the fields
for (auto const& field : _rPos->aFields)
@@ -136,8 +136,8 @@ namespace dbaui
OSL_ENSURE(xColDescriptor.is(), "OIndexCollection::commitNewIndex: invalid column descriptor!");
if (xColDescriptor.is())
{
- xColDescriptor->setPropertyValue("IsAscending", css::uno::makeAny(field.bSortAscending));
- xColDescriptor->setPropertyValue(s_sNamePropertyName, makeAny(field.sFieldName));
+ xColDescriptor->setPropertyValue(u"IsAscending"_ustr, css::uno::Any(field.bSortAscending));
+ xColDescriptor->setPropertyValue(s_sNamePropertyName, Any(field.sFieldName));
xAppendCols->appendByDescriptor(xColDescriptor);
}
}
@@ -219,9 +219,9 @@ namespace dbaui
void OIndexCollection::implFillIndexInfo(OIndex& _rIndex, const Reference< XPropertySet >& _rxDescriptor)
{
- _rIndex.bPrimaryKey = ::cppu::any2bool(_rxDescriptor->getPropertyValue("IsPrimaryKeyIndex"));
- _rIndex.bUnique = ::cppu::any2bool(_rxDescriptor->getPropertyValue("IsUnique"));
- _rxDescriptor->getPropertyValue("Catalog") >>= _rIndex.sDescription;
+ _rIndex.bPrimaryKey = ::cppu::any2bool(_rxDescriptor->getPropertyValue(u"IsPrimaryKeyIndex"_ustr));
+ _rIndex.bUnique = ::cppu::any2bool(_rxDescriptor->getPropertyValue(u"IsUnique"_ustr));
+ _rxDescriptor->getPropertyValue(u"Catalog"_ustr) >>= _rIndex.sDescription;
// the columns
Reference< XColumnsSupplier > xSuppCols(_rxDescriptor, UNO_QUERY);
@@ -233,32 +233,25 @@ namespace dbaui
return;
Sequence< OUString > aFieldNames = xCols->getElementNames();
- _rIndex.aFields.resize(aFieldNames.getLength());
+ _rIndex.aFields.clear();
+ _rIndex.aFields.reserve(aFieldNames.getLength());
- const OUString* pFieldNames = aFieldNames.getConstArray();
- const OUString* pFieldNamesEnd = pFieldNames + aFieldNames.getLength();
- IndexFields::iterator aCopyTo = _rIndex.aFields.begin();
-
- Reference< XPropertySet > xIndexColumn;
- for (;pFieldNames < pFieldNamesEnd; ++pFieldNames, ++aCopyTo)
+ for (auto& fieldName : aFieldNames)
{
// extract the column
- xIndexColumn.clear();
- xCols->getByName(*pFieldNames) >>= xIndexColumn;
+ Reference<XPropertySet> xIndexColumn;
+ xCols->getByName(fieldName) >>= xIndexColumn;
if (!xIndexColumn.is())
{
OSL_FAIL("OIndexCollection::implFillIndexInfo: invalid index column!");
- --aCopyTo;
continue;
}
// get the relevant properties
- aCopyTo->sFieldName = *pFieldNames;
- aCopyTo->bSortAscending = ::cppu::any2bool(xIndexColumn->getPropertyValue("IsAscending"));
+ _rIndex.aFields.push_back({ .sFieldName = fieldName,
+ .bSortAscending = cppu::any2bool(
+ xIndexColumn->getPropertyValue(u"IsAscending"_ustr)) });
}
-
- _rIndex.aFields.resize(aCopyTo - _rIndex.aFields.begin());
- // (just in case some fields were invalid ...)
}
void OIndexCollection::resetIndex(const Indexes::iterator& _rPos)
@@ -302,14 +295,11 @@ namespace dbaui
return;
// loop through all the indexes
- Sequence< OUString > aNames = m_xIndexes->getElementNames();
- const OUString* pNames = aNames.getConstArray();
- const OUString* pEnd = pNames + aNames.getLength();
- for (; pNames < pEnd; ++pNames)
+ for (auto& name : m_xIndexes->getElementNames())
{
// extract the index object
Reference< XPropertySet > xIndex;
- m_xIndexes->getByName(*pNames) >>= xIndex;
+ m_xIndexes->getByName(name) >>= xIndex;
if (!xIndex.is())
{
OSL_FAIL("OIndexCollection::implConstructFrom: got an invalid index object ... ignoring!");
@@ -317,8 +307,8 @@ namespace dbaui
}
// fill the OIndex structure
- OIndex aCurrentIndex(*pNames);
- implFillIndexInfo(aCurrentIndex);
+ OIndex aCurrentIndex(name);
+ implFillIndexInfo(aCurrentIndex, xIndex);
m_aIndexes.push_back(aCurrentIndex);
}
}
diff --git a/dbaccess/source/ui/misc/linkeddocuments.cxx b/dbaccess/source/ui/misc/linkeddocuments.cxx
index 13effe4ccd93..03b44d955de2 100644
--- a/dbaccess/source/ui/misc/linkeddocuments.cxx
+++ b/dbaccess/source/ui/misc/linkeddocuments.cxx
@@ -20,7 +20,7 @@
#include <core_resource.hxx>
#include <linkeddocuments.hxx>
#include <osl/diagnose.h>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/confignode.hxx>
#include <comphelper/classids.hxx>
#include <comphelper/namedvaluecollection.hxx>
@@ -38,6 +38,7 @@
#include <browserids.hxx>
#include <com/sun/star/container/XHierarchicalNameContainer.hpp>
#include <comphelper/mimeconfighelper.hxx>
+#include <utility>
#include <vcl/weld.hxx>
#include <cppuhelper/exc_hlp.hxx>
@@ -51,13 +52,10 @@ namespace dbaui
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::frame;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::util;
using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb::application;
using namespace ::com::sun::star::task;
- using namespace ::svt;
namespace
{
@@ -65,24 +63,22 @@ namespace dbaui
sal_uInt8 b8, sal_uInt8 b9, sal_uInt8 b10, sal_uInt8 b11,
sal_uInt8 b12, sal_uInt8 b13, sal_uInt8 b14, sal_uInt8 b15 )
{
- Sequence< sal_Int8 > aResult( 16 );
- aResult[0] = static_cast<sal_Int8>(n1 >> 24);
- aResult[1] = static_cast<sal_Int8>(( n1 << 8 ) >> 24);
- aResult[2] = static_cast<sal_Int8>(( n1 << 16 ) >> 24);
- aResult[3] = static_cast<sal_Int8>(( n1 << 24 ) >> 24);
- aResult[4] = static_cast<sal_Int8>(n2 >> 8);
- aResult[5] = static_cast<sal_Int8>(( n2 << 8 ) >> 8);
- aResult[6] = static_cast<sal_Int8>(n3 >> 8);
- aResult[7] = static_cast<sal_Int8>(( n3 << 8 ) >> 8);
- aResult[8] = b8;
- aResult[9] = b9;
- aResult[10] = b10;
- aResult[11] = b11;
- aResult[12] = b12;
- aResult[13] = b13;
- aResult[14] = b14;
- aResult[15] = b15;
-
+ Sequence< sal_Int8 > aResult{ /* [ 0] */ static_cast<sal_Int8>(n1 >> 24),
+ /* [ 1] */ static_cast<sal_Int8>(( n1 << 8 ) >> 24),
+ /* [ 2] */ static_cast<sal_Int8>(( n1 << 16 ) >> 24),
+ /* [ 3] */ static_cast<sal_Int8>(( n1 << 24 ) >> 24),
+ /* [ 4] */ static_cast<sal_Int8>(n2 >> 8),
+ /* [ 5] */ static_cast<sal_Int8>(( n2 << 8 ) >> 8),
+ /* [ 6] */ static_cast<sal_Int8>(n3 >> 8),
+ /* [ 7] */ static_cast<sal_Int8>(( n3 << 8 ) >> 8),
+ /* [ 8] */ static_cast<sal_Int8>(b8),
+ /* [ 9] */ static_cast<sal_Int8>(b9),
+ /* [10] */ static_cast<sal_Int8>(b10),
+ /* [11] */ static_cast<sal_Int8>(b11),
+ /* [12] */ static_cast<sal_Int8>(b12),
+ /* [13] */ static_cast<sal_Int8>(b13),
+ /* [14] */ static_cast<sal_Int8>(b14),
+ /* [15] */ static_cast<sal_Int8>(b15) };
return aResult;
}
}
@@ -90,13 +86,13 @@ namespace dbaui
// OLinkedDocumentsAccess
OLinkedDocumentsAccess::OLinkedDocumentsAccess( weld::Window* pDialogParent, const Reference< XDatabaseDocumentUI >& i_rDocumentUI,
const Reference< XComponentContext >& _rxContext, const Reference< XNameAccess >& _rxContainer,
- const Reference< XConnection>& _xConnection, const OUString& _sDataSourceName )
+ const Reference< XConnection>& _xConnection, OUString _sDataSourceName )
:m_xContext(_rxContext)
,m_xDocumentContainer(_rxContainer)
,m_xConnection(_xConnection)
,m_xDocumentUI( i_rDocumentUI )
,m_pDialogParent(pDialogParent)
- ,m_sDataSourceName(_sDataSourceName)
+ ,m_sDataSourceName(std::move(_sDataSourceName))
{
OSL_ENSURE(m_xContext.is(), "OLinkedDocumentsAccess::OLinkedDocumentsAccess: invalid service factory!");
assert(m_pDialogParent && "OLinkedDocumentsAccess::OLinkedDocumentsAccess: really need a dialog parent!");
@@ -119,15 +115,15 @@ namespace dbaui
OUString sOpenMode;
switch ( _eOpenMode )
{
- case E_OPEN_NORMAL:
+ case ElementOpenMode::Normal:
sOpenMode = "open";
break;
- case E_OPEN_FOR_MAIL:
- aArguments.put( "Hidden", true );
+ case ElementOpenMode::Mail:
+ aArguments.put( u"Hidden"_ustr, true );
[[fallthrough]];
- case E_OPEN_DESIGN:
+ case ElementOpenMode::Design:
sOpenMode = "openDesign";
break;
@@ -135,9 +131,9 @@ namespace dbaui
OSL_FAIL( "OLinkedDocumentsAccess::implOpen: invalid open mode!" );
break;
}
- aArguments.put( "OpenMode", sOpenMode );
+ aArguments.put( u"OpenMode"_ustr, sOpenMode );
- aArguments.put( OUString(PROPERTY_ACTIVE_CONNECTION), m_xConnection );
+ aArguments.put( PROPERTY_ACTIVE_CONNECTION, m_xConnection );
Reference<XHierarchicalNameContainer> xHier(m_xDocumentContainer,UNO_QUERY);
if ( xHier.is() && xHier->hasByHierarchicalName(_rLinkName) )
@@ -157,18 +153,18 @@ namespace dbaui
try
{
::comphelper::NamedValueCollection aArgs;
- aArgs.put( "DataSourceName", m_sDataSourceName );
+ aArgs.put( u"DataSourceName"_ustr, m_sDataSourceName );
if ( m_xConnection.is() )
- aArgs.put( "ActiveConnection", m_xConnection );
+ aArgs.put( u"ActiveConnection"_ustr, m_xConnection );
if ( !_rObjectName.isEmpty() && ( _nCommandType != -1 ) )
{
- aArgs.put( "CommandType", _nCommandType );
- aArgs.put( "Command", _rObjectName );
+ aArgs.put( u"CommandType"_ustr, _nCommandType );
+ aArgs.put( u"Command"_ustr, _rObjectName );
}
- aArgs.put( "DocumentUI", m_xDocumentUI );
+ aArgs.put( u"DocumentUI"_ustr, m_xDocumentUI );
Reference< XJobExecutor > xWizard;
{
@@ -180,7 +176,7 @@ namespace dbaui
), UNO_QUERY_THROW );
}
- xWizard->trigger( "start" );
+ xWizard->trigger( u"start"_ustr );
::comphelper::disposeComponent( xWizard );
}
catch(const Exception&)
@@ -211,9 +207,9 @@ namespace dbaui
OSL_ENSURE(m_xDocumentContainer.is(), "OLinkedDocumentsAccess::newDocument: invalid document container!");
// determine the class ID to use for the new document
Sequence<sal_Int8> aClassId;
- if ( !i_rCreationArgs.has( "ClassID" )
- && !i_rCreationArgs.has( "MediaType" )
- && !i_rCreationArgs.has( "DocumentServiceName" )
+ if ( !i_rCreationArgs.has( u"ClassID"_ustr )
+ && !i_rCreationArgs.has( u"MediaType"_ustr )
+ && !i_rCreationArgs.has( u"DocumentServiceName"_ustr )
)
{
switch ( i_nActionID )
@@ -252,15 +248,15 @@ namespace dbaui
{
::comphelper::NamedValueCollection aCreationArgs( i_rCreationArgs );
if ( aClassId.hasElements() )
- aCreationArgs.put( "ClassID", aClassId );
- aCreationArgs.put( OUString(PROPERTY_ACTIVE_CONNECTION), m_xConnection );
+ aCreationArgs.put( u"ClassID"_ustr, aClassId );
+ aCreationArgs.put( PROPERTY_ACTIVE_CONNECTION, m_xConnection );
// separate values which are real creation args from args relevant for opening the doc
::comphelper::NamedValueCollection aCommandArgs;
- if ( aCreationArgs.has( "Hidden" ) )
+ if ( aCreationArgs.has( u"Hidden"_ustr ) )
{
- aCommandArgs.put( "Hidden", aCreationArgs.get( "Hidden" ) );
- aCreationArgs.remove( "Hidden" );
+ aCommandArgs.put( u"Hidden"_ustr, aCreationArgs.get( u"Hidden"_ustr ) );
+ aCreationArgs.remove( u"Hidden"_ustr );
}
Reference< XCommandProcessor > xContent( xORB->createInstanceWithArguments(
@@ -274,7 +270,7 @@ namespace dbaui
// put the OpenMode into the OpenArgs
OpenCommandArgument aOpenModeArg;
aOpenModeArg.Mode = OpenMode::DOCUMENT;
- aCommandArgs.put( "OpenMode", aOpenModeArg );
+ aCommandArgs.put( u"OpenMode"_ustr, aOpenModeArg );
Command aCommand;
aCommand.Name = "openDesign";
@@ -304,16 +300,13 @@ namespace dbaui
OUString sMessage = DBA_RES(STR_COULDNOTOPEN_LINKEDDOC);
sMessage = sMessage.replaceFirst("$file$",_rLinkName);
- css::sdbc::SQLException aSQLException;
- aSQLException.Message = sMessage;
+ css::sdbc::SQLException aSQLException(sMessage, {}, {}, 0, {});
aInfo = dbtools::SQLExceptionInfo(aSQLException);
}
}
catch(const css::io::WrongFormatException &e)
{
- css::sdbc::SQLException aSQLException;
- aSQLException.Message = e.Message;
- aSQLException.Context = e.Context;
+ css::sdbc::SQLException aSQLException(e.Message, e.Context, {}, 0, {});
aInfo = dbtools::SQLExceptionInfo(aSQLException);
// more like a hack, insert an empty message
@@ -331,13 +324,11 @@ namespace dbaui
css::sdbc::SQLException a;
if ( !(aAny >>= a) || (a.ErrorCode != dbtools::ParameterInteractionCancelled) )
{
- css::sdbc::SQLException aSQLException;
- aSQLException.Message = e.Message;
- aSQLException.Context = e.Context;
+ css::sdbc::SQLException aSQLException(e.Message, e.Context, {}, 0, {});
aInfo = dbtools::SQLExceptionInfo(aSQLException);
// more like a hack, insert an empty message
- aInfo.prepend(" \n");
+ aInfo.prepend(u" \n"_ustr);
OUString sMessage = DBA_RES(STR_COULDNOTOPEN_LINKEDDOC);
sMessage = sMessage.replaceFirst("$file$",_rLinkName);
diff --git a/dbaccess/source/ui/misc/singledoccontroller.cxx b/dbaccess/source/ui/misc/singledoccontroller.cxx
index c07da46c955f..6f58676629d0 100644
--- a/dbaccess/source/ui/misc/singledoccontroller.cxx
+++ b/dbaccess/source/ui/misc/singledoccontroller.cxx
@@ -35,22 +35,10 @@ namespace dbaui
using ::com::sun::star::document::XUndoManager;
using ::com::sun::star::beans::PropertyValue;
- // OSingleDocumentController_Data
- struct OSingleDocumentController_Data
- {
- // no Reference! see UndoManager::acquire
- std::unique_ptr<UndoManager> m_pUndoManager;
-
- OSingleDocumentController_Data( ::cppu::OWeakObject& i_parent, ::osl::Mutex& i_mutex )
- : m_pUndoManager(new UndoManager(i_parent, i_mutex))
- {
- }
- };
-
// OSingleDocumentController
OSingleDocumentController::OSingleDocumentController( const Reference< XComponentContext >& _rxORB )
:OSingleDocumentController_Base( _rxORB )
- ,m_pData( new OSingleDocumentController_Data( *this, getMutex() ) )
+ ,m_pUndoManager(new UndoManager(*this, getMutex()))
{
}
@@ -62,7 +50,7 @@ namespace dbaui
{
OSingleDocumentController_Base::disposing();
ClearUndoManager();
- m_pData->m_pUndoManager->disposing();
+ m_pUndoManager->disposing();
}
void OSingleDocumentController::ClearUndoManager()
@@ -72,7 +60,7 @@ namespace dbaui
SfxUndoManager& OSingleDocumentController::GetUndoManager() const
{
- return m_pData->m_pUndoManager->GetSfxUndoManager();
+ return m_pUndoManager->GetSfxUndoManager();
}
void OSingleDocumentController::addUndoActionAndInvalidate(std::unique_ptr<SfxUndoAction> _pAction)
@@ -91,7 +79,7 @@ namespace dbaui
Reference< XUndoManager > SAL_CALL OSingleDocumentController::getUndoManager( )
{
// see UndoManager::acquire
- return m_pData->m_pUndoManager.get();
+ return m_pUndoManager.get();
}
FeatureState OSingleDocumentController::GetState(sal_uInt16 _nId) const
@@ -123,8 +111,9 @@ namespace dbaui
{
size_t nCount(GetUndoManager().GetUndoActionCount());
Sequence<OUString> aSeq(nCount);
+ auto aSeqRange = asNonConstRange(aSeq);
for (size_t n = 0; n < nCount; ++n)
- aSeq[n] = GetUndoManager().GetUndoActionComment(n);
+ aSeqRange[n] = GetUndoManager().GetUndoActionComment(n);
aReturn.aValue <<= aSeq;
aReturn.bEnabled = true;
break;
@@ -134,8 +123,9 @@ namespace dbaui
{
size_t nCount(GetUndoManager().GetRedoActionCount());
Sequence<OUString> aSeq(nCount);
+ auto aSeqRange = asNonConstRange(aSeq);
for (size_t n = 0; n < nCount; ++n)
- aSeq[n] = GetUndoManager().GetRedoActionComment(n);
+ aSeqRange[n] = GetUndoManager().GetRedoActionComment(n);
aReturn.aValue <<= aSeq;
aReturn.bEnabled = true;
break;
diff --git a/dbaccess/source/ui/misc/stringlistitem.cxx b/dbaccess/source/ui/misc/stringlistitem.cxx
index c5da8c21968e..97e75fe6d4b6 100644
--- a/dbaccess/source/ui/misc/stringlistitem.cxx
+++ b/dbaccess/source/ui/misc/stringlistitem.cxx
@@ -21,19 +21,18 @@
namespace dbaui
{
-
using namespace ::com::sun::star::uno;
// OStringListItem
-OStringListItem::OStringListItem(sal_Int16 _nWhich, const Sequence< OUString >& _rList)
- :SfxPoolItem(_nWhich)
- ,m_aList(_rList)
+OStringListItem::OStringListItem(sal_Int16 _nWhich, const Sequence<OUString>& _rList)
+ : SfxPoolItem(_nWhich)
+ , m_aList(_rList)
{
}
OStringListItem::OStringListItem(const OStringListItem& _rSource)
- :SfxPoolItem(_rSource)
- ,m_aList(_rSource.m_aList)
+ : SfxPoolItem(_rSource)
+ , m_aList(_rSource.m_aList)
{
}
@@ -41,12 +40,12 @@ bool OStringListItem::operator==(const SfxPoolItem& _rItem) const
{
if (!SfxPoolItem::operator==(_rItem))
return false;
- const OStringListItem* pCompare = static_cast<const OStringListItem*>( &_rItem );
+ const OStringListItem* pCompare = static_cast<const OStringListItem*>(&_rItem);
if (pCompare->m_aList.getLength() != m_aList.getLength())
return false;
// compare all strings individually
- for (sal_Int32 i=0; i<m_aList.getLength(); ++i)
+ for (sal_Int32 i = 0; i < m_aList.getLength(); ++i)
if (m_aList[i] != pCompare->m_aList[i])
return false;
@@ -58,6 +57,6 @@ OStringListItem* OStringListItem::Clone(SfxItemPool* /* _pPool */) const
return new OStringListItem(*this);
}
-} // namespace dbaui
+} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/ConnectionLine.cxx b/dbaccess/source/ui/querydesign/ConnectionLine.cxx
index 96086d60b682..b22a05424df3 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLine.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLine.cxx
@@ -22,6 +22,7 @@
#include <TableWindow.hxx>
#include <TableWindowListBox.hxx>
#include <TableConnection.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <math.h>
#include <osl/diagnose.h>
@@ -121,9 +122,9 @@ namespace
}
}
-OConnectionLine::OConnectionLine( OTableConnection* _pConn, OConnectionLineDataRef const & _pLineData )
+OConnectionLine::OConnectionLine( OTableConnection* _pConn, OConnectionLineDataRef _pLineData )
: m_pTabConn( _pConn )
- , m_pData( _pLineData )
+ , m_pData(std::move( _pLineData ))
{
}
@@ -307,7 +308,7 @@ static double dist_Euklid(const Point &p1, const Point& p2,const Point& pM, Poin
{
Point v(p2 - p1);
Point w(pM - p1);
- double a = sqrt(static_cast<double>(v.X()*v.X() + v.Y()*v.Y()));
+ double a = std::hypot(v.X(), v.Y());
double l = (v.X() * w.Y() - v.Y() * w.X()) / a;
double a2 = w.X()*v.X()+w.Y()*v.Y();
a = a2 / (a * a);
diff --git a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
index 763e53990276..a45993a5721d 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
@@ -25,18 +25,16 @@
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <TableConnection.hxx>
#include <TableWindow.hxx>
-#include <comphelper/sequence.hxx>
namespace dbaui
{
using namespace ::com::sun::star::accessibility;
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star;
OConnectionLineAccess::OConnectionLineAccess(OTableConnection* _pLine)
- : VCLXAccessibleComponent(_pLine->GetComponentInterface().is() ? _pLine->GetWindowPeer() : nullptr)
+ : ImplInheritanceHelper(_pLine)
,m_pLine(_pLine)
{
}
@@ -45,32 +43,23 @@ namespace dbaui
m_pLine = nullptr;
VCLXAccessibleComponent::disposing();
}
- Any SAL_CALL OConnectionLineAccess::queryInterface( const Type& aType )
- {
- Any aRet(VCLXAccessibleComponent::queryInterface( aType ));
- return aRet.hasValue() ? aRet : OConnectionLineAccess_BASE::queryInterface( aType );
- }
- Sequence< Type > SAL_CALL OConnectionLineAccess::getTypes( )
- {
- return ::comphelper::concatSequences(VCLXAccessibleComponent::getTypes(),OConnectionLineAccess_BASE::getTypes());
- }
OUString SAL_CALL OConnectionLineAccess::getImplementationName()
{
- return "org.openoffice.comp.dbu.ConnectionLineAccessibility";
+ return u"org.openoffice.comp.dbu.ConnectionLineAccessibility"_ustr;
}
// XAccessibleContext
- sal_Int32 SAL_CALL OConnectionLineAccess::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL OConnectionLineAccess::getAccessibleChildCount( )
{
return 0;
}
- Reference< XAccessible > SAL_CALL OConnectionLineAccess::getAccessibleChild( sal_Int32 /*i*/ )
+ Reference< XAccessible > SAL_CALL OConnectionLineAccess::getAccessibleChild( sal_Int64 /*i*/ )
{
return Reference< XAccessible >();
}
- sal_Int32 SAL_CALL OConnectionLineAccess::getAccessibleIndexInParent( )
+ sal_Int64 SAL_CALL OConnectionLineAccess::getAccessibleIndexInParent( )
{
::osl::MutexGuard aGuard( m_aMutex );
- sal_Int32 nIndex = -1;
+ sal_Int64 nIndex = -1;
if( m_pLine )
{
// search the position of our table window in the table window map
@@ -97,7 +86,7 @@ namespace dbaui
}
OUString SAL_CALL OConnectionLineAccess::getAccessibleDescription( )
{
- return "Relation";
+ return u"Relation"_ustr;
}
Reference< XAccessibleRelationSet > SAL_CALL OConnectionLineAccess::getAccessibleRelationSet( )
{
@@ -109,30 +98,13 @@ namespace dbaui
{
return Reference< XAccessible >();
}
- awt::Rectangle SAL_CALL OConnectionLineAccess::getBounds( )
+
+ awt::Rectangle OConnectionLineAccess::implGetBounds()
{
- ::osl::MutexGuard aGuard( m_aMutex );
tools::Rectangle aRect(m_pLine ? m_pLine->GetBoundingRect() : tools::Rectangle());
- return awt::Rectangle(aRect.getX(),aRect.getY(),aRect.getWidth(),aRect.getHeight());
- }
- awt::Point SAL_CALL OConnectionLineAccess::getLocation( )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- Point aPoint(m_pLine ? m_pLine->GetBoundingRect().TopLeft() : Point());
- return awt::Point(aPoint.X(),aPoint.Y());
- }
- awt::Point SAL_CALL OConnectionLineAccess::getLocationOnScreen( )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- Point aPoint(m_pLine ? m_pLine->GetParent()->ScreenToOutputPixel(m_pLine->GetBoundingRect().TopLeft()) : Point());
- return awt::Point(aPoint.X(),aPoint.Y());
- }
- awt::Size SAL_CALL OConnectionLineAccess::getSize( )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- Size aSize(m_pLine ? m_pLine->GetBoundingRect().GetSize() : Size());
- return awt::Size(aSize.Width(),aSize.Height());
+ return awt::Rectangle(aRect.Left(),aRect.Top(),aRect.getOpenWidth(),aRect.getOpenHeight());
}
+
// XAccessibleRelationSet
sal_Int32 SAL_CALL OConnectionLineAccess::getRelationCount( )
{
@@ -144,22 +116,22 @@ namespace dbaui
if( nIndex < 0 || nIndex >= getRelationCount() )
throw IndexOutOfBoundsException();
- Sequence< Reference<XInterface> > aSeq(m_pLine ? 2 : 0);
+ Sequence<Reference<XAccessible>> aSeq;
if( m_pLine )
{
- aSeq[0] = m_pLine->GetSourceWin()->GetAccessible();
- aSeq[1] = m_pLine->GetDestWin()->GetAccessible();
+ aSeq = { m_pLine->GetSourceWin()->GetAccessible(),
+ m_pLine->GetDestWin()->GetAccessible() };
}
- return AccessibleRelation(AccessibleRelationType::CONTROLLED_BY,aSeq);
+ return AccessibleRelation(AccessibleRelationType_CONTROLLED_BY,aSeq);
}
- sal_Bool SAL_CALL OConnectionLineAccess::containsRelation( sal_Int16 aRelationType )
+ sal_Bool SAL_CALL OConnectionLineAccess::containsRelation(AccessibleRelationType eRelationType)
{
- return AccessibleRelationType::CONTROLLED_BY == aRelationType;
+ return AccessibleRelationType_CONTROLLED_BY == eRelationType;
}
- AccessibleRelation SAL_CALL OConnectionLineAccess::getRelationByType( sal_Int16 aRelationType )
+ AccessibleRelation SAL_CALL OConnectionLineAccess::getRelationByType(AccessibleRelationType eRelationType)
{
- if( AccessibleRelationType::CONTROLLED_BY == aRelationType )
+ if (AccessibleRelationType_CONTROLLED_BY == eRelationType)
return getRelation(0);
return AccessibleRelation();
}
@@ -175,13 +147,9 @@ namespace dbaui
{
// clear vector
clearLineData();
- m_pParent.clear();
+ m_pParent.reset();
vcl::Window::dispose();
}
- Reference< XAccessibleContext > SAL_CALL OConnectionLineAccess::getAccessibleContext( )
- {
- return this;
- }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/ConnectionLineData.cxx b/dbaccess/source/ui/querydesign/ConnectionLineData.cxx
index db7177294e64..8267cc3ed8c2 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLineData.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLineData.cxx
@@ -18,15 +18,16 @@
*/
#include <ConnectionLineData.hxx>
+#include <utility>
using namespace dbaui;
OConnectionLineData::OConnectionLineData()
{
}
-OConnectionLineData::OConnectionLineData( const OUString& rSourceFieldName, const OUString& rDestFieldName )
- :m_aSourceFieldName( rSourceFieldName )
- ,m_aDestFieldName( rDestFieldName )
+OConnectionLineData::OConnectionLineData( OUString sSourceFieldName, OUString sDestFieldName )
+ :m_aSourceFieldName(std::move( sSourceFieldName ))
+ ,m_aDestFieldName(std::move( sDestFieldName ))
{
}
diff --git a/dbaccess/source/ui/querydesign/JAccess.cxx b/dbaccess/source/ui/querydesign/JAccess.cxx
index 8068f0fa7f21..1104cefb023f 100644
--- a/dbaccess/source/ui/querydesign/JAccess.cxx
+++ b/dbaccess/source/ui/querydesign/JAccess.cxx
@@ -29,17 +29,16 @@ namespace dbaui
{
using namespace ::com::sun::star::accessibility;
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
OJoinDesignViewAccess::OJoinDesignViewAccess(OJoinTableView* _pTableView)
- :VCLXAccessibleComponent(_pTableView->GetComponentInterface().is() ? _pTableView->GetWindowPeer() : nullptr)
- ,m_pTableView(_pTableView)
+ : VCLXAccessibleComponent(_pTableView)
+ , m_pTableView(_pTableView)
{
}
OUString SAL_CALL OJoinDesignViewAccess::getImplementationName()
{
- return "org.openoffice.comp.dbu.JoinViewAccessibility";
+ return u"org.openoffice.comp.dbu.JoinViewAccessibility"_ustr;
}
void OJoinDesignViewAccess::clearTableView()
{
@@ -47,24 +46,24 @@ namespace dbaui
m_pTableView = nullptr;
}
// XAccessibleContext
- sal_Int32 SAL_CALL OJoinDesignViewAccess::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL OJoinDesignViewAccess::getAccessibleChildCount( )
{
// TODO may be this will change to only visible windows
// this is the same assumption mt implements
::osl::MutexGuard aGuard( m_aMutex );
- sal_Int32 nChildCount = 0;
+ sal_Int64 nChildCount = 0;
if ( m_pTableView )
nChildCount = m_pTableView->GetTabWinCount() + m_pTableView->getTableConnections().size();
return nChildCount;
}
- Reference< XAccessible > SAL_CALL OJoinDesignViewAccess::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > SAL_CALL OJoinDesignViewAccess::getAccessibleChild( sal_Int64 i )
{
Reference< XAccessible > aRet;
::osl::MutexGuard aGuard( m_aMutex );
if(i < 0 || i >= getAccessibleChildCount() || !m_pTableView)
throw IndexOutOfBoundsException();
// check if we should return a table window or a connection
- sal_Int32 nTableWindowCount = m_pTableView->GetTabWinCount();
+ sal_Int64 nTableWindowCount = m_pTableView->GetTabWinCount();
if( i < nTableWindowCount )
{
OJoinTableView::OTableWindowMap::const_iterator aIter = std::next(m_pTableView->GetTabWinMap().begin(), i);
@@ -78,14 +77,6 @@ namespace dbaui
{
return AccessibleRole::VIEW_PORT;
}
- Reference< XAccessibleContext > SAL_CALL OJoinDesignViewAccess::getAccessibleContext( )
- {
- return this;
- }
- // XInterface
- IMPLEMENT_FORWARD_XINTERFACE2( OJoinDesignViewAccess, VCLXAccessibleComponent, OJoinDesignViewAccess_BASE )
- // XTypeProvider
- IMPLEMENT_FORWARD_XTYPEPROVIDER2( OJoinDesignViewAccess, VCLXAccessibleComponent, OJoinDesignViewAccess_BASE )
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/JoinController.cxx b/dbaccess/source/ui/querydesign/JoinController.cxx
index 114f77d99865..cac9082a0903 100644
--- a/dbaccess/source/ui/querydesign/JoinController.cxx
+++ b/dbaccess/source/ui/querydesign/JoinController.cxx
@@ -34,12 +34,8 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::ui::dialogs;
using namespace ::dbtools;
using namespace ::comphelper;
@@ -204,6 +200,7 @@ AddTableDialogContext& OJoinController::impl_getDialogContext() const
OJoinController* pNonConstThis = const_cast< OJoinController* >( this );
pNonConstThis->m_pDialogContext.reset( new AddTableDialogContext( *pNonConstThis ) );
}
+ assert(m_pDialogContext && "always exists at this point");
return *m_pDialogContext;
}
@@ -277,19 +274,19 @@ void OJoinController::SaveTabWinsPosSize( OJoinTableView::OTableWindowMap* pTabW
void OJoinController::removeConnectionData(const TTableConnectionData::value_type& _pData)
{
- m_vTableConnectionData.erase( std::remove(m_vTableConnectionData.begin(),m_vTableConnectionData.end(),_pData),m_vTableConnectionData.end());
+ std::erase(m_vTableConnectionData, _pData);
}
void OJoinController::describeSupportedFeatures()
{
OJoinController_BASE::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:Redo", ID_BROWSER_REDO, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Save", ID_BROWSER_SAVEDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:Undo", ID_BROWSER_UNDO, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:AddTable", ID_BROWSER_ADDTABLE,CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:EditDoc", ID_BROWSER_EDITDOC, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:GetUndoStrings", SID_GETUNDOSTRINGS );
- implDescribeSupportedFeature( ".uno:GetRedoStrings", SID_GETREDOSTRINGS );
+ implDescribeSupportedFeature( u".uno:Redo"_ustr, ID_BROWSER_REDO, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Save"_ustr, ID_BROWSER_SAVEDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:Undo"_ustr, ID_BROWSER_UNDO, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:AddTable"_ustr, ID_BROWSER_ADDTABLE,CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:EditDoc"_ustr, ID_BROWSER_EDITDOC, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:GetUndoStrings"_ustr, SID_GETUNDOSTRINGS );
+ implDescribeSupportedFeature( u".uno:GetRedoStrings"_ustr, SID_GETREDOSTRINGS );
}
sal_Bool SAL_CALL OJoinController::suspend(sal_Bool _bSuspend)
@@ -317,14 +314,9 @@ void OJoinController::loadTableWindows( const ::comphelper::NamedValueCollection
m_aMinimumTableViewSize = Point();
- Sequence< PropertyValue > aWindowData;
- aWindowData = i_rViewSettings.getOrDefault( "Tables", aWindowData );
-
- const PropertyValue* pTablesIter = aWindowData.getConstArray();
- const PropertyValue* pTablesEnd = pTablesIter + aWindowData.getLength();
- for ( ; pTablesIter != pTablesEnd; ++pTablesIter )
+ for (auto& table : i_rViewSettings.getOrDefault(u"Tables"_ustr, Sequence<PropertyValue>()))
{
- ::comphelper::NamedValueCollection aSingleTableData( pTablesIter->Value );
+ ::comphelper::NamedValueCollection aSingleTableData(table.Value);
loadTableWindow( aSingleTableData );
}
if ( m_aMinimumTableViewSize != Point() )
@@ -340,14 +332,14 @@ void OJoinController::loadTableWindow( const ::comphelper::NamedValueCollection&
OUString sComposedName,sTableName,sWindowName;
bool bShowAll = false;
- sComposedName = i_rTableWindowSettings.getOrDefault( "ComposedName", sComposedName );
- sTableName = i_rTableWindowSettings.getOrDefault( "TableName", sTableName );
- sWindowName = i_rTableWindowSettings.getOrDefault( "WindowName", sWindowName );
- nY = i_rTableWindowSettings.getOrDefault( "WindowTop", nY );
- nX = i_rTableWindowSettings.getOrDefault( "WindowLeft", nX );
- nWidth = i_rTableWindowSettings.getOrDefault( "WindowWidth", nWidth );
- nHeight = i_rTableWindowSettings.getOrDefault( "WindowHeight", nHeight );
- bShowAll = i_rTableWindowSettings.getOrDefault( "ShowAll", bShowAll );
+ sComposedName = i_rTableWindowSettings.getOrDefault( u"ComposedName"_ustr, sComposedName );
+ sTableName = i_rTableWindowSettings.getOrDefault( u"TableName"_ustr, sTableName );
+ sWindowName = i_rTableWindowSettings.getOrDefault( u"WindowName"_ustr, sWindowName );
+ nY = i_rTableWindowSettings.getOrDefault( u"WindowTop"_ustr, nY );
+ nX = i_rTableWindowSettings.getOrDefault( u"WindowLeft"_ustr, nX );
+ nWidth = i_rTableWindowSettings.getOrDefault( u"WindowWidth"_ustr, nWidth );
+ nHeight = i_rTableWindowSettings.getOrDefault( u"WindowHeight"_ustr, nHeight );
+ bShowAll = i_rTableWindowSettings.getOrDefault( u"ShowAll"_ustr, bShowAll );
TTableWindowData::value_type pData = createTableWindowData(sComposedName,sTableName,sWindowName);
if ( pData )
@@ -374,20 +366,20 @@ void OJoinController::saveTableWindows( ::comphelper::NamedValueCollection& o_rV
for (auto const& elem : m_vTableData)
{
::comphelper::NamedValueCollection aWindowData;
- aWindowData.put( "ComposedName", elem->GetComposedName() );
- aWindowData.put( "TableName", elem->GetTableName() );
- aWindowData.put( "WindowName", elem->GetWinName() );
- aWindowData.put( "WindowTop", static_cast<sal_Int32>(elem->GetPosition().Y()) );
- aWindowData.put( "WindowLeft", static_cast<sal_Int32>(elem->GetPosition().X()) );
- aWindowData.put( "WindowWidth", static_cast<sal_Int32>(elem->GetSize().Width()) );
- aWindowData.put( "WindowHeight", static_cast<sal_Int32>(elem->GetSize().Height()) );
- aWindowData.put( "ShowAll", elem->IsShowAll() );
+ aWindowData.put( u"ComposedName"_ustr, elem->GetComposedName() );
+ aWindowData.put( u"TableName"_ustr, elem->GetTableName() );
+ aWindowData.put( u"WindowName"_ustr, elem->GetWinName() );
+ aWindowData.put( u"WindowTop"_ustr, static_cast<sal_Int32>(elem->GetPosition().Y()) );
+ aWindowData.put( u"WindowLeft"_ustr, static_cast<sal_Int32>(elem->GetPosition().X()) );
+ aWindowData.put( u"WindowWidth"_ustr, static_cast<sal_Int32>(elem->GetSize().Width()) );
+ aWindowData.put( u"WindowHeight"_ustr, static_cast<sal_Int32>(elem->GetSize().Height()) );
+ aWindowData.put( u"ShowAll"_ustr, elem->IsShowAll() );
const OUString sTableName( "Table" + OUString::number( i++ ) );
aAllTablesData.put( sTableName, aWindowData.getPropertyValues() );
}
- o_rViewSettings.put( "Tables", aAllTablesData.getPropertyValues() );
+ o_rViewSettings.put( u"Tables"_ustr, aAllTablesData.getPropertyValues() );
}
TTableWindowData::value_type OJoinController::createTableWindowData(const OUString& _sComposedName,const OUString& _sTableName,const OUString& _sWindowName)
diff --git a/dbaccess/source/ui/querydesign/JoinDesignView.cxx b/dbaccess/source/ui/querydesign/JoinDesignView.cxx
index c0d3ea81c7a0..ae09be66c26b 100644
--- a/dbaccess/source/ui/querydesign/JoinDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/JoinDesignView.cxx
@@ -24,11 +24,6 @@
#include <vcl/settings.hxx>
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
namespace dbaui
{
diff --git a/dbaccess/source/ui/querydesign/JoinExchange.cxx b/dbaccess/source/ui/querydesign/JoinExchange.cxx
index 65e883d8d901..8b218ccf269f 100644
--- a/dbaccess/source/ui/querydesign/JoinExchange.cxx
+++ b/dbaccess/source/ui/querydesign/JoinExchange.cxx
@@ -20,12 +20,10 @@
#include <JoinExchange.hxx>
#include <sot/formats.hxx>
#include <comphelper/servicehelper.hxx>
-#include <cppuhelper/typeprovider.hxx>
namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::datatransfer;
void OJoinExchObj::setDescriptors(const OJoinExchangeData& jxdSource,bool _bFirstEntry)
@@ -56,25 +54,21 @@ namespace dbaui
OJoinExchangeData OJoinExchObj::GetSourceDescription(const Reference< XTransferable >& _rxObject)
{
OJoinExchangeData aReturn;
- auto pImplementation = comphelper::getUnoTunnelImplementation<OJoinExchObj>(_rxObject);
+ auto pImplementation = comphelper::getFromUnoTunnel<OJoinExchObj>(_rxObject);
if (pImplementation)
aReturn = pImplementation->m_jxdSourceDescription;
return aReturn;
}
- Sequence< sal_Int8 > OJoinExchObj::getUnoTunnelId()
+ const Sequence< sal_Int8 > & OJoinExchObj::getUnoTunnelId()
{
- static ::cppu::OImplementationId implId;
-
- return implId.getImplementationId();
+ static const comphelper::UnoIdInit implId;
+ return implId.getSeq();
}
sal_Int64 SAL_CALL OJoinExchObj::getSomething( const Sequence< sal_Int8 >& _rIdentifier )
{
- if (isUnoTunnelId<OJoinExchObj>(_rIdentifier))
- return reinterpret_cast<sal_Int64>(this);
-
- return 0;
+ return comphelper::getSomethingImpl(_rIdentifier, this);
}
void OJoinExchObj::AddSupportedFormats()
@@ -104,12 +98,12 @@ namespace dbaui
return aReturn;
}
- void SAL_CALL OJoinExchObj::acquire( ) throw()
+ void SAL_CALL OJoinExchObj::acquire( ) noexcept
{
TransferDataContainer::acquire( );
}
- void SAL_CALL OJoinExchObj::release( ) throw()
+ void SAL_CALL OJoinExchObj::release( ) noexcept
{
TransferDataContainer::release( );
}
diff --git a/dbaccess/source/ui/querydesign/JoinTableView.cxx b/dbaccess/source/ui/querydesign/JoinTableView.cxx
index a51c375eaf2d..f2f263d7f006 100644
--- a/dbaccess/source/ui/querydesign/JoinTableView.cxx
+++ b/dbaccess/source/ui/querydesign/JoinTableView.cxx
@@ -33,13 +33,12 @@
#include "QueryMoveTabWinUndoAct.hxx"
#include "QuerySizeTabWinUndoAct.hxx"
#include <toolkit/helper/vclunohelper.hxx>
-#include <vcl/menu.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
#include <vcl/ptrstyle.hxx>
-#include <vcl/builder.hxx>
+#include <vcl/weldutils.hxx>
#include <TableWindowData.hxx>
#include <JAccess.hxx>
#include <com/sun/star/accessibility/XAccessible.hpp>
@@ -47,7 +46,7 @@
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <cppuhelper/exc_hlp.hxx>
#include <connectivity/dbtools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <algorithm>
#include <functional>
@@ -55,7 +54,6 @@ using namespace dbaui;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::accessibility;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
#define LINE_SIZE 50
@@ -67,14 +65,14 @@ using namespace ::com::sun::star::lang;
#define TABWIN_HEIGHT_STD 120
OScrollWindowHelper::OScrollWindowHelper( vcl::Window* pParent) : Window( pParent)
- ,m_aHScrollBar( VclPtr<ScrollBar>::Create(this, WB_HSCROLL|WB_REPEAT|WB_DRAG) )
- ,m_aVScrollBar( VclPtr<ScrollBar>::Create(this, WB_VSCROLL|WB_REPEAT|WB_DRAG) )
- ,m_pCornerWindow(VclPtr<ScrollBarBox>::Create(this, WB_3DLOOK))
+ ,m_aHScrollBar( VclPtr<ScrollAdaptor>::Create(this, true) )
+ ,m_aVScrollBar( VclPtr<ScrollAdaptor>::Create(this, false) )
,m_pTableView(nullptr)
{
+ StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
+ SetBackground(aSystemStyle.GetFaceColor());
// ScrollBars
-
GetHScrollBar().SetRange( Range(0, 1000) );
GetVScrollBar().SetRange( Range(0, 1000) );
@@ -83,7 +81,6 @@ OScrollWindowHelper::OScrollWindowHelper( vcl::Window* pParent) : Window( pParen
GetHScrollBar().Show();
GetVScrollBar().Show();
- m_pCornerWindow->Show();
// normally we should be SCROLL_PANE
SetAccessibleRole(AccessibleRole::SCROLL_PANE);
@@ -98,8 +95,7 @@ void OScrollWindowHelper::dispose()
{
m_aHScrollBar.disposeAndClear();
m_aVScrollBar.disposeAndClear();
- m_pCornerWindow.disposeAndClear();
- m_pTableView.clear();
+ m_pTableView.reset();
vcl::Window::dispose();
}
@@ -107,8 +103,8 @@ void OScrollWindowHelper::setTableView(OJoinTableView* _pTableView)
{
m_pTableView = _pTableView;
// ScrollBars
- GetHScrollBar().SetScrollHdl( LINK(m_pTableView, OJoinTableView, ScrollHdl) );
- GetVScrollBar().SetScrollHdl( LINK(m_pTableView, OJoinTableView, ScrollHdl) );
+ GetHScrollBar().SetScrollHdl( LINK(m_pTableView, OJoinTableView, HorzScrollHdl) );
+ GetVScrollBar().SetScrollHdl( LINK(m_pTableView, OJoinTableView, VertScrollHdl) );
}
void OScrollWindowHelper::resetRange(const Point& _aSize)
@@ -136,11 +132,6 @@ void OScrollWindowHelper::Resize()
Size( nVScrollWidth, aTotalOutputSize.Height()-nHScrollHeight )
);
- m_pCornerWindow->SetPosSizePixel(
- Point( aTotalOutputSize.Width() - nVScrollWidth, aTotalOutputSize.Height() - nHScrollHeight),
- Size( nVScrollWidth, nHScrollHeight )
- );
-
GetHScrollBar().SetPageSize( aTotalOutputSize.Width() );
GetHScrollBar().SetVisibleSize( aTotalOutputSize.Width() );
@@ -163,6 +154,7 @@ void OScrollWindowHelper::Resize()
OJoinTableView::OJoinTableView( vcl::Window* pParent, OJoinDesignView* pView )
:Window( pParent,WB_BORDER )
,DropTargetHelper(this)
+ ,m_aDragScrollIdle("dbaccess OJoinTableView m_aDragScrollIdle")
,m_aDragOffset( Point(0,0) )
,m_aScrollOffset( Point(0,0) )
,m_pDragWin( nullptr )
@@ -170,7 +162,6 @@ OJoinTableView::OJoinTableView( vcl::Window* pParent, OJoinDesignView* pView )
,m_pSelectedConn( nullptr )
,m_pLastFocusTabWin(nullptr)
,m_pView( pView )
- ,m_pAccessible(nullptr)
{
SetSizePixel( Size(1000, 1000) );
@@ -193,19 +184,25 @@ void OJoinTableView::dispose()
}
// delete lists
clearLayoutInformation();
- m_pDragWin.clear();
- m_pSizingWin.clear();
- m_pSelectedConn.clear();
- m_pLastFocusTabWin.clear();
- m_pView.clear();
+ m_pDragWin.reset();
+ m_pSizingWin.reset();
+ m_pSelectedConn.reset();
+ m_pLastFocusTabWin.reset();
+ m_pView.reset();
m_vTableConnection.clear();
vcl::Window::dispose();
}
-IMPL_LINK( OJoinTableView, ScrollHdl, ScrollBar*, pScrollBar, void )
+IMPL_LINK(OJoinTableView, HorzScrollHdl, weld::Scrollbar&, rScrollbar, void)
+{
+ // move all windows
+ ScrollPane(rScrollbar.adjustment_get_value() - m_aScrollOffset.X(), true, false);
+}
+
+IMPL_LINK(OJoinTableView, VertScrollHdl, weld::Scrollbar&, rScrollbar, void)
{
// move all windows
- ScrollPane( pScrollBar->GetDelta(), (pScrollBar == &GetHScrollBar()), false );
+ ScrollPane(rScrollbar.adjustment_get_value() - m_aScrollOffset.Y(), false, false);
}
void OJoinTableView::Resize()
@@ -238,7 +235,7 @@ void OJoinTableView::Resize()
}
}
-sal_uLong OJoinTableView::GetTabWinCount() const
+sal_Int64 OJoinTableView::GetTabWinCount() const
{
return m_aTableMap.size();
}
@@ -259,7 +256,7 @@ bool OJoinTableView::RemoveConnection(VclPtr<OTableConnection>& rConn, bool _bDe
modified();
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
- makeAny(xConn->GetAccessible()),
+ Any(xConn->GetAccessible()),
Any());
if (_bDelete)
xConn->disposeOnce();
@@ -327,7 +324,7 @@ void OJoinTableView::AddTabWin(const OUString& _rComposedName, const OUString& r
{
m_pView->getController().getTableWindowData().push_back( pNewTabWinData);
// when we already have a table with this name insert the full qualified one instead
- if(m_aTableMap.find(rWinName) != m_aTableMap.end())
+ if(m_aTableMap.contains(rWinName))
m_aTableMap[_rComposedName] = pNewTabWin;
else
m_aTableMap[rWinName] = pNewTabWin;
@@ -339,7 +336,7 @@ void OJoinTableView::AddTabWin(const OUString& _rComposedName, const OUString& r
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
Any(),
- makeAny(pNewTabWin->GetAccessible()));
+ Any(pNewTabWin->GetAccessible()));
}
else
{
@@ -375,7 +372,7 @@ void OJoinTableView::RemoveTabWin( OTableWindow* pTabWin )
{
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
- makeAny(pTabWin->GetAccessible()),Any()
+ Any(pTabWin->GetAccessible()),Any()
);
pTabWin->Hide();
@@ -406,7 +403,7 @@ namespace
bool isScrollAllowed( OJoinTableView* _pView,tools::Long nDelta, bool bHoriz)
{
// adjust ScrollBar-Positions
- ScrollBar& rBar = bHoriz ? _pView->GetHScrollBar() : _pView->GetVScrollBar() ;
+ ScrollAdaptor& rBar = bHoriz ? _pView->GetHScrollBar() : _pView->GetVScrollBar();
tools::Long nOldThumbPos = rBar.GetThumbPos();
tools::Long nNewThumbPos = nOldThumbPos + nDelta;
@@ -494,7 +491,7 @@ bool OJoinTableView::isMovementAllowed(const Point& _rPoint,const Size& _rSize)
void OJoinTableView::EnsureVisible(const OTableWindow* _pWin)
{
// data about the tab win
- TTableWindowData::value_type pData = _pWin->GetData();
+ const TTableWindowData::value_type& pData = _pWin->GetData();
EnsureVisible( pData->GetPosition() , pData->GetSize());
Invalidate(InvalidateFlags::NoChildren);
}
@@ -582,9 +579,9 @@ void OJoinTableView::SetDefaultTabWinPosSize( OTableWindow* pTabWin )
aBottom.AdjustX(aNewSize.Width() );
aBottom.AdjustY(aNewSize.Height() );
- if(!GetHScrollBar().GetRange().IsInside(aBottom.X()))
+ if(!GetHScrollBar().GetRange().Contains(aBottom.X()))
GetHScrollBar().SetRange( Range(0, aBottom.X()) );
- if(!GetVScrollBar().GetRange().IsInside(aBottom.Y()))
+ if(!GetVScrollBar().GetRange().Contains(aBottom.Y()))
GetVScrollBar().SetRange( Range(0, aBottom.Y()) );
pTabWin->SetPosSizePixel( aNewPos, aNewSize );
@@ -1118,12 +1115,13 @@ bool OJoinTableView::IsAddAllowed()
return true;
}
-void OJoinTableView::executePopup(const Point& _aPos, VclPtr<OTableConnection>& rSelConnection)
+void OJoinTableView::executePopup(const Point& rPos, VclPtr<OTableConnection>& rSelConnection)
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/joinviewmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- aContextMenu->Execute(this, _aPos);
- OString sIdent = aContextMenu->GetCurItemIdent();
+ ::tools::Rectangle aRect(rPos, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/joinviewmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
if (sIdent == "delete")
RemoveConnection(rSelConnection, true);
else if (sIdent == "edit")
@@ -1179,7 +1177,7 @@ void OJoinTableView::Command(const CommandEvent& rEvt)
Window::Command(rEvt);
}
-OTableConnection* OJoinTableView::GetTabConn(const OTableWindow* pLhs,const OTableWindow* pRhs,bool _bSupressCrossOrNaturalJoin) const
+OTableConnection* OJoinTableView::GetTabConn(const OTableWindow* pLhs,const OTableWindow* pRhs,bool _bSuppressCrossOrNaturalJoin) const
{
OTableConnection* pConn = nullptr;
OSL_ENSURE(pRhs || pLhs, "OJoinTableView::GetTabConn : invalid args !");
@@ -1201,9 +1199,9 @@ OTableConnection* OJoinTableView::GetTabConn(const OTableWindow* pLhs,const OTab
)
)
{
- if ( _bSupressCrossOrNaturalJoin )
+ if ( _bSuppressCrossOrNaturalJoin )
{
- if ( supressCrossNaturalJoin(pData->GetData()) )
+ if ( suppressCrossNaturalJoin(pData->GetData()) )
continue;
}
pConn = pData;
@@ -1219,7 +1217,7 @@ bool OJoinTableView::PreNotify(NotifyEvent& rNEvt)
bool bHandled = false;
switch (rNEvt.GetType())
{
- case MouseNotifyEvent::COMMAND:
+ case NotifyEventType::COMMAND:
{
const CommandEvent* pCommand = rNEvt.GetCommandEvent();
if (pCommand->GetCommand() == CommandEventId::Wheel)
@@ -1236,7 +1234,7 @@ bool OJoinTableView::PreNotify(NotifyEvent& rNEvt)
}
}
break;
- case MouseNotifyEvent::KEYINPUT:
+ case NotifyEventType::KEYINPUT:
{
if (m_aTableMap.empty())
// no tab wins -> no conns -> no traveling
@@ -1364,7 +1362,7 @@ bool OJoinTableView::PreNotify(NotifyEvent& rNEvt)
}
}
break;
- case MouseNotifyEvent::GETFOCUS:
+ case NotifyEventType::GETFOCUS:
{
if (m_aTableMap.empty())
// no tab wins -> no conns -> no focus change
@@ -1435,7 +1433,7 @@ void OJoinTableView::StateChanged( StateChangedType nType )
vcl::Font aFont = rStyleSettings.GetGroupFont();
if ( IsControlFont() )
aFont.Merge( GetControlFont() );
- SetZoomedPointFont(*this, aFont);
+ SetZoomedPointFont(*GetOutDev(), aFont);
for (auto const& elem : m_aTableMap)
{
@@ -1546,7 +1544,7 @@ void OJoinTableView::addConnection(OTableConnection* _pConnection,bool _bAddData
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
Any(),
- makeAny(_pConnection->GetAccessible()));
+ Any(_pConnection->GetAccessible()));
}
bool OJoinTableView::allowQueries() const
@@ -1560,7 +1558,7 @@ void OJoinTableView::onNoColumns_throw()
throw SQLException();
}
-bool OJoinTableView::supressCrossNaturalJoin(const TTableConnectionData::value_type& ) const
+bool OJoinTableView::suppressCrossNaturalJoin(const TTableConnectionData::value_type& ) const
{
return false;
}
diff --git a/dbaccess/source/ui/querydesign/QTableConnectionData.cxx b/dbaccess/source/ui/querydesign/QTableConnectionData.cxx
index f96a5b1cd033..a42d65508008 100644
--- a/dbaccess/source/ui/querydesign/QTableConnectionData.cxx
+++ b/dbaccess/source/ui/querydesign/QTableConnectionData.cxx
@@ -25,8 +25,7 @@
using namespace dbaui;
OQueryTableConnectionData::OQueryTableConnectionData()
- : OTableConnectionData()
- , m_nFromEntryIndex(0)
+ : m_nFromEntryIndex(0)
, m_nDestEntryIndex(0)
, m_eJoinType (INNER_JOIN)
, m_bNatural(false)
@@ -88,8 +87,8 @@ void OQueryTableConnectionData::InitFromDrag(const OTableFieldDescRef& rDragLeft
// convert Information in rDrag into parameters for the base class init
OQueryTableWindow* pSourceWin = static_cast<OQueryTableWindow*>(rDragLeft->GetTabWindow());
OQueryTableWindow* pDestWin = static_cast<OQueryTableWindow*>(rDragRight->GetTabWindow());
- OSL_ENSURE(pSourceWin,"NO Source window found!");
- OSL_ENSURE(pDestWin,"NO Dest window found!");
+ assert(pSourceWin && "NO Source window found!");
+ assert(pDestWin && "NO Dest window found!");
m_pReferencingTable = pSourceWin->GetData();
m_pReferencedTable = pDestWin->GetData();
diff --git a/dbaccess/source/ui/querydesign/QTableWindow.cxx b/dbaccess/source/ui/querydesign/QTableWindow.cxx
index cc70e1276a19..ed490860c3ea 100644
--- a/dbaccess/source/ui/querydesign/QTableWindow.cxx
+++ b/dbaccess/source/ui/querydesign/QTableWindow.cxx
@@ -34,7 +34,6 @@
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::beans;
using namespace dbaui;
OQueryTableWindow::OQueryTableWindow( vcl::Window* pParent, const TTableWindowData::value_type& pTabWinData)
@@ -110,8 +109,8 @@ void OQueryTableWindow::OnEntryDoubleClicked(weld::TreeIter& rEntry)
return;
weld::TreeView& rTreeView = m_xListBox->get_widget();
- OTableFieldInfo* pInf = reinterpret_cast<OTableFieldInfo*>(rTreeView.get_id(rEntry).toUInt64());
- OSL_ENSURE(pInf != nullptr, "OQueryTableWindow::OnEntryDoubleClicked : field doesn't have FieldInfo !");
+ OTableFieldInfo* pInf = weld::fromId<OTableFieldInfo*>(rTreeView.get_id(rEntry));
+ assert(pInf && "OQueryTableWindow::OnEntryDoubleClicked : field doesn't have FieldInfo !");
// build up DragInfo
OTableFieldDescRef aInfo = new OTableFieldDesc(GetTableName(), rTreeView.get_text(rEntry));
@@ -144,7 +143,7 @@ bool OQueryTableWindow::ExistsField(const OUString& strFieldName, OTableFieldDes
{
if (bCase(strFieldName, rTreeView.get_text(*xEntry)))
{
- OTableFieldInfo* pInf = reinterpret_cast<OTableFieldInfo*>(rTreeView.get_id(*xEntry).toUInt64());
+ OTableFieldInfo* pInf = weld::fromId<OTableFieldInfo*>(rTreeView.get_id(*xEntry));
assert(pInf && "OQueryTableWindow::ExistsField : field doesn't have FieldInfo !");
rInfo->SetTabWindow(this);
diff --git a/dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx b/dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx
index 601d25f9c01c..13262f570290 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx
@@ -37,7 +37,7 @@ namespace dbaui
virtual void Redo() override = 0;
public:
- OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, const char* pCommentID);
+ OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, TranslateId pCommentID);
virtual ~OQueryDesignFieldUndoAct() override;
void SetColumnPosition(sal_uInt16 _nColumnPosition)
@@ -90,7 +90,7 @@ namespace dbaui
OTableFieldDescRef pDescr; // the deleted column description
public:
- OTabFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, const char* pCommentID) : OQueryDesignFieldUndoAct(pSelBrwBox, pCommentID) { }
+ OTabFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, TranslateId pCommentID) : OQueryDesignFieldUndoAct(pSelBrwBox, pCommentID) { }
void SetTabFieldDescr(OTableFieldDescRef const & pDescription) { pDescr = pDescription; }
};
diff --git a/dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx b/dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx
index d3ce81bde0c6..c816ede08e06 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx
@@ -25,14 +25,13 @@
namespace dbaui
{
// OQueryDesignUndoAction - undo base class for actions in graphical query design (without field list)
- class OJoinTableView;
class OQueryDesignUndoAction : public OCommentUndoAction
{
protected:
VclPtr<OJoinTableView> m_pOwner; // in this container it all happens
public:
- OQueryDesignUndoAction(OJoinTableView* pOwner, const char* pCommentID) : OCommentUndoAction(pCommentID), m_pOwner(pOwner) { }
+ OQueryDesignUndoAction(OJoinTableView* pOwner, TranslateId pCommentID) : OCommentUndoAction(pCommentID), m_pOwner(pOwner) { }
};
}
diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index 96e44ab6e68d..cd00da8dcf60 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -23,8 +23,9 @@
#include <querycontroller.hxx>
#include <sqlbison.hxx>
#include <vcl/split.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <o3tl/safeint.hxx>
+#include <o3tl/string_view.hxx>
#include <osl/diagnose.h>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
@@ -49,14 +50,13 @@
#include <unotools/syslocale.hxx>
#include <memory>
#include <set>
+#include <string_view>
using namespace ::dbaui;
-using namespace ::utl;
using namespace ::connectivity;
using namespace ::dbtools;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
@@ -95,7 +95,7 @@ namespace
bool bHaving,
bool _bAddOrOnOneLine);
- OUString quoteTableAlias(bool _bQuote, const OUString& _sAliasName, const OUString& _sQuote)
+ OUString quoteTableAlias(bool _bQuote, const OUString& _sAliasName, std::u16string_view _sQuote)
{
OUString sRet;
if ( _bQuote && !_sAliasName.isEmpty() )
@@ -134,13 +134,10 @@ namespace
try
{
Reference<XNameAccess> xReferencedTableColumns(xInfoData->getReferencedTable()->getColumns());
- Sequence< OUString> aSeq = xInfoData->getReferencingTable()->getColumns()->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& column : xInfoData->getReferencingTable()->getColumns()->getElementNames())
{
- if ( xReferencedTableColumns->hasByName(*pIter) )
- xInfoData->AppendConnLine(*pIter,*pIter);
+ if (xReferencedTableColumns->hasByName(column))
+ xInfoData->AppendConnLine(column, column);
}
}
catch( const Exception& )
@@ -159,12 +156,8 @@ namespace
OUString aSourceFieldName(_aDragLeft->GetField());
OUString aDestFieldName(_aDragRight->GetField());
// the connection could point on the other side
- if(pConn->GetSourceWin() == _aDragRight->GetTabWindow())
- {
- OUString aTmp(aSourceFieldName);
- aSourceFieldName = aDestFieldName;
- aDestFieldName = aTmp;
- }
+ if (pConn->GetSourceWin() == _aDragRight->GetTabWindow())
+ std::swap(aSourceFieldName, aDestFieldName);
pConn->GetData()->AppendConnLine( aSourceFieldName,aDestFieldName);
pConn->UpdateLineList();
// Modified-Flag
@@ -289,11 +282,12 @@ namespace
{
if(!aCondition.isEmpty())
aCondition.append(C_AND);
- aCondition.append(quoteTableAlias(true,pData->GetAliasName(JTCS_FROM),aQuote));
- aCondition.append(::dbtools::quoteName(aQuote, lineData->GetFieldName(JTCS_FROM) ));
- aCondition.append(" = ");
- aCondition.append(quoteTableAlias(true,pData->GetAliasName(JTCS_TO),aQuote));
- aCondition.append(::dbtools::quoteName(aQuote, lineData->GetFieldName(JTCS_TO) ));
+ aCondition.append(
+ quoteTableAlias(true,pData->GetAliasName(JTCS_FROM),aQuote)
+ + ::dbtools::quoteName(aQuote, lineData->GetFieldName(JTCS_FROM) )
+ + " = "
+ + quoteTableAlias(true,pData->GetAliasName(JTCS_TO),aQuote)
+ + ::dbtools::quoteName(aQuote, lineData->GetFieldName(JTCS_TO) ));
}
}
catch(SQLException&)
@@ -315,7 +309,7 @@ namespace
const OQueryTableWindow* _pEntryTabTo,
OUString& _rJoin )
{
- OSL_ENSURE(_pEntryConn,"TableConnection can not be null!");
+ assert(_pEntryConn && "TableConnection can not be null!");
OQueryTableConnectionData* pData = static_cast< OQueryTableConnectionData*>(_pEntryConn->GetData().get());
if ( !(pData->GetJoinType() != INNER_JOIN && _pEntryTabTo->ExistsAVisitedConn()) )
@@ -325,7 +319,7 @@ namespace
if(_rJoin.endsWith(")"))
{
bBrace = true;
- _rJoin = _rJoin.replaceAt(_rJoin.getLength()-1,1,OUString(' '));
+ _rJoin = _rJoin.replaceAt(_rJoin.getLength()-1,1, u" ");
}
_rJoin += C_AND + BuildJoinCriteria(_xConnection,&pData->GetConnLineDataList(),pData);
if(bBrace)
@@ -368,7 +362,7 @@ namespace
}
OUString BuildJoin( const Reference< XConnection>& _xConnection,
const OUString& rLh,
- const OUString& rRh,
+ std::u16string_view rRh,
const OQueryTableConnectionData* pData)
{
@@ -395,7 +389,7 @@ namespace
aErg += " FULL OUTER ";
break;
}
- aErg += "JOIN " + rRh;
+ aErg += OUString::Concat("JOIN ") + rRh;
if ( CROSS_JOIN != pData->GetJoinType() && !pData->isNatural() )
{
aErg += " ON " + BuildJoinCriteria(_xConnection,&pData->GetConnLineDataList(),pData);
@@ -657,11 +651,7 @@ namespace
if ( field->isAggregateFunction() )
{
OSL_ENSURE(!field->GetFunction().isEmpty(),"Function name must not be empty! ;-(");
- OUStringBuffer aTmpStr2( field->GetFunction());
- aTmpStr2.append("(");
- aTmpStr2.append(aTmpStr.makeStringAndClear());
- aTmpStr2.append(")");
- aTmpStr = aTmpStr2;
+ aTmpStr = field->GetFunction() + "(" + aTmpStr.makeStringAndClear() + ")";
}
if (!rFieldAlias.isEmpty() &&
@@ -669,10 +659,10 @@ namespace
field->isNumericOrAggregateFunction() ||
field->isOtherFunction()))
{
- aTmpStr.append(" AS ");
- aTmpStr.append(::dbtools::quoteName(aQuote, rFieldAlias));
+ aTmpStr.append(" AS " + ::dbtools::quoteName(aQuote, rFieldAlias));
}
- aFieldListStr.append(aTmpStr.makeStringAndClear());
+ aFieldListStr.append(aTmpStr);
+ aTmpStr.setLength(0);
aFieldListStr.append(", ");
}
}
@@ -921,14 +911,11 @@ namespace
{
aWorkStr += quoteTableAlias(bMulti,field->GetAlias(),aQuote) + ::dbtools::quoteName(aQuote, aColumnName);
}
- aWorkStr += " " + OUString( ";ASC;DESC" ).getToken( static_cast<sal_uInt16>(eOrder), ';' ) + ",";
+ aWorkStr += OUString::Concat(" ") + o3tl::getToken( u";ASC;DESC", static_cast<sal_uInt16>(eOrder), ';' ) + ",";
}
}
- {
- OUString sTemp(comphelper::string::stripEnd(aWorkStr, ','));
- aWorkStr = sTemp;
- }
+ aWorkStr = comphelper::string::stripEnd(aWorkStr, ',');
if ( !aWorkStr.isEmpty() )
{
@@ -1084,7 +1071,7 @@ namespace
}
if(!aTableListStr.isEmpty())
- aTableListStr = aTableListStr.replaceAt(aTableListStr.getLength()-1,1, OUString() );
+ aTableListStr = aTableListStr.replaceAt(aTableListStr.getLength()-1,1, u"" );
return aTableListStr;
}
OUString GenerateGroupBy(const OQueryDesignView* _pView,OTableFields& _rFieldList, bool bMulti )
@@ -1142,9 +1129,8 @@ namespace
}
if ( !aGroupByStr.isEmpty() )
{
- aGroupByStr = aGroupByStr.replaceAt(aGroupByStr.getLength()-1,1, OUString(' ') );
- OUString aGroupByStr2 = " GROUP BY " + aGroupByStr;
- aGroupByStr = aGroupByStr2;
+ aGroupByStr = aGroupByStr.replaceAt(aGroupByStr.getLength()-1,1, u" " );
+ aGroupByStr = " GROUP BY " + aGroupByStr;
}
}
catch(SQLException&)
@@ -1489,7 +1475,7 @@ namespace
for (auto const& table : rTabList)
{
OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(table.second.get());
- if (pTabWin->ExistsField( "*", aDragLeft ))
+ if (pTabWin->ExistsField( u"*"_ustr, aDragLeft ))
{
aDragLeft->SetAlias(OUString());
aDragLeft->SetTable(OUString());
@@ -1821,27 +1807,26 @@ namespace
else
return false;
- if ( eJoinType == CROSS_JOIN || bNatural )
- {
+ if ( eJoinType != CROSS_JOIN && !bNatural )
+ return true;
- OQueryTableWindow* pLeftWindow = static_cast<OQueryTableView*>(_pView->getTableView())->FindTable( getTableRange(_pView,pNode->getChild(0)) );
- OQueryTableWindow* pRightWindow = static_cast<OQueryTableView*>(_pView->getTableView())->FindTable( getTableRange(_pView,pRightTableRef) );
- OSL_ENSURE(pLeftWindow && pRightWindow,"Table Windows could not be found!");
- if ( !pLeftWindow || !pRightWindow )
- return false;
+ OQueryTableWindow* pLeftWindow = static_cast<OQueryTableView*>(_pView->getTableView())->FindTable( getTableRange(_pView,pNode->getChild(0)) );
+ OQueryTableWindow* pRightWindow = static_cast<OQueryTableView*>(_pView->getTableView())->FindTable( getTableRange(_pView,pRightTableRef) );
+ OSL_ENSURE(pLeftWindow && pRightWindow,"Table Windows could not be found!");
+ if ( !pLeftWindow || !pRightWindow )
+ return false;
- OTableFieldDescRef aDragLeft = new OTableFieldDesc();
- aDragLeft->SetTabWindow(pLeftWindow);
- aDragLeft->SetTable(pLeftWindow->GetTableName());
- aDragLeft->SetAlias(pLeftWindow->GetAliasName());
+ OTableFieldDescRef aDragLeft = new OTableFieldDesc();
+ aDragLeft->SetTabWindow(pLeftWindow);
+ aDragLeft->SetTable(pLeftWindow->GetTableName());
+ aDragLeft->SetAlias(pLeftWindow->GetAliasName());
- OTableFieldDescRef aDragRight = new OTableFieldDesc();
- aDragRight->SetTabWindow(pRightWindow);
- aDragRight->SetTable(pRightWindow->GetTableName());
- aDragRight->SetAlias(pRightWindow->GetAliasName());
+ OTableFieldDescRef aDragRight = new OTableFieldDesc();
+ aDragRight->SetTabWindow(pRightWindow);
+ aDragRight->SetTable(pRightWindow->GetTableName());
+ aDragRight->SetAlias(pRightWindow->GetAliasName());
- insertConnection(_pView,eJoinType,aDragLeft,aDragRight,bNatural);
- }
+ insertConnection(_pView,eJoinType,aDragLeft,aDragRight,bNatural);
return true;
}
@@ -2041,7 +2026,7 @@ namespace
{
OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(table.second.get());
OTableFieldDescRef aInfo = new OTableFieldDesc();
- if (pTabWin->ExistsField( "*", aInfo ))
+ if (pTabWin->ExistsField( u"*"_ustr, aInfo ))
{
eErrorCode = _pView->InsertField(aInfo, bFirstField);
bFirstField = false;
@@ -2137,7 +2122,7 @@ namespace
for (auto const& table : *pTabList)
{
OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(table.second.get());
- if (pTabWin->ExistsField( "*", aInfo ))
+ if (pTabWin->ExistsField( u"*"_ustr, aInfo ))
{
aInfo->SetAlias(OUString());
aInfo->SetTable(OUString());
@@ -2174,7 +2159,7 @@ namespace
if ( SQL_ISRULE(pColumnRef,general_set_fct) )
{
aInfo->SetFunctionType(nFunctionType|FKT_AGGREGATE);
- aInfo->SetFunction(comphelper::string::stripEnd(aColumns.getToken(0,'('), ' '));
+ aInfo->SetFunction(OUString(comphelper::string::stripEnd(o3tl::getToken(aColumns,0,'('), ' ')));
}
else
aInfo->SetFunctionType(nFunctionType|FKT_OTHER);
@@ -2363,7 +2348,7 @@ namespace
OUString getParseErrorMessage( SqlParseError _eErrorCode )
{
- const char* pResId;
+ TranslateId pResId;
switch (_eErrorCode)
{
case eIllegalJoin:
@@ -2627,7 +2612,7 @@ void OQueryDesignView::TableDeleted(const OUString& rAliasName)
static_cast<OQueryController&>(getController()).InvalidateFeature(ID_BROWSER_ADDTABLE); // inform the view again
}
-bool OQueryDesignView::HasFieldByAliasName(const OUString& rFieldName, OTableFieldDescRef const & rInfo) const
+bool OQueryDesignView::HasFieldByAliasName(std::u16string_view rFieldName, OTableFieldDescRef const & rInfo) const
{
return m_pSelectionBox->HasFieldByAliasName( rFieldName, rInfo);
}
@@ -2639,18 +2624,18 @@ SqlParseError OQueryDesignView::InsertField( const OTableFieldDescRef& rInfo, bo
sal_Int32 OQueryDesignView::getColWidth(sal_uInt16 _nColPos) const
{
- static sal_Int32 s_nDefaultWidth = GetTextWidth("0") * 15;
+ static sal_Int32 s_nDefaultWidth = GetTextWidth(u"0"_ustr) * 15;
sal_Int32 nWidth = static_cast<OQueryController&>(getController()).getColWidth(_nColPos);
if ( !nWidth )
nWidth = s_nDefaultWidth;
return nWidth;
}
-void OQueryDesignView::fillValidFields(const OUString& sAliasName, weld::ComboBox& rFieldList)
+void OQueryDesignView::fillValidFields(std::u16string_view sAliasName, weld::ComboBox& rFieldList)
{
rFieldList.clear();
- bool bAllTables = sAliasName.isEmpty();
+ bool bAllTables = sAliasName.empty();
OJoinTableView::OTableWindowMap& rTabWins = m_pTableView->GetTabWinMap();
OUString strCurrentPrefix;
@@ -2682,7 +2667,7 @@ void OQueryDesignView::fillValidFields(const OUString& sAliasName, weld::ComboBo
bool OQueryDesignView::PreNotify(NotifyEvent& rNEvt)
{
- if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ if (rNEvt.GetType() == NotifyEventType::GETFOCUS)
{
if ( m_pSelectionBox && m_pSelectionBox->HasChildPathFocus() )
m_eChildFocus = SELECTION;
@@ -2764,22 +2749,19 @@ OUString OQueryDesignView::getStatement()
OUString aTmp = "( " + aJoinCrit + " )";
if(!aCriteriaListStr.isEmpty())
{
- aTmp += C_AND + aCriteriaListStr.makeStringAndClear();
+ aTmp += C_AND;
}
- aCriteriaListStr = aTmp;
+ aCriteriaListStr.insert(0, aTmp);
}
// ----------------- construct statement ----------------------
OUStringBuffer aSqlCmd("SELECT ");
if(rController.isDistinct())
aSqlCmd.append(" DISTINCT ");
- aSqlCmd.append(aFieldListStr);
- aSqlCmd.append(" FROM ");
- aSqlCmd.append(aTableListStr);
+ aSqlCmd.append(aFieldListStr + " FROM " + aTableListStr);
if (!aCriteriaListStr.isEmpty())
{
- aSqlCmd.append(" WHERE ");
- aSqlCmd.append(aCriteriaListStr.makeStringAndClear());
+ aSqlCmd.append(" WHERE " + aCriteriaListStr);
}
Reference<XDatabaseMetaData> xMeta;
if ( xConnection.is() )
@@ -2792,8 +2774,7 @@ OUString OQueryDesignView::getStatement()
// ----------------- construct GroupBy and attach ------------
if(!aHavingStr.isEmpty())
{
- aSqlCmd.append(" HAVING ");
- aSqlCmd.append(aHavingStr.makeStringAndClear());
+ aSqlCmd.append(" HAVING " + aHavingStr);
}
// ----------------- construct sorting and attach ------------
OUString sOrder;
@@ -2812,7 +2793,7 @@ OUString OQueryDesignView::getStatement()
const sal_Int64 nLimit = rController.getLimit();
if( nLimit != -1 )
{
- aSqlCmd.append( " LIMIT " ).append( OUString::number(nLimit) );
+ aSqlCmd.append( " LIMIT " + OUString::number(nLimit) );
}
}
@@ -2943,7 +2924,7 @@ std::unique_ptr<OSQLParseNode> OQueryDesignView::getPredicateTreeFromEntry(const
}
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
- parse::OParseColumn* pColumn = new parse::OParseColumn( pEntry->GetField(),
+ rtl::Reference<parse::OParseColumn> pColumn = new parse::OParseColumn( pEntry->GetField(),
OUString(),
OUString(),
OUString(),
diff --git a/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx b/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx
index 1e7ca6bb9525..39873281586a 100644
--- a/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx
+++ b/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx
@@ -23,7 +23,8 @@
using namespace dbaui;
void OJoinMoveTabWinUndoAct::TogglePosition()
{
- Point ptFrameScrollPos(m_pOwner->GetHScrollBar().GetThumbPos(), m_pOwner->GetVScrollBar().GetThumbPos());
+ Point ptFrameScrollPos(m_pOwner->GetHScrollBar().GetThumbPos(),
+ m_pOwner->GetVScrollBar().GetThumbPos());
Point ptNext = m_pTabWin->GetPosPixel() + ptFrameScrollPos;
m_pTabWin->SetPosPixel(m_ptNextPosition - ptFrameScrollPos);
diff --git a/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx b/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx
index e6b58956edc9..b11108f85c9e 100644
--- a/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx
+++ b/dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx
@@ -28,7 +28,6 @@ namespace dbaui
{
// OQueryMoveTabWinUndoAct - Undo class for moving a TabWin
- class OTableWindow;
class OJoinMoveTabWinUndoAct final : public OQueryDesignUndoAction
{
Point m_ptNextPosition;
diff --git a/dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx b/dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx
index de244ccb5396..a8c62bfa1350 100644
--- a/dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx
+++ b/dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx
@@ -26,7 +26,6 @@ namespace dbaui
{
// OQuerySizeTabWinUndoAct - undo class to change size of TabWins
- class OTableWindow;
class OJoinSizeTabWinUndoAct final : public OQueryDesignUndoAction
{
Point m_ptNextPosition;
diff --git a/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx b/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx
index b209a62ce5e8..e3b6cd0e94bb 100644
--- a/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx
@@ -29,16 +29,16 @@ using namespace dbaui;
OQueryTabConnUndoAction::~OQueryTabConnUndoAction()
{
if (m_bOwnerOfConn)
- { // I have the connection -> delete
+ { // I have the connection -> delete
m_pOwner->DeselectConn(m_pConnection);
m_pConnection.disposeAndClear();
}
}
-OQueryTabConnUndoAction::OQueryTabConnUndoAction(OQueryTableView* pOwner, const char* pCommentID)
- :OQueryDesignUndoAction(pOwner, pCommentID)
- ,m_pConnection(nullptr)
- ,m_bOwnerOfConn(false)
+OQueryTabConnUndoAction::OQueryTabConnUndoAction(OQueryTableView* pOwner, TranslateId pCommentID)
+ : OQueryDesignUndoAction(pOwner, pCommentID)
+ , m_pConnection(nullptr)
+ , m_bOwnerOfConn(false)
{
}
@@ -77,13 +77,11 @@ void OQueryDelTabConnUndoAction::Redo()
}
OQueryTabWinShowUndoAct::OQueryTabWinShowUndoAct(OQueryTableView* pOwner)
- : OQueryTabWinUndoAct(pOwner, STR_QUERY_UNDO_TABWINSHOW)
+ : OQueryTabWinUndoAct(pOwner, STR_QUERY_UNDO_TABWINSHOW)
{
}
-OQueryTabWinShowUndoAct::~OQueryTabWinShowUndoAct()
-{
-}
+OQueryTabWinShowUndoAct::~OQueryTabWinShowUndoAct() {}
void OQueryTabWinShowUndoAct::Undo()
{
@@ -93,28 +91,26 @@ void OQueryTabWinShowUndoAct::Undo()
void OQueryTabWinShowUndoAct::Redo()
{
- static_cast<OQueryTableView*>(m_pOwner.get())->ShowTabWin(m_pTabWin, this,true);
+ static_cast<OQueryTableView*>(m_pOwner.get())->ShowTabWin(m_pTabWin, this, true);
SetOwnership(false);
}
OQueryTabWinDelUndoAct::OQueryTabWinDelUndoAct(OQueryTableView* pOwner)
- : OQueryTabWinUndoAct(pOwner, STR_QUERY_UNDO_TABWINDELETE)
+ : OQueryTabWinUndoAct(pOwner, STR_QUERY_UNDO_TABWINDELETE)
{
}
-OQueryTabWinDelUndoAct::~OQueryTabWinDelUndoAct()
-{
-}
+OQueryTabWinDelUndoAct::~OQueryTabWinDelUndoAct() {}
void OQueryTabWinDelUndoAct::Undo()
{
- static_cast<OQueryTableView*>(m_pOwner.get())->ShowTabWin( m_pTabWin, this,true );
+ static_cast<OQueryTableView*>(m_pOwner.get())->ShowTabWin(m_pTabWin, this, true);
SetOwnership(false);
}
void OQueryTabWinDelUndoAct::Redo()
{
- static_cast<OQueryTableView*>(m_pOwner.get())->HideTabWin( m_pTabWin, this );
+ static_cast<OQueryTableView*>(m_pOwner.get())->HideTabWin(m_pTabWin, this);
SetOwnership(true);
}
diff --git a/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx b/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx
index 3ccb80bf67f1..2905572adaed 100644
--- a/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx
+++ b/dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx
@@ -24,7 +24,6 @@
namespace dbaui
{
- class OQueryTableConnection;
class OQueryTableView;
class OQueryTabConnUndoAction : public OQueryDesignUndoAction
{
@@ -34,7 +33,7 @@ namespace dbaui
// am I the only owner of the connection? (changes with every redo and undo)
public:
- OQueryTabConnUndoAction(OQueryTableView* pOwner, const char* pCommentID);
+ OQueryTabConnUndoAction(OQueryTableView* pOwner, TranslateId pCommentID);
virtual ~OQueryTabConnUndoAction() override;
virtual void Undo() override = 0;
diff --git a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx
index 3171c8789dcb..2afe74db4232 100644
--- a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx
@@ -20,12 +20,11 @@
#include "QueryTabWinUndoAct.hxx"
#include <osl/diagnose.h>
#include "QTableWindow.hxx"
-#include <TableConnection.hxx>
#include "QueryDesignFieldUndoAct.hxx"
#include <QueryTableView.hxx>
using namespace dbaui;
-OQueryDesignFieldUndoAct::OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, const char* pCommentID)
+OQueryDesignFieldUndoAct::OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, TranslateId pCommentID)
: OCommentUndoAction(pCommentID)
, pOwner(pSelBrwBox)
, m_nColumnPosition(BROWSER_INVALIDID)
@@ -37,7 +36,7 @@ OQueryDesignFieldUndoAct::~OQueryDesignFieldUndoAct()
pOwner = nullptr;
}
-OQueryTabWinUndoAct::OQueryTabWinUndoAct(OQueryTableView* pOwner, const char* pCommentID)
+OQueryTabWinUndoAct::OQueryTabWinUndoAct(OQueryTableView* pOwner, TranslateId pCommentID)
: OQueryDesignUndoAction(pOwner, pCommentID)
, m_pTabWin(nullptr)
, m_bOwnerOfObjects(false)
diff --git a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx
index 992a6ff0f2b6..540f332757eb 100644
--- a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx
+++ b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx
@@ -27,8 +27,6 @@ namespace dbaui
{
// OQueryTabWinUndoAct - undo base class for all which is concerned with insert/remove TabWins
- class OQueryTableWindow;
- class OTableConnection;
class OQueryTableView;
class OQueryTabWinUndoAct : public OQueryDesignUndoAction
{
@@ -39,7 +37,7 @@ namespace dbaui
// am I the only owner of the managed objects? (changes with every redo or undo)
public:
- OQueryTabWinUndoAct(OQueryTableView* pOwner, const char* pCommentID);
+ OQueryTabWinUndoAct(OQueryTableView* pOwner, TranslateId pCommentID);
virtual ~OQueryTabWinUndoAct() override;
void SetOwnership(bool bTakeIt) { m_bOwnerOfObjects = bTakeIt; }
diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx b/dbaccess/source/ui/querydesign/QueryTableView.cxx
index 22a456e81ea9..2ca8c71b837f 100644
--- a/dbaccess/source/ui/querydesign/QueryTableView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx
@@ -19,7 +19,7 @@
#include <QueryTableView.hxx>
#include <TableFieldDescription.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <helpids.h>
#include "QTableWindow.hxx"
@@ -224,7 +224,7 @@ void OQueryTableView::ReSync()
pTabWin.disposeAndClear();
arrInvalidTables.push_back(pData->GetAliasName());
- rTabWinDataList.erase( std::remove(rTabWinDataList.begin(), rTabWinDataList.end(), *aIter), rTabWinDataList.end());
+ std::erase(rTabWinDataList, *aIter);
continue;
}
@@ -253,7 +253,7 @@ void OQueryTableView::ReSync()
if (bInvalid)
{
// no -> bad luck, no connection
- rTabConnDataList.erase( std::remove(rTabConnDataList.begin(), rTabConnDataList.end(), *aConIter), rTabConnDataList.end());
+ std::erase(rTabConnDataList, *aConIter);
continue;
}
@@ -353,7 +353,7 @@ void OQueryTableView::AddTabWin(const OUString& _rTableName, const OUString& _rA
}
// find the table which has a foreign key with this referencedTable name
-static Reference<XPropertySet> getKeyReferencedTo(const Reference<XIndexAccess>& _rxKeys,const OUString& _rReferencedTable)
+static Reference<XPropertySet> getKeyReferencedTo(const Reference<XIndexAccess>& _rxKeys,std::u16string_view _rReferencedTable)
{
if(!_rxKeys.is())
return Reference<XPropertySet>();
@@ -430,7 +430,7 @@ void OQueryTableView::AddTabWin(const OUString& _rComposedName, const OUString&
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
Any(),
- makeAny(pNewTabWin->GetAccessible())
+ Any(pNewTabWin->GetAccessible())
);
do {
@@ -493,10 +493,10 @@ void OQueryTableView::AddTabWin(const OUString& _rComposedName, const OUString&
if ( pTabWinTmp == pNewTabWin )
continue;
+ assert(pTabWinTmp && "TableWindow is null!");
if ( pTabWinTmp->GetData()->isQuery() )
continue;
- OSL_ENSURE(pTabWinTmp,"TableWindow is null!");
Reference< XPropertySet > xFKKey = getKeyReferencedTo( pTabWinTmp->GetData()->getKeys(), pNewTabWin->GetComposedName() );
if ( !xFKKey.is() )
continue;
@@ -561,11 +561,7 @@ void OQueryTableView::AddConnection(const OJoinExchangeData& jxdSource, const OJ
{
// the connection could point on the other side
if(pConn->GetSourceWin() == pDestWin)
- {
- OUString aTmp(aSourceFieldName);
- aSourceFieldName = aDestFieldName;
- aDestFieldName = aTmp;
- }
+ std::swap(aSourceFieldName, aDestFieldName);
pConn->GetData()->AppendConnLine( aSourceFieldName,aDestFieldName );
@@ -693,7 +689,7 @@ void OQueryTableView::RemoveTabWin(OTableWindow* pTabWin)
modified();
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
- makeAny(pTabWin->GetAccessible()),
+ Any(pTabWin->GetAccessible()),
Any()
);
}
@@ -738,7 +734,7 @@ void OQueryTableView::HideTabWin( OQueryTableWindow* pTabWin, OQueryTabWinUndoAc
// the TabWin data must also be passed out of my responsibility
TTableWindowData& rTabWinDataList = m_pView->getController().getTableWindowData();
- rTabWinDataList.erase( std::remove(rTabWinDataList.begin(), rTabWinDataList.end(), pTabWin->GetData()), rTabWinDataList.end());
+ std::erase(rTabWinDataList, pTabWin->GetData());
// The data should not be destroyed as TabWin itself - which is still alive - needs them
// Either it goes back into my responsibility, (via ShowTabWin), then I add the data back,
// or the Undo-Action, which currently has full responsibility for the window
@@ -755,7 +751,7 @@ void OQueryTableView::HideTabWin( OQueryTableWindow* pTabWin, OQueryTabWinUndoAc
{
VclPtr<OTableConnection> xTmpEntry = *aIter2;
OQueryTableConnection* pTmpEntry = static_cast<OQueryTableConnection*>(xTmpEntry.get());
- OSL_ENSURE(pTmpEntry,"OQueryTableConnection is null!");
+ assert(pTmpEntry && "OQueryTableConnection is null!");
if( pTmpEntry->GetAliasName(JTCS_FROM) == pTabWin->GetAliasName() ||
pTmpEntry->GetAliasName(JTCS_TO) == pTabWin->GetAliasName() )
{
@@ -880,7 +876,7 @@ void OQueryTableView::onNoColumns_throw()
::dbtools::throwSQLException( sError, ::dbtools::StandardSQLState::GENERAL_ERROR, nullptr );
}
-bool OQueryTableView::supressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const
+bool OQueryTableView::suppressCrossNaturalJoin(const TTableConnectionData::value_type& _pData) const
{
OQueryTableConnectionData* pQueryData = static_cast<OQueryTableConnectionData*>(_pData.get());
return pQueryData && (pQueryData->GetJoinType() == CROSS_JOIN);
diff --git a/dbaccess/source/ui/querydesign/QueryTextView.cxx b/dbaccess/source/ui/querydesign/QueryTextView.cxx
index 495d447030ba..d08de914530d 100644
--- a/dbaccess/source/ui/querydesign/QueryTextView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTextView.cxx
@@ -17,30 +17,30 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <sfx2/sfxsids.hrc>
#include <svx/svxids.hrc>
#include <QueryTextView.hxx>
#include <querycontainerwindow.hxx>
#include <helpids.h>
+#include <querycontroller.hxx>
#include <sqledit.hxx>
#include <undosqledit.hxx>
-#include <QueryDesignView.hxx>
using namespace dbaui;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
// end of temp classes
OQueryTextView::OQueryTextView(OQueryContainerWindow* pParent, OQueryController& rController)
- : InterimItemWindow(pParent, "dbaccess/ui/queryview.ui", "QueryView")
+ : InterimItemWindow(pParent, u"dbaccess/ui/queryview.ui"_ustr, u"QueryView"_ustr)
, m_rController(rController)
- , m_xSQL(new SQLEditView)
- , m_xSQLEd(new weld::CustomWeld(*m_xBuilder, "sql", *m_xSQL))
+ , m_xSQL(new SQLEditView(m_xBuilder->weld_scrolled_window(u"scrolledwindow"_ustr, true)))
+ , m_xSQLEd(new weld::CustomWeld(*m_xBuilder, u"sql"_ustr, *m_xSQL))
+ , m_timerUndoActionCreation("dbaccess OQueryTextView m_timerUndoActionCreation")
+ , m_timerInvalidate("dbaccess OQueryTextView m_timerInvalidate")
, m_bStopTimer(false)
{
m_xSQL->DisableInternalUndo();
m_xSQL->SetHelpId(HID_CTL_QRYSQLEDIT);
m_xSQL->SetModifyHdl(LINK(this, OQueryTextView, ModifyHdl));
+ m_xSQL->SetAcceptsTab(true);
m_timerUndoActionCreation.SetTimeout(1000);
m_timerUndoActionCreation.SetInvokeHandler(LINK(this, OQueryTextView, OnUndoActionTimer));
@@ -57,7 +57,7 @@ IMPL_LINK_NOARG(OQueryTextView, ModifyHdl, LinkParamNone*, void)
m_timerUndoActionCreation.Start();
if (!m_rController.isModified())
- m_rController.setModified( true );
+ m_rController.setModified(true);
m_rController.InvalidateFeature(SID_SBA_QRY_EXECUTE);
m_rController.InvalidateFeature(SID_CUT);
@@ -104,10 +104,7 @@ void OQueryTextView::stopTimer()
m_timerInvalidate.Stop();
}
-OQueryTextView::~OQueryTextView()
-{
- disposeOnce();
-}
+OQueryTextView::~OQueryTextView() { disposeOnce(); }
void OQueryTextView::dispose()
{
@@ -129,30 +126,21 @@ void OQueryTextView::GetFocus()
InterimItemWindow::GetFocus();
}
-OUString OQueryTextView::getStatement() const
-{
- return m_xSQL->GetText();
-}
+OUString OQueryTextView::getStatement() const { return m_xSQL->GetText(); }
void OQueryTextView::clear()
{
std::unique_ptr<OSqlEditUndoAct> xUndoAct(new OSqlEditUndoAct(*this));
xUndoAct->SetOriginalText(m_xSQL->GetText());
- m_rController.addUndoActionAndInvalidate( std::move(xUndoAct) );
+ m_rController.addUndoActionAndInvalidate(std::move(xUndoAct));
SetSQLText(OUString());
}
-void OQueryTextView::setStatement(const OUString& rsStatement)
-{
- SetSQLText(rsStatement);
-}
+void OQueryTextView::setStatement(const OUString& rsStatement) { SetSQLText(rsStatement); }
-OUString OQueryTextView::GetSQLText() const
-{
- return m_xSQL->GetText();
-}
+OUString OQueryTextView::GetSQLText() const { return m_xSQL->GetText(); }
void OQueryTextView::SetSQLText(const OUString& rNewText)
{
@@ -168,15 +156,9 @@ void OQueryTextView::SetSQLText(const OUString& rNewText)
m_strOrigText = rNewText;
}
-void OQueryTextView::copy()
-{
- m_xSQL->Copy();
-}
+void OQueryTextView::copy() { m_xSQL->Copy(); }
-bool OQueryTextView::isCutAllowed() const
-{
- return m_xSQL->HasSelection();
-}
+bool OQueryTextView::isCutAllowed() const { return m_xSQL->HasSelection(); }
void OQueryTextView::cut()
{
diff --git a/dbaccess/source/ui/querydesign/QueryViewSwitch.cxx b/dbaccess/source/ui/querydesign/QueryViewSwitch.cxx
index fec372e29038..a51f2941addb 100644
--- a/dbaccess/source/ui/querydesign/QueryViewSwitch.cxx
+++ b/dbaccess/source/ui/querydesign/QueryViewSwitch.cxx
@@ -23,7 +23,6 @@
#include <querycontainerwindow.hxx>
#include <adtabdlg.hxx>
#include <querycontroller.hxx>
-#include <sqledit.hxx>
using namespace dbaui;
using namespace ::com::sun::star::uno;
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
index ccb389c2dd06..b1b4ae673efa 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
@@ -17,6 +17,10 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
+#include <string_view>
+
#include "SelectionBrowseBox.hxx"
#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/sdbc/DataType.hpp>
@@ -44,6 +48,8 @@
#include <i18nlangtag/languagetag.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/svapp.hxx>
+#include <comphelper/diagnose_ex.hxx>
+#include <o3tl/string_view.hxx>
using namespace ::svt;
using namespace ::dbaui;
@@ -51,26 +57,24 @@ using namespace ::connectivity;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::util;
using namespace ::com::sun::star::accessibility;
#define DEFAULT_QUERY_COLS 20
-#define DEFAULT_SIZE GetTextWidth("0") * 30
+#define DEFAULT_SIZE GetTextWidth(u"0"_ustr) * 30
#define HANDLE_ID 0
#define HANDLE_COLUMN_WIDTH 70
#define SORT_COLUMN_NONE 0xFFFFFFFF
namespace
{
- bool isFieldNameAsterisk(const OUString& _sFieldName )
+ bool isFieldNameAsterisk(std::u16string_view _sFieldName )
{
- bool bAsterisk = _sFieldName.isEmpty() || _sFieldName.toChar() == '*';
+ bool bAsterisk = _sFieldName.empty() || _sFieldName[0] == '*';
if ( !bAsterisk )
{
sal_Int32 nTokenCount = comphelper::string::getTokenCount(_sFieldName, '.');
- if ( (nTokenCount == 2 && _sFieldName.getToken(1,'.')[0] == '*' )
- || (nTokenCount == 3 && _sFieldName.getToken(2,'.')[0] == '*' ) )
+ if ( (nTokenCount == 2 && o3tl::getToken(_sFieldName,1,'.')[0] == '*' )
+ || (nTokenCount == 3 && o3tl::getToken(_sFieldName,2,'.')[0] == '*' ) )
{
bAsterisk = true;
}
@@ -98,6 +102,7 @@ namespace
OSelectionBrowseBox::OSelectionBrowseBox( vcl::Window* pParent )
:EditBrowseBox( pParent,EditBrowseBoxFlags::NO_HANDLE_COLUMN_CONTENT, WB_3DLOOK, BrowserMode::COLUMNSELECTION | BrowserMode::KEEPHIGHLIGHT | BrowserMode::HIDESELECT |
BrowserMode::HIDECURSOR | BrowserMode::HLINES | BrowserMode::VLINES )
+ ,m_timerInvalidate("dbaccess OSelectionBrowseBox m_timerInvalidate")
,m_nSeekRow(0)
,m_nMaxColumns(0)
,m_aFunctionStrings(DBA_RES(STR_QUERY_FUNCTIONS))
@@ -140,7 +145,7 @@ OSelectionBrowseBox::OSelectionBrowseBox( vcl::Window* pParent )
const OUString aTxt(DBA_RES(STR_QUERY_SORTTEXT));
for (sal_Int32 nIdx {0}; nIdx>=0;)
- rOrderBox.append_text(aTxt.getToken(0, ';', nIdx));
+ rOrderBox.append_text(OUString(o3tl::getToken(aTxt, 0, ';', nIdx)));
m_bVisibleRow.insert(m_bVisibleRow.end(), BROW_ROW_CNT, true);
@@ -250,7 +255,7 @@ namespace
public:
explicit OSelectionBrwBoxHeader(OSelectionBrowseBox* pParent);
virtual ~OSelectionBrwBoxHeader() override { disposeOnce(); }
- virtual void dispose() override { m_pBrowseBox.clear(); ::svt::EditBrowserHeader::dispose(); }
+ virtual void dispose() override { m_pBrowseBox.reset(); ::svt::EditBrowserHeader::dispose(); }
};
OSelectionBrwBoxHeader::OSelectionBrwBoxHeader(OSelectionBrowseBox* pParent)
: ::svt::EditBrowserHeader(pParent,WB_BUTTONSTYLE|WB_DRAG)
@@ -375,7 +380,7 @@ void OSelectionBrowseBox::Init()
}
catch(const SQLException&)
{
- OSL_FAIL("Caught Exception when asking for database metadata options!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "Caught Exception when asking for database metadata options!");
m_nMaxColumns = 0;
}
}
@@ -429,7 +434,7 @@ void OSelectionBrowseBox::SetReadOnly(bool bRO)
}
}
-CellController* OSelectionBrowseBox::GetController(tools::Long nRow, sal_uInt16 nColId)
+CellController* OSelectionBrowseBox::GetController(sal_Int32 nRow, sal_uInt16 nColId)
{
if ( nColId > getFields().size() )
return nullptr;
@@ -442,7 +447,7 @@ CellController* OSelectionBrowseBox::GetController(tools::Long nRow, sal_uInt16
if (static_cast<OQueryController&>(getDesignView()->getController()).isReadOnly())
return nullptr;
- tools::Long nCellIndex = GetRealRow(nRow);
+ sal_Int32 nCellIndex = GetRealRow(nRow);
switch (nCellIndex)
{
case BROW_FIELD_ROW:
@@ -460,7 +465,7 @@ CellController* OSelectionBrowseBox::GetController(tools::Long nRow, sal_uInt16
}
}
-void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, tools::Long nRow, sal_uInt16 nColId)
+void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, sal_Int32 nRow, sal_uInt16 nColId)
{
OSL_ENSURE(nColId != BROWSER_INVALIDID,"An Invalid Id was set!");
if ( nColId == BROWSER_INVALIDID )
@@ -470,7 +475,7 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, too
return;
OTableFieldDescRef pEntry = getFields()[nPos-1];
OSL_ENSURE(pEntry.is(), "OSelectionBrowseBox::InitController : invalid FieldDescription !");
- tools::Long nCellIndex = GetRealRow(nRow);
+ sal_Int32 nCellIndex = GetRealRow(nRow);
switch (nCellIndex)
{
@@ -486,7 +491,7 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, too
getDesignView()->fillValidFields(aTable, rComboBox);
// replace with alias.*
- if (aField.trim() == "*")
+ if (o3tl::trim(aField) == u"*")
{
aField = aTable + ".*";
}
@@ -554,14 +559,14 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, too
Controller()->SaveValue();
}
-void OSelectionBrowseBox::notifyTableFieldChanged(const OUString& _sOldAlias, const OUString& _sAlias, bool& _bListAction, sal_uInt16 _nColumnId)
+void OSelectionBrowseBox::notifyTableFieldChanged(const OUString& _sOldAlias, std::u16string_view _sAlias, bool& _bListAction, sal_uInt16 _nColumnId)
{
appendUndoAction(_sOldAlias,_sAlias,BROW_TABLE_ROW,_bListAction);
if ( m_bVisibleRow[BROW_TABLE_ROW] )
RowModified(GetBrowseRow(BROW_TABLE_ROW), _nColumnId);
}
-void OSelectionBrowseBox::notifyFunctionFieldChanged(const OUString& _sOldFunctionName, const OUString& _sFunctionName, bool& _bListAction, sal_uInt16 _nColumnId)
+void OSelectionBrowseBox::notifyFunctionFieldChanged(const OUString& _sOldFunctionName, std::u16string_view _sFunctionName, bool& _bListAction, sal_uInt16 _nColumnId)
{
appendUndoAction(_sOldFunctionName,_sFunctionName,BROW_FUNCTION_ROW,_bListAction);
if ( !m_bVisibleRow[BROW_FUNCTION_ROW] )
@@ -569,7 +574,7 @@ void OSelectionBrowseBox::notifyFunctionFieldChanged(const OUString& _sOldFuncti
RowModified(GetBrowseRow(BROW_FUNCTION_ROW), _nColumnId);
}
-void OSelectionBrowseBox::clearEntryFunctionField(const OUString& _sFieldName,OTableFieldDescRef const & _pEntry, bool& _bListAction,sal_uInt16 _nColumnId)
+void OSelectionBrowseBox::clearEntryFunctionField(std::u16string_view _sFieldName,OTableFieldDescRef const & _pEntry, bool& _bListAction,sal_uInt16 _nColumnId)
{
if ( !(isFieldNameAsterisk( _sFieldName ) && (!_pEntry->isNoneFunction() || _pEntry->IsGroupBy())) )
return;
@@ -595,12 +600,12 @@ bool OSelectionBrowseBox::fillColumnRef(const OSQLParseNode* _pColumnRef, const
return fillColumnRef(sColumnName,sTableRange,_rxConnection->getMetaData(),_pEntry,_bListAction);
}
-bool OSelectionBrowseBox::fillColumnRef(const OUString& _sColumnName, const OUString& _sTableRange, const Reference<XDatabaseMetaData>& _xMetaData, OTableFieldDescRef const & _pEntry, bool& _bListAction)
+bool OSelectionBrowseBox::fillColumnRef(const OUString& _sColumnName, std::u16string_view _sTableRange, const Reference<XDatabaseMetaData>& _xMetaData, OTableFieldDescRef const & _pEntry, bool& _bListAction)
{
bool bError = false;
::comphelper::UStringMixEqual bCase(_xMetaData->supportsMixedCaseQuotedIdentifiers());
// check if the table name is the same
- if ( !_sTableRange.isEmpty() && (bCase(_pEntry->GetTable(),_sTableRange) || bCase(_pEntry->GetAlias(),_sTableRange)) )
+ if ( !_sTableRange.empty() && (bCase(_pEntry->GetTable(),_sTableRange) || bCase(_pEntry->GetAlias(),_sTableRange)) )
{ // a table was already inserted and the tables contains that column name
if ( !_pEntry->GetTabWindow() )
@@ -702,7 +707,7 @@ bool OSelectionBrowseBox::saveField(OUString& _sFieldName ,OTableFieldDescRef co
bool bQuote = ( nPass <= 2 );
bool bInternational = ( nPass % 2 ) == 0;
- OUString sSql {"SELECT "};
+ OUString sSql {u"SELECT "_ustr};
if ( bQuote )
sSql += sQuotedFullFieldName;
else
@@ -806,7 +811,7 @@ bool OSelectionBrowseBox::saveField(OUString& _sFieldName ,OTableFieldDescRef co
if ( nFunCount == 4 && SQL_ISRULE(pColumnRef->getChild(3),column_ref) )
bError = fillColumnRef( pColumnRef->getChild(3), xConnection, aSelEntry, _bListAction );
else if ( nFunCount == 3 ) // we have a COUNT(*) here, so take the first table
- bError = fillColumnRef( "*", OUString(), xMetaData, aSelEntry, _bListAction );
+ bError = fillColumnRef( u"*"_ustr, std::u16string_view(), xMetaData, aSelEntry, _bListAction );
else
{
nFunctionType |= FKT_NUMERIC;
@@ -905,15 +910,17 @@ bool OSelectionBrowseBox::SaveModified()
{
// for the Undo-action
OUString strOldCellContents,sNewValue;
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
bool bAppendRow = false;
switch (nRow)
{
case BROW_VIS_ROW:
{
bool bOldValue = m_pVisibleCell->GetBox().get_saved_state() != TRISTATE_FALSE;
- strOldCellContents = bOldValue ? OUStringLiteral(u"1") : OUStringLiteral(u"0");
- sNewValue = !bOldValue ? OUStringLiteral(u"1") : OUStringLiteral(u"0");
+ strOldCellContents
+ = bOldValue ? std::u16string_view(u"1") : std::u16string_view(u"0");
+ sNewValue
+ = !bOldValue ? std::u16string_view(u"1") : std::u16string_view(u"0");
}
if((m_bOrderByUnRelated || pEntry->GetOrderDir() == ORDER_NONE) &&
(m_bGroupByUnRelated || !pEntry->IsGroupBy()))
@@ -1045,7 +1052,7 @@ bool OSelectionBrowseBox::SaveModified()
sal_Int32 nPos = rComboBox.get_active();
// these functions are only available in CORE
OUString sFunctionName = rComboBox.get_text(nPos);
- OUString sGroupFunctionName = m_aFunctionStrings.copy(m_aFunctionStrings.lastIndexOf(';')+1);
+ std::u16string_view sGroupFunctionName = m_aFunctionStrings.subView(m_aFunctionStrings.lastIndexOf(';')+1);
bool bGroupBy = false;
if ( sGroupFunctionName == sFunctionName ) // check if the function name is GROUP
{
@@ -1056,7 +1063,7 @@ bool OSelectionBrowseBox::SaveModified()
// we have to change the visible flag, so we must append also an undo action
pEntry->SetVisible();
m_pVisibleCell->GetBox().set_active(true);
- appendUndoAction("0","1",BROW_VIS_ROW,bListAction);
+ appendUndoAction(u"0"_ustr,u"1",BROW_VIS_ROW,bListAction);
RowModified(GetBrowseRow(BROW_VIS_ROW), GetCurColumnId());
}
@@ -1197,7 +1204,7 @@ bool OSelectionBrowseBox::SaveModified()
{
// Default to visible
pEntry->SetVisible();
- appendUndoAction("0","1",BROW_VIS_ROW,bListAction);
+ appendUndoAction(u"0"_ustr,u"1",BROW_VIS_ROW,bListAction);
RowModified(BROW_VIS_ROW, GetCurColumnId());
// if required add empty columns
@@ -1211,7 +1218,7 @@ bool OSelectionBrowseBox::SaveModified()
return pEntry != nullptr && !bError;
}
-bool OSelectionBrowseBox::SeekRow(tools::Long nRow)
+bool OSelectionBrowseBox::SeekRow(sal_Int32 nRow)
{
m_nSeekRow = nRow;
return nRow < m_nVisibleCount;
@@ -1229,7 +1236,7 @@ void OSelectionBrowseBox::PaintCell(OutputDevice& rDev, const tools::Rectangle&
if (!pEntry.is())
return;
- tools::Long nRow = GetRealRow(m_nSeekRow);
+ sal_Int32 nRow = GetRealRow(m_nSeekRow);
if (nRow == BROW_VIS_ROW)
PaintTristate(rRect, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
else
@@ -1260,7 +1267,7 @@ void OSelectionBrowseBox::RemoveColumn(sal_uInt16 _nColumnId)
// ColId is synonymous to Position, and the condition should be valid
sal_uInt16 nCurCol = GetCurColumnId();
- tools::Long nCurrentRow = GetCurRow();
+ sal_Int32 nCurrentRow = GetCurRow();
DeactivateCell();
@@ -1483,7 +1490,7 @@ void OSelectionBrowseBox::InsertColumn(const OTableFieldDescRef& pEntry, sal_uIn
// -1 means at the end. Count means at the end, others denotes a correct position
sal_uInt16 nCurCol = GetCurColumnId();
- tools::Long nCurrentRow = GetCurRow();
+ sal_Int32 nCurrentRow = GetCurRow();
DeactivateCell();
@@ -1499,7 +1506,9 @@ void OSelectionBrowseBox::InsertColumn(const OTableFieldDescRef& pEntry, sal_uIn
getFields().size());
}
else
- ++_nColumnPosition; // within the list
+ {
+ _nColumnPosition = static_cast<sal_uInt16>(_nColumnPosition + 1); // within the list
+ }
nColumnId = GetColumnId(_nColumnPosition);
pEntry->SetColumnId( nColumnId );
getFields()[ _nColumnPosition - 1] = pEntry;
@@ -1548,7 +1557,7 @@ OTableFieldDescRef OSelectionBrowseBox::InsertField(const OJoinExchangeData& jxd
weld::TreeView& rTreeView = jxdSource.pListBox->get_widget();
OUString aFieldName = rTreeView.get_text(jxdSource.nEntry);
sal_uInt32 nFieldIndex = jxdSource.nEntry;
- OTableFieldInfo* pInf = reinterpret_cast<OTableFieldInfo*>(rTreeView.get_id(jxdSource.nEntry).toUInt64());
+ OTableFieldInfo* pInf = weld::fromId<OTableFieldInfo*>(rTreeView.get_id(jxdSource.nEntry));
// construct DragInfo, such that I use the other InsertField
OTableFieldDescRef aInfo = new OTableFieldDesc(pSourceWin->GetTableName(),aFieldName);
@@ -1609,7 +1618,7 @@ OTableFieldDescRef OSelectionBrowseBox::FindFirstFreeCol(sal_uInt16& _rColumnPos
for (auto const& field : getFields())
{
- ++_rColumnPosition;
+ _rColumnPosition = static_cast<sal_uInt16>(_rColumnPosition + 1);
OTableFieldDescRef pEntry = field;
if ( pEntry.is() && pEntry->IsEmpty() )
return pEntry;
@@ -1857,7 +1866,7 @@ bool OSelectionBrowseBox::Save()
void OSelectionBrowseBox::CellModified()
{
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_VIS_ROW:
@@ -1928,7 +1937,7 @@ void OSelectionBrowseBox::Command(const CommandEvent& rEvt)
}
sal_uInt16 nColId = GetColumnId(GetColumnAtXPosPixel( aMenuPos.X() ));
- tools::Long nRow = GetRowAtYPosPixel( aMenuPos.Y() );
+ sal_Int32 nRow = GetRowAtYPosPixel( aMenuPos.Y() );
if (nRow < 0 && nColId > HANDLE_ID )
{
@@ -1940,12 +1949,14 @@ void OSelectionBrowseBox::Command(const CommandEvent& rEvt)
if (!static_cast<OQueryController&>(getDesignView()->getController()).isReadOnly())
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/querycolmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- sal_uInt16 nItemId = aContextMenu->Execute(this, aMenuPos);
- if (nItemId == aContextMenu->GetItemId("delete"))
+ ::tools::Rectangle aRect(aMenuPos, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/querycolmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
+ if (sIdent == "delete")
RemoveField(nColId);
- else if (nItemId == aContextMenu->GetItemId("width"))
+ else if (sIdent == "width")
adjustBrowseBoxColumnWidth( this, nColId );
}
}
@@ -1953,16 +1964,16 @@ void OSelectionBrowseBox::Command(const CommandEvent& rEvt)
{
if (!static_cast<OQueryController&>(getDesignView()->getController()).isReadOnly())
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/queryfuncmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- aContextMenu->CheckItem("functions", m_bVisibleRow[BROW_FUNCTION_ROW]);
- aContextMenu->CheckItem("tablename", m_bVisibleRow[BROW_TABLE_ROW]);
- aContextMenu->CheckItem("alias", m_bVisibleRow[BROW_COLUMNALIAS_ROW]);
- aContextMenu->CheckItem("distinct", static_cast<OQueryController&>(getDesignView()->getController()).isDistinct());
-
- aContextMenu->Execute(this, aMenuPos);
-
- OString sIdent = aContextMenu->GetCurItemIdent();
+ ::tools::Rectangle aRect(aMenuPos, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/queryfuncmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ xContextMenu->set_active(u"functions"_ustr, m_bVisibleRow[BROW_FUNCTION_ROW]);
+ xContextMenu->set_active(u"tablename"_ustr, m_bVisibleRow[BROW_TABLE_ROW]);
+ xContextMenu->set_active(u"alias"_ustr, m_bVisibleRow[BROW_COLUMNALIAS_ROW]);
+ xContextMenu->set_active(u"distinct"_ustr, static_cast<OQueryController&>(getDesignView()->getController()).isDistinct());
+
+ OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
if (sIdent == "functions")
{
SetRowVisible(BROW_FUNCTION_ROW, !IsRowVisible(BROW_FUNCTION_ROW));
@@ -2034,10 +2045,10 @@ void OSelectionBrowseBox::SetRowVisible(sal_uInt16 _nWhich, bool _bVis)
ActivateCell();
}
-tools::Long OSelectionBrowseBox::GetBrowseRow(tools::Long nRowId) const
+sal_Int32 OSelectionBrowseBox::GetBrowseRow(sal_Int32 nRowId) const
{
- sal_uInt16 nCount(0);
- for(tools::Long i = 0 ; i < nRowId ; ++i)
+ sal_Int32 nCount(0);
+ for(sal_Int32 i = 0 ; i < nRowId ; ++i)
{
if ( m_bVisibleRow[i] )
++nCount;
@@ -2045,10 +2056,10 @@ tools::Long OSelectionBrowseBox::GetBrowseRow(tools::Long nRowId) const
return nCount;
}
-tools::Long OSelectionBrowseBox::GetRealRow(tools::Long nRowId) const
+sal_Int32 OSelectionBrowseBox::GetRealRow(sal_Int32 nRowId) const
{
- tools::Long nErg=0,i;
- const tools::Long nCount = m_bVisibleRow.size();
+ sal_Int32 nErg=0,i;
+ const sal_Int32 nCount = m_bVisibleRow.size();
for(i=0;i < nCount; ++i)
{
if(m_bVisibleRow[i] && nErg++ == nRowId)
@@ -2077,8 +2088,8 @@ sal_Int32 OSelectionBrowseBox::GetNoneVisibleRows() const
{
sal_Int32 nErg(0);
// only the first 11 rows are interesting
- sal_Int32 const nSize = SAL_N_ELEMENTS(nVisibleRowMask);
- for(sal_Int32 i=0;i<nSize;i++)
+ std::size_t const nSize = std::size(nVisibleRowMask);
+ for(std::size_t i=0;i<nSize;i++)
{
if(!m_bVisibleRow[i])
nErg |= nVisibleRowMask[i];
@@ -2086,18 +2097,20 @@ sal_Int32 OSelectionBrowseBox::GetNoneVisibleRows() const
return nErg;
}
-void OSelectionBrowseBox::SetNoneVisibleRow(tools::Long nRows)
+void OSelectionBrowseBox::SetNoneVisibleRow(sal_Int32 nRows)
{
// only the first 11 rows are interesting
- sal_Int32 const nSize = SAL_N_ELEMENTS(nVisibleRowMask);
- for(sal_Int32 i=0;i< nSize;i++)
+ std::size_t const nSize = std::size(nVisibleRowMask);
+ for(std::size_t i=0;i< nSize;i++)
m_bVisibleRow[i] = !(nRows & nVisibleRowMask[i]);
}
-OUString OSelectionBrowseBox::GetCellText(tools::Long nRow, sal_uInt16 nColId) const
+OUString OSelectionBrowseBox::GetCellText(sal_Int32 nRow, sal_uInt16 nColId) const
{
sal_uInt16 nPos = GetColumnPos(nColId);
+ if ( nPos == 0 || nPos == BROWSER_INVALIDID || nPos > getFields().size() )
+ return OUString();
OTableFieldDescRef pEntry = getFields()[nPos-1];
OSL_ENSURE(pEntry != nullptr, "OSelectionBrowseBox::GetCellText : invalid column id, prepare for GPF ... ");
@@ -2225,7 +2238,7 @@ OUString OSelectionBrowseBox::GetCellContents(sal_Int32 nCellIndex, sal_uInt16 n
switch (nCellIndex)
{
case BROW_VIS_ROW :
- return pEntry->IsVisible() ? std::u16string_view(u"1") : std::u16string_view(u"0");
+ return OUString(pEntry->IsVisible() ? std::u16string_view(u"1") : std::u16string_view(u"0"));
case BROW_ORDER_ROW:
{
sal_Int32 nIdx = m_pOrderCell->get_widget().get_active();
@@ -2269,16 +2282,16 @@ void OSelectionBrowseBox::SetCellContents(sal_Int32 nRow, sal_uInt16 nColId, con
break;
case BROW_FUNCTION_ROW:
{
- OUString sGroupFunctionName = m_aFunctionStrings.copy(m_aFunctionStrings.lastIndexOf(';')+1);
+ std::u16string_view sGroupFunctionName = m_aFunctionStrings.subView(m_aFunctionStrings.lastIndexOf(';')+1);
pEntry->SetFunction(strNewText);
// first reset this two member
sal_Int32 nFunctionType = pEntry->GetFunctionType();
nFunctionType &= ~FKT_AGGREGATE;
pEntry->SetFunctionType(nFunctionType);
- if ( pEntry->IsGroupBy() && !sGroupFunctionName.equalsIgnoreAsciiCase(strNewText) )
+ if ( pEntry->IsGroupBy() && !o3tl::equalsIgnoreAsciiCase(sGroupFunctionName, strNewText) )
pEntry->SetGroupBy(false);
- if ( sGroupFunctionName.equalsIgnoreAsciiCase(strNewText) )
+ if ( o3tl::equalsIgnoreAsciiCase(sGroupFunctionName, strNewText) )
pEntry->SetGroupBy(true);
else if ( !strNewText.isEmpty() )
{
@@ -2333,7 +2346,7 @@ void OSelectionBrowseBox::ColumnResized(sal_uInt16 nColId)
}
}
-sal_uInt32 OSelectionBrowseBox::GetTotalCellWidth(tools::Long nRowId, sal_uInt16 nColId)
+sal_uInt32 OSelectionBrowseBox::GetTotalCellWidth(sal_Int32 nRowId, sal_uInt16 nColId)
{
sal_uInt16 nPos = GetColumnPos(nColId);
OSL_ENSURE((nPos == 0) || (nPos <= getFields().size()), "OSelectionBrowseBox::GetTotalCellWidth : invalid parameter nColId");
@@ -2341,7 +2354,7 @@ sal_uInt32 OSelectionBrowseBox::GetTotalCellWidth(tools::Long nRowId, sal_uInt16
OTableFieldDescRef pEntry = getFields()[nPos-1];
OSL_ENSURE(pEntry.is(), "OSelectionBrowseBox::GetTotalCellWidth : invalid FieldDescription !");
- tools::Long nRow = GetRealRow(nRowId);
+ sal_Int32 nRow = GetRealRow(nRowId);
OUString strText(GetCellText(nRow, nColId));
return GetDataWindow().LogicToPixel(Size(GetDataWindow().GetTextWidth(strText),0)).Width();
}
@@ -2349,7 +2362,7 @@ sal_uInt32 OSelectionBrowseBox::GetTotalCellWidth(tools::Long nRowId, sal_uInt16
bool OSelectionBrowseBox::isCutAllowed() const
{
bool bCutAllowed = false;
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_VIS_ROW:
@@ -2377,7 +2390,7 @@ bool OSelectionBrowseBox::isCutAllowed() const
void OSelectionBrowseBox::cut()
{
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_FIELD_ROW:
@@ -2400,7 +2413,7 @@ void OSelectionBrowseBox::cut()
void OSelectionBrowseBox::paste()
{
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_FIELD_ROW:
@@ -2423,7 +2436,7 @@ void OSelectionBrowseBox::paste()
bool OSelectionBrowseBox::isPasteAllowed() const
{
bool bPasteAllowed = true;
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_VIS_ROW:
@@ -2443,7 +2456,7 @@ bool OSelectionBrowseBox::isCopyAllowed() const
void OSelectionBrowseBox::copy()
{
- tools::Long nRow = GetRealRow(GetCurRow());
+ sal_Int32 nRow = GetRealRow(GetCurRow());
switch (nRow)
{
case BROW_FIELD_ROW:
@@ -2461,7 +2474,7 @@ void OSelectionBrowseBox::copy()
}
}
-void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue, const OUString& _rNewValue, sal_Int32 _nRow, bool& _bListAction)
+void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue, std::u16string_view _rNewValue, sal_Int32 _nRow, bool& _bListAction)
{
if ( !m_bInUndoMode && _rNewValue != _rOldValue )
{
@@ -2474,7 +2487,7 @@ void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue, const OUS
}
}
-void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue,const OUString& _rNewValue,sal_Int32 _nRow)
+void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue,std::u16string_view _rNewValue,sal_Int32 _nRow)
{
if ( !m_bInUndoMode && _rNewValue != _rOldValue )
{
@@ -2523,7 +2536,7 @@ void OSelectionBrowseBox::enableControl(const OTableFieldDescRef& _rEntry,Window
_pControl->EnableInput(bEnable);
}
-void OSelectionBrowseBox::setTextCellContext(const OTableFieldDescRef& _rEntry,const OUString& _sText,const OString& _sHelpId)
+void OSelectionBrowseBox::setTextCellContext(const OTableFieldDescRef& _rEntry,const OUString& _sText,const OUString& _sHelpId)
{
weld::Entry& rEntry = m_pTextCell->get_widget();
rEntry.set_text(_sText);
@@ -2589,12 +2602,12 @@ OUString OSelectionBrowseBox::GetRowDescription( sal_Int32 _nRow ) const
return aLabel.getToken(nToken, ';');
}
-OUString OSelectionBrowseBox::GetAccessibleObjectName( ::vcl::AccessibleBrowseBoxObjType _eObjType,sal_Int32 _nPosition) const
+OUString OSelectionBrowseBox::GetAccessibleObjectName( AccessibleBrowseBoxObjType _eObjType,sal_Int32 _nPosition) const
{
OUString sRetText;
switch( _eObjType )
{
- case ::vcl::BBTYPE_ROWHEADERCELL:
+ case AccessibleBrowseBoxObjType::RowHeaderCell:
sRetText = GetRowDescription(_nPosition);
break;
default:
@@ -2682,7 +2695,7 @@ void OSelectionBrowseBox::setFunctionCell(OTableFieldDescRef const & _pEntry)
Reference< XAccessible > OSelectionBrowseBox::CreateAccessibleCell( sal_Int32 _nRow, sal_uInt16 _nColumnPos )
{
OTableFieldDescRef pEntry;
- if(getFields().size() > o3tl::make_unsigned(_nColumnPos - 1))
+ if ( _nColumnPos != 0 && _nColumnPos != BROWSER_INVALIDID && _nColumnPos <= getFields().size() )
pEntry = getFields()[_nColumnPos - 1];
if ( _nRow == BROW_VIS_ROW && pEntry.is() )
@@ -2691,7 +2704,7 @@ Reference< XAccessible > OSelectionBrowseBox::CreateAccessibleCell( sal_Int32 _n
return EditBrowseBox::CreateAccessibleCell( _nRow, _nColumnPos );
}
-bool OSelectionBrowseBox::HasFieldByAliasName(const OUString& rFieldName, OTableFieldDescRef const & rInfo) const
+bool OSelectionBrowseBox::HasFieldByAliasName(std::u16string_view rFieldName, OTableFieldDescRef const & rInfo) const
{
for (auto const& field : getFields())
{
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
index 7fe01622fcbd..d5e11c03e332 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
@@ -18,6 +18,10 @@
*/
#pragma once
+#include <sal/config.h>
+
+#include <string_view>
+
#include <svtools/editbrowsebox.hxx>
#include <TableFieldDescription.hxx>
#include <TableWindowListBox.hxx>
@@ -52,7 +56,7 @@ namespace dbaui
std::vector<bool> m_bVisibleRow; // at pos we find the RowId
Timer m_timerInvalidate;
- tools::Long m_nSeekRow;
+ sal_Int32 m_nSeekRow;
BrowserMode m_nMode; // remember the BrowseModes
VclPtr< ::svt::EditControl> m_pTextCell;
VclPtr< ::svt::CheckBoxControl> m_pVisibleCell;
@@ -86,7 +90,7 @@ namespace dbaui
void RemoveColumn( sal_uInt16 _nColumnId );
void DeleteFields( const OUString& rAliasName );
- bool HasFieldByAliasName(const OUString& rFieldName, OTableFieldDescRef const & rInfo) const;
+ bool HasFieldByAliasName(std::u16string_view rFieldName, OTableFieldDescRef const & rInfo) const;
// AddGroupBy:: inserts a field with function == grouping. If the fields already exists and uses an aggregate function,
// the flag is not set
@@ -111,7 +115,7 @@ namespace dbaui
void SetCellContents(sal_Int32 nCellIndex, sal_uInt16 nColId, const OUString& strNewText);
// cell content (formatted as string) set/return
sal_Int32 GetNoneVisibleRows() const;
- void SetNoneVisibleRow(tools::Long nRows);
+ void SetNoneVisibleRow(sal_Int32 nRows);
bool IsRowVisible(sal_uInt16 _nWhich) const;
void SetRowVisible(sal_uInt16 _nWhich, bool _bVis);
@@ -150,7 +154,7 @@ namespace dbaui
@return
the text out of the cell
*/
- virtual OUString GetCellText(tools::Long _nRow, sal_uInt16 _nColId) const override;
+ virtual OUString GetCellText(sal_Int32 _nRow, sal_uInt16 _nColId) const override;
/** returns the description of the row.
@param _nRow
@@ -168,7 +172,7 @@ namespace dbaui
@return
The name of the specified object.
*/
- virtual OUString GetAccessibleObjectName( ::vcl::AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition = -1) const override;
+ virtual OUString GetAccessibleObjectName( AccessibleBrowseBoxObjType eObjType,sal_Int32 _nPosition = -1) const override;
// IAccessibleTableProvider
/** Creates the accessible object of a data table cell.
@@ -178,7 +182,7 @@ namespace dbaui
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCell( sal_Int32 nRow, sal_uInt16 nColumnId ) override;
private:
- virtual bool SeekRow( tools::Long nRow ) override;
+ virtual bool SeekRow( sal_Int32 nRow ) override;
virtual void PaintStatusCell(OutputDevice& rDev, const tools::Rectangle& rRect) const override;
virtual void PaintCell(OutputDevice& rDev, const tools::Rectangle& rRect,
@@ -191,14 +195,14 @@ namespace dbaui
virtual void KeyInput( const KeyEvent& rEvt ) override;
virtual void Command(const CommandEvent& rEvt) override;
- virtual ::svt::CellController* GetController(tools::Long nRow, sal_uInt16 nCol) override;
- virtual void InitController(::svt::CellControllerRef& rController, tools::Long nRow, sal_uInt16 nCol) override;
+ virtual ::svt::CellController* GetController(sal_Int32 nRow, sal_uInt16 nCol) override;
+ virtual void InitController(::svt::CellControllerRef& rController, sal_Int32 nRow, sal_uInt16 nCol) override;
virtual void CellModified() override;
virtual bool SaveModified() override;
virtual void Init() override;
virtual void ColumnResized( sal_uInt16 nColId ) override;
- virtual sal_uInt32 GetTotalCellWidth(tools::Long nRow, sal_uInt16 nColId) override;
+ virtual sal_uInt32 GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId) override;
// if you want to have an own header ...
virtual VclPtr<BrowserHeader> imp_CreateHeaderBar(BrowseBox* pParent) override;
@@ -216,14 +220,14 @@ namespace dbaui
void RemoveField( sal_uInt16 nId );
tools::Rectangle GetInvalidRect( sal_uInt16 nColId );
- tools::Long GetRealRow(tools::Long nRow) const;
- tools::Long GetBrowseRow(tools::Long nRowId) const;
+ sal_Int32 GetRealRow(sal_Int32 nRow) const;
+ sal_Int32 GetBrowseRow(sal_Int32 nRowId) const;
bool GetFunctionName(sal_uInt32 _nFunctionTokenId, OUString& rFkt);
- void appendUndoAction(const OUString& _rOldValue,const OUString& _rNewValue,sal_Int32 _nRow, bool& _bListAction);
- void appendUndoAction(const OUString& _rOldValue,const OUString& _rNewValue,sal_Int32 _nRow);
+ void appendUndoAction(const OUString& _rOldValue,std::u16string_view _rNewValue,sal_Int32 _nRow, bool& _bListAction);
+ void appendUndoAction(const OUString& _rOldValue,std::u16string_view _rNewValue,sal_Int32 _nRow);
OTableFields& getFields() const;
static void enableControl(const OTableFieldDescRef& _rEntry,Window* _pControl);
- void setTextCellContext(const OTableFieldDescRef& _rEntry,const OUString& _sText,const OString& _sHelpId);
+ void setTextCellContext(const OTableFieldDescRef& _rEntry,const OUString& _sText,const OUString& _sHelpId);
void invalidateUndoRedo();
OTableFieldDescRef getEntry(OTableFields::size_type _nPos);
@@ -268,7 +272,7 @@ namespace dbaui
OTableFieldDescRef const & _pEntry,
bool& _bListAction);
bool fillColumnRef( const OUString& _sColumnName,
- const OUString& _sTableRange,
+ std::u16string_view _sTableRange,
const css::uno::Reference< css::sdbc::XDatabaseMetaData >& _xMetaData,
OTableFieldDescRef const & _pEntry,
bool& _bListAction);
@@ -281,7 +285,7 @@ namespace dbaui
@param _bListAction
Will be set to <TRUE/> when we are in a list action otherwise <FALSE/>
*/
- void notifyTableFieldChanged(const OUString& _sOldAlias,const OUString& _sAlias, bool& _bListAction,sal_uInt16 _nColumnId);
+ void notifyTableFieldChanged(const OUString& _sOldAlias,std::u16string_view _sAlias, bool& _bListAction,sal_uInt16 _nColumnId);
/** append an undo action for the function field
@param _sOldFunctionName
@@ -291,7 +295,7 @@ namespace dbaui
@param _bListAction
Will be set to <TRUE/> when we are in a list action otherwise <FALSE/>
*/
- void notifyFunctionFieldChanged(const OUString& _sOldFunctionName,const OUString& _sFunctionName, bool& _bListAction,sal_uInt16 _nColumnId);
+ void notifyFunctionFieldChanged(const OUString& _sOldFunctionName,std::u16string_view _sFunctionName, bool& _bListAction,sal_uInt16 _nColumnId);
/** clears the function fields of the submitted entry if it doesn't match the SQL standard and append an undo action.
E.q. AGGREGATE functions are only valid when the field name isn't an asterisk
@@ -302,7 +306,7 @@ namespace dbaui
@param _bListAction
When <TRUE/> a list action will be created.
*/
- void clearEntryFunctionField(const OUString& _sFieldName,OTableFieldDescRef const & _pEntry, bool& _bListAction,sal_uInt16 _nColumnId);
+ void clearEntryFunctionField(std::u16string_view _sFieldName,OTableFieldDescRef const & _pEntry, bool& _bListAction,sal_uInt16 _nColumnId);
/** remove or insert the necessary function types
@param _pEntry
diff --git a/dbaccess/source/ui/querydesign/TableConnection.cxx b/dbaccess/source/ui/querydesign/TableConnection.cxx
index ada4b5990890..1e9d31f419c0 100644
--- a/dbaccess/source/ui/querydesign/TableConnection.cxx
+++ b/dbaccess/source/ui/querydesign/TableConnection.cxx
@@ -21,17 +21,16 @@
#include <ConnectionLine.hxx>
#include <TableConnectionData.hxx>
#include <JoinTableView.hxx>
+#include <utility>
using namespace dbaui;
-using namespace comphelper;
-using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::accessibility;
namespace dbaui
{
- OTableConnection::OTableConnection( OJoinTableView* _pContainer,const TTableConnectionData::value_type& _pTabConnData )
+ OTableConnection::OTableConnection( OJoinTableView* _pContainer, TTableConnectionData::value_type _aTabConnData )
:Window(_pContainer)
- ,m_pData( _pTabConnData )
+ ,m_pData(std::move( _aTabConnData ))
,m_pParent( _pContainer )
,m_bSelected( false )
{
diff --git a/dbaccess/source/ui/querydesign/TableConnectionData.cxx b/dbaccess/source/ui/querydesign/TableConnectionData.cxx
index 107d8a9d1a48..aa524a5ac7f9 100644
--- a/dbaccess/source/ui/querydesign/TableConnectionData.cxx
+++ b/dbaccess/source/ui/querydesign/TableConnectionData.cxx
@@ -18,6 +18,7 @@
*/
#include <TableConnectionData.hxx>
+#include <utility>
#include <osl/diagnose.h>
using namespace dbaui;
@@ -27,10 +28,10 @@ OTableConnectionData::OTableConnectionData()
Init();
}
-OTableConnectionData::OTableConnectionData(const TTableWindowData::value_type& _pReferencingTable
- ,const TTableWindowData::value_type& _pReferencedTable )
- :m_pReferencingTable(_pReferencingTable)
- ,m_pReferencedTable(_pReferencedTable)
+OTableConnectionData::OTableConnectionData(TTableWindowData::value_type _pReferencingTable
+ ,TTableWindowData::value_type _pReferencedTable )
+ :m_pReferencingTable(std::move(_pReferencingTable))
+ ,m_pReferencedTable(std::move(_pReferencedTable))
{
Init();
}
diff --git a/dbaccess/source/ui/querydesign/TableFieldDescription.cxx b/dbaccess/source/ui/querydesign/TableFieldDescription.cxx
index 95476cafd51e..b835f3b62aff 100644
--- a/dbaccess/source/ui/querydesign/TableFieldDescription.cxx
+++ b/dbaccess/source/ui/querydesign/TableFieldDescription.cxx
@@ -22,9 +22,7 @@
#include <osl/diagnose.h>
#include <com/sun/star/sdbc/DataType.hpp>
#include <comphelper/namedvaluecollection.hxx>
-#include <vcl/window.hxx>
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace comphelper;
@@ -132,23 +130,23 @@ void OTableFieldDesc::Load( const css::beans::PropertyValue& i_rSettings, const
{
::comphelper::NamedValueCollection aFieldDesc( i_rSettings.Value );
- m_aAliasName = aFieldDesc.getOrDefault( "AliasName", m_aAliasName );
- m_aTableName = aFieldDesc.getOrDefault( "TableName", m_aTableName );
- m_aFieldName = aFieldDesc.getOrDefault( "FieldName", m_aFieldName );
- m_aFieldAlias = aFieldDesc.getOrDefault( "FieldAlias", m_aFieldAlias );
- m_aFunctionName = aFieldDesc.getOrDefault( "FunctionName", m_aFunctionName );
- m_eDataType = aFieldDesc.getOrDefault( "DataType", m_eDataType );
- m_eFunctionType = aFieldDesc.getOrDefault( "FunctionType", m_eFunctionType );
- m_nColWidth = aFieldDesc.getOrDefault( "ColWidth", m_nColWidth );
- m_bGroupBy = aFieldDesc.getOrDefault( "GroupBy", m_bGroupBy );
- m_bVisible = aFieldDesc.getOrDefault( "Visible", m_bVisible );
-
- m_eFieldType = static_cast< ETableFieldType >( aFieldDesc.getOrDefault( "FieldType", static_cast< sal_Int32 >( m_eFieldType ) ) );
- m_eOrderDir = static_cast< EOrderDir >( aFieldDesc.getOrDefault( "OrderDir", static_cast< sal_Int32 >( m_eOrderDir ) ) );
+ m_aAliasName = aFieldDesc.getOrDefault( u"AliasName"_ustr, m_aAliasName );
+ m_aTableName = aFieldDesc.getOrDefault( u"TableName"_ustr, m_aTableName );
+ m_aFieldName = aFieldDesc.getOrDefault( u"FieldName"_ustr, m_aFieldName );
+ m_aFieldAlias = aFieldDesc.getOrDefault( u"FieldAlias"_ustr, m_aFieldAlias );
+ m_aFunctionName = aFieldDesc.getOrDefault( u"FunctionName"_ustr, m_aFunctionName );
+ m_eDataType = aFieldDesc.getOrDefault( u"DataType"_ustr, m_eDataType );
+ m_eFunctionType = aFieldDesc.getOrDefault( u"FunctionType"_ustr, m_eFunctionType );
+ m_nColWidth = aFieldDesc.getOrDefault( u"ColWidth"_ustr, m_nColWidth );
+ m_bGroupBy = aFieldDesc.getOrDefault( u"GroupBy"_ustr, m_bGroupBy );
+ m_bVisible = aFieldDesc.getOrDefault( u"Visible"_ustr, m_bVisible );
+
+ m_eFieldType = static_cast< ETableFieldType >( aFieldDesc.getOrDefault( u"FieldType"_ustr, static_cast< sal_Int32 >( m_eFieldType ) ) );
+ m_eOrderDir = static_cast< EOrderDir >( aFieldDesc.getOrDefault( u"OrderDir"_ustr, static_cast< sal_Int32 >( m_eOrderDir ) ) );
if ( i_bIncludingCriteria )
{
- const Sequence< PropertyValue > aCriteria( aFieldDesc.getOrDefault( "Criteria", Sequence< PropertyValue >() ) );
+ const Sequence< PropertyValue > aCriteria( aFieldDesc.getOrDefault( u"Criteria"_ustr, Sequence< PropertyValue >() ) );
m_aCriteria.resize( aCriteria.getLength() );
std::transform(
aCriteria.begin(),
@@ -162,18 +160,18 @@ void OTableFieldDesc::Load( const css::beans::PropertyValue& i_rSettings, const
void OTableFieldDesc::Save( ::comphelper::NamedValueCollection& o_rSettings, const bool i_bIncludingCriteria )
{
- o_rSettings.put( "AliasName", m_aAliasName );
- o_rSettings.put( "TableName", m_aTableName );
- o_rSettings.put( "FieldName", m_aFieldName );
- o_rSettings.put( "FieldAlias", m_aFieldAlias );
- o_rSettings.put( "FunctionName", m_aFunctionName );
- o_rSettings.put( "DataType", m_eDataType );
- o_rSettings.put( "FunctionType", m_eFunctionType );
- o_rSettings.put( "FieldType", static_cast<sal_Int32>(m_eFieldType) );
- o_rSettings.put( "OrderDir", static_cast<sal_Int32>(m_eOrderDir) );
- o_rSettings.put( "ColWidth", m_nColWidth );
- o_rSettings.put( "GroupBy", m_bGroupBy );
- o_rSettings.put( "Visible", m_bVisible );
+ o_rSettings.put( u"AliasName"_ustr, m_aAliasName );
+ o_rSettings.put( u"TableName"_ustr, m_aTableName );
+ o_rSettings.put( u"FieldName"_ustr, m_aFieldName );
+ o_rSettings.put( u"FieldAlias"_ustr, m_aFieldAlias );
+ o_rSettings.put( u"FunctionName"_ustr, m_aFunctionName );
+ o_rSettings.put( u"DataType"_ustr, m_eDataType );
+ o_rSettings.put( u"FunctionType"_ustr, m_eFunctionType );
+ o_rSettings.put( u"FieldType"_ustr, static_cast<sal_Int32>(m_eFieldType) );
+ o_rSettings.put( u"OrderDir"_ustr, static_cast<sal_Int32>(m_eOrderDir) );
+ o_rSettings.put( u"ColWidth"_ustr, m_nColWidth );
+ o_rSettings.put( u"GroupBy"_ustr, m_bGroupBy );
+ o_rSettings.put( u"Visible"_ustr, m_bVisible );
if ( !i_bIncludingCriteria )
return;
@@ -183,14 +181,15 @@ void OTableFieldDesc::Save( ::comphelper::NamedValueCollection& o_rSettings, con
sal_Int32 c = 0;
Sequence< PropertyValue > aCriteria( m_aCriteria.size() );
+ auto pCriteria = aCriteria.getArray();
for (auto const& criteria : m_aCriteria)
{
- aCriteria[c].Name = "Criterion_" + OUString::number( c );
- aCriteria[c].Value <<= criteria;
+ pCriteria[c].Name = "Criterion_" + OUString::number( c );
+ pCriteria[c].Value <<= criteria;
++c;
}
- o_rSettings.put( "Criteria", aCriteria );
+ o_rSettings.put( u"Criteria"_ustr, aCriteria );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/TableFieldInfo.cxx b/dbaccess/source/ui/querydesign/TableFieldInfo.cxx
index 15c60b83352d..808862c11c4e 100644
--- a/dbaccess/source/ui/querydesign/TableFieldInfo.cxx
+++ b/dbaccess/source/ui/querydesign/TableFieldInfo.cxx
@@ -21,12 +21,9 @@
using namespace dbaui;
-OTableFieldInfo::OTableFieldInfo() :
- m_eFieldType(TAB_NORMAL_FIELD), m_eDataType(1000)
-{
-}
-
-OTableFieldInfo::~OTableFieldInfo()
+OTableFieldInfo::OTableFieldInfo()
+ : m_eFieldType(TAB_NORMAL_FIELD)
+ , m_eDataType(1000)
{
}
diff --git a/dbaccess/source/ui/querydesign/TableFieldInfo.hxx b/dbaccess/source/ui/querydesign/TableFieldInfo.hxx
index 14e588845d39..e7d2c9b72da4 100644
--- a/dbaccess/source/ui/querydesign/TableFieldInfo.hxx
+++ b/dbaccess/source/ui/querydesign/TableFieldInfo.hxx
@@ -31,7 +31,6 @@ namespace dbaui
public:
OTableFieldInfo();
- ~OTableFieldInfo();
ETableFieldType GetKeyType() const { return m_eFieldType; }
void SetKey(ETableFieldType bKey) { m_eFieldType = bKey; }
diff --git a/dbaccess/source/ui/querydesign/TableWindow.cxx b/dbaccess/source/ui/querydesign/TableWindow.cxx
index 5744f58bdb3e..ac48bab4bb34 100644
--- a/dbaccess/source/ui/querydesign/TableWindow.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindow.cxx
@@ -25,12 +25,15 @@
#include <JoinTableView.hxx>
#include <JoinDesignView.hxx>
#include <osl/diagnose.h>
+#include <utility>
#include <vcl/svapp.hxx>
-#include <vcl/wall.hxx>
#include <vcl/settings.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
#include <vcl/ptrstyle.hxx>
+#include <vcl/wall.hxx>
+#include <vcl/weldutils.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <com/sun/star/container/XContainer.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
@@ -39,19 +42,13 @@
#include <bitmaps.hlst>
#include <TableWindowAccess.hxx>
#include <connectivity/dbtools.hxx>
-#include <vcl/builder.hxx>
-#include <vcl/menu.hxx>
using namespace dbaui;
-using namespace ::utl;
using namespace ::com::sun::star;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::accessibility;
namespace DatabaseObject = css::sdb::application::DatabaseObject;
@@ -86,17 +83,15 @@ void Draw3DBorder(vcl::RenderContext& rRenderContext, const tools::Rectangle& rR
}
-OTableWindow::OTableWindow( vcl::Window* pParent, const TTableWindowData::value_type& pTabWinData )
- : ::comphelper::OContainerListener(m_aMutex)
- ,Window( pParent, WB_3DLOOK|WB_MOVEABLE )
- ,m_aTypeImage( VclPtr<FixedImage>::Create(this) )
- ,m_xTitle( VclPtr<OTableWindowTitle>::Create(this) )
- ,m_pData( pTabWinData )
- ,m_nMoveCount(0)
- ,m_nMoveIncrement(1)
- ,m_nSizingFlags( SizingFlags::NONE )
+OTableWindow::OTableWindow( vcl::Window* pParent, TTableWindowData::value_type pTabWinData )
+ : ::comphelper::OContainerListener(m_aMutex)
+ , Window( pParent, WB_3DLOOK|WB_MOVEABLE )
+ , m_xTitle( VclPtr<OTableWindowTitle>::Create(this) )
+ , m_pData(std::move( pTabWinData ))
+ , m_nMoveCount(0)
+ , m_nMoveIncrement(1)
+ , m_nSizingFlags( SizingFlags::NONE )
{
-
// Set position and size
if( GetData()->HasPosition() )
SetPosPixel( GetData()->GetPosition() );
@@ -129,7 +124,6 @@ void OTableWindow::dispose()
if ( m_pContainerListener.is() )
m_pContainerListener->dispose();
- m_aTypeImage.disposeAndClear();
m_xTitle.disposeAndClear();
vcl::Window::dispose();
}
@@ -195,7 +189,7 @@ void OTableWindow::FillListBox()
if (GetData()->IsShowAll())
{
- rTreeView.append(OUString::number(reinterpret_cast<sal_uInt64>(createUserData(nullptr,false))), OUString("*"));
+ rTreeView.append(weld::toId(createUserData(nullptr,false)), u"*"_ustr);
}
Reference<XNameAccess> xPKeyColumns;
@@ -205,27 +199,23 @@ void OTableWindow::FillListBox()
}
catch(Exception&)
{
- OSL_FAIL("Exception occurred!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "");
}
try
{
Reference< XNameAccess > xColumns = m_pData->getColumns();
if( xColumns.is() )
{
- Sequence< OUString> aColumns = xColumns->getElementNames();
- const OUString* pIter = aColumns.getConstArray();
- const OUString* pEnd = pIter + aColumns.getLength();
-
- for (; pIter != pEnd; ++pIter)
+ for (auto& column : xColumns->getElementNames())
{
- bool bPrimaryKeyColumn = xPKeyColumns.is() && xPKeyColumns->hasByName( *pIter );
+ bool bPrimaryKeyColumn = xPKeyColumns.is() && xPKeyColumns->hasByName(column);
OUString sId;
- Reference<XPropertySet> xColumn(xColumns->getByName(*pIter),UNO_QUERY);
+ Reference<XPropertySet> xColumn(xColumns->getByName(column), UNO_QUERY);
if (xColumn.is())
- sId = OUString::number(reinterpret_cast<sal_uInt64>(createUserData(xColumn, bPrimaryKeyColumn)));
+ sId = weld::toId(createUserData(xColumn, bPrimaryKeyColumn));
- rTreeView.append(sId, *pIter);
+ rTreeView.append(sId, column);
// is this column in the primary key
if ( bPrimaryKeyColumn )
@@ -236,7 +226,7 @@ void OTableWindow::FillListBox()
}
catch(Exception&)
{
- OSL_FAIL("Exception occurred!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "");
}
}
@@ -258,7 +248,7 @@ void OTableWindow::clearListBox()
weld::TreeView& rTreeView = m_xListBox->get_widget();
rTreeView.all_foreach([this, &rTreeView](weld::TreeIter& rEntry){
- void* pUserData = reinterpret_cast<void*>(rTreeView.get_id(rEntry).toUInt64());
+ void* pUserData = weld::fromId<void*>(rTreeView.get_id(rEntry));
deleteUserData(pUserData);
return false;
});
@@ -268,19 +258,10 @@ void OTableWindow::clearListBox()
void OTableWindow::impl_updateImage()
{
+ weld::Image& rImage = m_xTitle->GetImage();
ImageProvider aImageProvider( getDesignView()->getController().getConnection() );
-
- Image aImage;
- aImageProvider.getImages( GetComposedName(), m_pData->isQuery() ? DatabaseObject::QUERY : DatabaseObject::TABLE, aImage );
-
- if ( !aImage )
- {
- OSL_FAIL( "OTableWindow::impl_updateImage: no images!" );
- return;
- }
-
- m_aTypeImage->SetModeImage( aImage );
- m_aTypeImage->Show();
+ rImage.set_from_icon_name(aImageProvider.getImageId(GetComposedName(), m_pData->isQuery() ? DatabaseObject::QUERY : DatabaseObject::TABLE));
+ rImage.show();
}
bool OTableWindow::Init()
@@ -294,7 +275,9 @@ bool OTableWindow::Init()
}
// Set the title
- m_xTitle->SetText( m_pData->GetWinName() );
+ weld::Label& rLabel = m_xTitle->GetLabel();
+ rLabel.set_label(m_pData->GetWinName());
+ rLabel.set_tooltip_text(GetComposedName());
m_xTitle->Show();
m_xListBox->Show();
@@ -436,15 +419,10 @@ void OTableWindow::Resize()
tools::Long nPositionX = n5Pos;
tools::Long nPositionY = n5Pos;
- // position the image which indicates the type
- m_aTypeImage->SetPosPixel( Point( nPositionX, nPositionY ) );
- Size aImageSize( m_aTypeImage->GetImage().GetSizePixel() );
- m_aTypeImage->SetSizePixel( aImageSize );
-
- if ( nTitleHeight < aImageSize.Height() )
- nTitleHeight = aImageSize.Height();
+ Size aPreferredSize = m_xTitle->get_preferred_size();
+ if (nTitleHeight < aPreferredSize.Height())
+ nTitleHeight = aPreferredSize.Height();
- nPositionX += aImageSize.Width() + CalcZoom( 2 );
m_xTitle->SetPosSizePixel( Point( nPositionX, nPositionY ), Size( aOutSize.Width() - nPositionX - n5Pos, nTitleHeight ) );
tools::Long nTitleToList = CalcZoom( 3 );
@@ -459,10 +437,10 @@ void OTableWindow::Resize()
void OTableWindow::SetBoldTitle( bool bBold )
{
- vcl::Font aFont = m_xTitle->GetFont();
- aFont.SetWeight( bBold?WEIGHT_BOLD:WEIGHT_NORMAL );
- m_xTitle->SetFont( aFont );
- m_xTitle->Invalidate();
+ weld::Label& rLabel = m_xTitle->GetLabel();
+ vcl::Font aFont = rLabel.get_font();
+ aFont.SetWeight(bBold ? WEIGHT_BOLD : WEIGHT_NORMAL);
+ rLabel.set_font(aFont);
}
void OTableWindow::GetFocus()
@@ -524,7 +502,7 @@ void OTableWindow::StateChanged( StateChangedType nType )
vcl::Font aFont = rStyleSettings.GetGroupFont();
if ( IsControlFont() )
aFont.Merge( GetControlFont() );
- SetZoomedPointFont(*this, aFont);
+ SetZoomedPointFont(*GetOutDev(), aFont);
m_xTitle->SetZoom(GetZoom());
m_xListBox->SetZoom(GetZoom());
@@ -559,9 +537,11 @@ void OTableWindow::Command(const CommandEvent& rEvt)
ptWhere = m_xTitle->GetPosPixel();
}
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/jointablemenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- if (aContextMenu->Execute(this, ptWhere))
+ ::tools::Rectangle aRect(ptWhere, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/jointablemenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ if (!xContextMenu->popup_at_rect(pPopupParent, aRect).isEmpty())
Remove();
}
break;
@@ -576,7 +556,7 @@ bool OTableWindow::PreNotify(NotifyEvent& rNEvt)
bool bHandled = false;
switch (rNEvt.GetType())
{
- case MouseNotifyEvent::KEYINPUT:
+ case NotifyEventType::KEYINPUT:
{
if ( getDesignView()->getController().isReadOnly() )
break;
@@ -686,7 +666,7 @@ bool OTableWindow::PreNotify(NotifyEvent& rNEvt)
}
break;
}
- case MouseNotifyEvent::KEYUP:
+ case NotifyEventType::KEYUP:
{
const KeyEvent* pKeyEvent = rNEvt.GetKeyEvent();
const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode();
@@ -708,7 +688,7 @@ bool OTableWindow::PreNotify(NotifyEvent& rNEvt)
OUString OTableWindow::getTitle() const
{
- return m_xTitle->GetText();
+ return m_xTitle->GetLabel().get_label();
}
void OTableWindow::_elementInserted( const container::ContainerEvent& /*_rEvent*/ )
diff --git a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
index 1dc69e763d5d..1c524c27a82e 100644
--- a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
@@ -24,19 +24,17 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <comphelper/sequence.hxx>
#include <vcl/vclevent.hxx>
namespace dbaui
{
using namespace ::com::sun::star::accessibility;
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star;
OTableWindowAccess::OTableWindowAccess(OTableWindow* _pTable)
- :VCLXAccessibleComponent(_pTable->GetComponentInterface().is() ? _pTable->GetWindowPeer() : nullptr)
+ :ImplInheritanceHelper(_pTable)
,m_pTable(_pTable)
{
}
@@ -55,29 +53,19 @@ namespace dbaui
VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
}
- Any SAL_CALL OTableWindowAccess::queryInterface( const Type& aType )
- {
- Any aRet(VCLXAccessibleComponent::queryInterface( aType ));
- return aRet.hasValue() ? aRet : OTableWindowAccess_BASE::queryInterface( aType );
- }
- Sequence< Type > SAL_CALL OTableWindowAccess::getTypes( )
- {
- return ::comphelper::concatSequences(VCLXAccessibleComponent::getTypes(),OTableWindowAccess_BASE::getTypes());
- }
OUString SAL_CALL OTableWindowAccess::getImplementationName()
{
- return "org.openoffice.comp.dbu.TableWindowAccessibility";
+ return u"org.openoffice.comp.dbu.TableWindowAccessibility"_ustr;
}
Sequence< OUString > SAL_CALL OTableWindowAccess::getSupportedServiceNames()
{
- return { "com.sun.star.accessibility.Accessible",
- "com.sun.star.accessibility.AccessibleContext" };
+ return { u"com.sun.star.accessibility.AccessibleContext"_ustr };
}
// XAccessibleContext
- sal_Int32 SAL_CALL OTableWindowAccess::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL OTableWindowAccess::getAccessibleChildCount( )
{
::osl::MutexGuard aGuard( m_aMutex );
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
if(m_pTable)
{
++nCount;
@@ -86,11 +74,11 @@ namespace dbaui
}
return nCount;
}
- Reference< XAccessible > SAL_CALL OTableWindowAccess::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > SAL_CALL OTableWindowAccess::getAccessibleChild( sal_Int64 i )
{
::osl::MutexGuard aGuard( m_aMutex );
Reference< XAccessible > aRet;
- if (m_pTable && !m_pTable->IsDisposed())
+ if (m_pTable && !m_pTable->isDisposed())
{
switch(i)
{
@@ -114,10 +102,10 @@ namespace dbaui
}
return aRet;
}
- sal_Int32 SAL_CALL OTableWindowAccess::getAccessibleIndexInParent( )
+ sal_Int64 SAL_CALL OTableWindowAccess::getAccessibleIndexInParent( )
{
::osl::MutexGuard aGuard( m_aMutex );
- sal_Int32 nIndex = -1;
+ sal_Int64 nIndex = -1;
if( m_pTable )
{
// search the position of our table window in the table window map
@@ -149,18 +137,18 @@ namespace dbaui
{
::osl::MutexGuard aGuard( m_aMutex );
Reference< XAccessible > aRet;
- if(m_pTable && !m_pTable->IsDisposed())
+ if(m_pTable && !m_pTable->isDisposed())
{
- Point aPoint(_aPoint.X,_aPoint.Y);
- tools::Rectangle aRect(m_pTable->GetDesktopRectPixel());
- if( aRect.IsInside(aPoint) )
+ AbsoluteScreenPixelPoint aPoint(_aPoint.X,_aPoint.Y);
+ AbsoluteScreenPixelRectangle aRect(m_pTable->GetDesktopRectPixel());
+ if( aRect.Contains(aPoint) )
aRet = this;
- else if( m_pTable->GetListBox()->GetDesktopRectPixel().IsInside(aPoint))
+ else if( m_pTable->GetListBox()->GetDesktopRectPixel().Contains(aPoint))
aRet = m_pTable->GetListBox()->GetAccessible();
}
return aRet;
}
- Reference< XAccessible > OTableWindowAccess::getParentChild(sal_Int32 _nIndex)
+ Reference< XAccessible > OTableWindowAccess::getParentChild(sal_Int64 _nIndex)
{
Reference< XAccessible > xReturn;
Reference< XAccessible > xParent = getAccessibleParent();
@@ -191,41 +179,40 @@ namespace dbaui
{
OJoinTableView* pView = m_pTable->getTableView();
auto aIter = pView->getTableConnections(m_pTable) + nIndex;
- aRet.TargetSet.realloc(1);
- aRet.TargetSet[0] = getParentChild(aIter - pView->getTableConnections().begin());
- aRet.RelationType = AccessibleRelationType::CONTROLLER_FOR;
+ aRet.TargetSet = { getParentChild(aIter - pView->getTableConnections().begin()) };
+ aRet.RelationType = AccessibleRelationType_CONTROLLER_FOR;
}
return aRet;
}
- sal_Bool SAL_CALL OTableWindowAccess::containsRelation( sal_Int16 aRelationType )
+ sal_Bool SAL_CALL OTableWindowAccess::containsRelation(AccessibleRelationType eRelationType)
{
::osl::MutexGuard aGuard( m_aMutex );
- return AccessibleRelationType::CONTROLLER_FOR == aRelationType
+ return AccessibleRelationType_CONTROLLER_FOR == eRelationType
&& m_pTable && m_pTable->getTableView()->ExistsAConn(m_pTable);
}
- AccessibleRelation SAL_CALL OTableWindowAccess::getRelationByType( sal_Int16 aRelationType )
+ AccessibleRelation SAL_CALL OTableWindowAccess::getRelationByType(AccessibleRelationType eRelationType)
{
::osl::MutexGuard aGuard( m_aMutex );
- if( AccessibleRelationType::CONTROLLER_FOR == aRelationType && m_pTable)
+ if (AccessibleRelationType_CONTROLLER_FOR == eRelationType && m_pTable)
{
OJoinTableView* pView = m_pTable->getTableView();
const auto& rConnectionList = pView->getTableConnections();
auto aIter = pView->getTableConnections(m_pTable);
auto aEnd = rConnectionList.end();
- std::vector< Reference<XInterface> > aRelations;
+ std::vector< Reference<css::accessibility::XAccessible> > aRelations;
aRelations.reserve(5); // just guessing
// TODO JNA aIter comes from pView->getTableConnections(m_pTable)
// and aEnd comes from pView->getTableConnections().end()
for (; aIter != aEnd ; ++aIter )
{
- uno::Reference<uno::XInterface> xInterface(
+ uno::Reference<css::accessibility::XAccessible> xAccessible(
getParentChild(aIter - rConnectionList.begin()));
- aRelations.push_back(xInterface);
+ aRelations.push_back(xAccessible);
}
- Sequence< Reference<XInterface> > aSeq(aRelations.data(), aRelations.size());
- return AccessibleRelation(AccessibleRelationType::CONTROLLER_FOR,aSeq);
+ Sequence<Reference<css::accessibility::XAccessible>> aSeq(aRelations.data(), aRelations.size());
+ return AccessibleRelation(AccessibleRelationType_CONTROLLER_FOR, aSeq);
}
return AccessibleRelation();
}
@@ -241,11 +228,6 @@ namespace dbaui
sAccessibleName = m_pTable->getTitle();
return sAccessibleName;
}
- Reference< XAccessibleContext > SAL_CALL OTableWindowAccess::getAccessibleContext( )
- {
- return this;
- }
-
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/TableWindowData.cxx b/dbaccess/source/ui/querydesign/TableWindowData.cxx
index d07c8214a17c..3cbead6e406c 100644
--- a/dbaccess/source/ui/querydesign/TableWindowData.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowData.cxx
@@ -26,6 +26,7 @@
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/lang/XComponent.hpp>
+#include <utility>
using namespace dbaui;
using namespace ::com::sun::star::lang;
@@ -37,13 +38,13 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
OTableWindowData::OTableWindowData( const Reference< XPropertySet>& _xTable
- ,const OUString& _rComposedName
- ,const OUString& rTableName
- ,const OUString& rWinName )
+ ,OUString _sComposedName
+ ,OUString sTableName
+ ,OUString sWinName )
:m_xTable(_xTable)
- ,m_aTableName( rTableName )
- ,m_aWinName( rWinName )
- ,m_sComposedName(_rComposedName)
+ ,m_aTableName(std::move( sTableName ))
+ ,m_aWinName(std::move( sWinName ))
+ ,m_sComposedName(std::move(_sComposedName))
,m_aPosition( Point(-1,-1) )
,m_aSize( Size(-1,-1) )
,m_bShowAll( true )
diff --git a/dbaccess/source/ui/querydesign/TableWindowListBox.cxx b/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
index ae83c8714458..0141b8ed89f4 100644
--- a/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
@@ -28,7 +28,7 @@
#include <com/sun/star/sdbc/SQLException.hpp>
#include <vcl/svapp.hxx>
#include <vcl/commandevent.hxx>
-#include <vcl/event.hxx>
+#include <o3tl/string_view.hxx>
using namespace dbaui;
using namespace ::com::sun::star::sdbc;
@@ -41,37 +41,45 @@ OJoinExchangeData::OJoinExchangeData(OTableWindowListBox* pBox)
{
}
-OTableWindowListBox::OTableWindowListBox( OTableWindow* pParent )
- : InterimItemWindow(pParent, "dbaccess/ui/tablelistbox.ui", "TableListBox")
- , m_xTreeView(m_xBuilder->weld_tree_view("treeview"))
+OTableWindowListBox::OTableWindowListBox(OTableWindow* pParent)
+ : InterimItemWindow(pParent, u"dbaccess/ui/tablelistbox.ui"_ustr, u"TableListBox"_ustr)
+ , m_xTreeView(m_xBuilder->weld_tree_view(u"treeview"_ustr))
, m_xDragDropTargetHelper(new TableWindowListBoxHelper(*this, m_xTreeView->get_drop_target()))
- , m_pTabWin( pParent )
+ , m_pTabWin(pParent)
, m_nDropEvent(nullptr)
, m_nUiEvent(nullptr)
{
m_xTreeView->connect_row_activated(LINK(this, OTableWindowListBox, OnDoubleClick));
m_xTreeView->connect_visible_range_changed(LINK(this, OTableWindowListBox, ScrollHdl));
+ m_xTreeView->connect_popup_menu(LINK(this, OTableWindowListBox, CommandHdl));
m_xHelper.set(new OJoinExchObj);
- rtl::Reference<TransferDataContainer> xHelper(m_xHelper.get());
+ rtl::Reference<TransferDataContainer> xHelper(m_xHelper);
m_xTreeView->enable_drag_source(xHelper, DND_ACTION_LINK);
m_xTreeView->connect_drag_begin(LINK(this, OTableWindowListBox, DragBeginHdl));
}
-void OTableWindowListBox::dragFinished( )
+IMPL_LINK(OTableWindowListBox, CommandHdl, const CommandEvent&, rCEvt, bool)
+{
+ if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
+ return false;
+ m_pTabWin->Command(rCEvt);
+ return true;
+}
+
+void OTableWindowListBox::dragFinished()
{
// first show the error msg when existing
- m_pTabWin->getDesignView()->getController().showError(m_pTabWin->getDesignView()->getController().clearOccurredError());
+ m_pTabWin->getDesignView()->getController().showError(
+ m_pTabWin->getDesignView()->getController().clearOccurredError());
// second look for ui activities which should happen after d&d
if (m_nUiEvent)
Application::RemoveUserEvent(m_nUiEvent);
- m_nUiEvent = Application::PostUserEvent(LINK(this, OTableWindowListBox, LookForUiHdl), nullptr, true);
+ m_nUiEvent
+ = Application::PostUserEvent(LINK(this, OTableWindowListBox, LookForUiHdl), nullptr, true);
}
-OTableWindowListBox::~OTableWindowListBox()
-{
- disposeOnce();
-}
+OTableWindowListBox::~OTableWindowListBox() { disposeOnce(); }
void OTableWindowListBox::dispose()
{
@@ -79,13 +87,13 @@ void OTableWindowListBox::dispose()
Application::RemoveUserEvent(m_nDropEvent);
if (m_nUiEvent)
Application::RemoveUserEvent(m_nUiEvent);
- m_pTabWin.clear();
+ m_pTabWin.reset();
m_xDragDropTargetHelper.reset();
m_xTreeView.reset();
InterimItemWindow::dispose();
}
-int OTableWindowListBox::GetEntryFromText( const OUString& rEntryText )
+int OTableWindowListBox::GetEntryFromText(std::u16string_view rEntryText)
{
// iterate through the list
OJoinDesignView* pView = m_pTabWin->getDesignView();
@@ -95,19 +103,20 @@ int OTableWindowListBox::GetEntryFromText( const OUString& rEntryText )
{
bool bCase = false;
const Reference<XConnection>& xConnection = rController.getConnection();
- if(xConnection.is())
+ if (xConnection.is())
{
Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData();
- if(xMeta.is())
+ if (xMeta.is())
bCase = xMeta->supportsMixedCaseQuotedIdentifiers();
}
for (int nEntry = 0, nCount = m_xTreeView->n_children(); nEntry < nCount; ++nEntry)
{
- if (bCase ? rEntryText == m_xTreeView->get_text(nEntry) : rEntryText.equalsIgnoreAsciiCase(m_xTreeView->get_text(nEntry)))
+ if (bCase ? rEntryText == m_xTreeView->get_text(nEntry)
+ : o3tl::equalsIgnoreAsciiCase(rEntryText, m_xTreeView->get_text(nEntry)))
return nEntry;
}
}
- catch(SQLException&)
+ catch (SQLException&)
{
}
@@ -130,7 +139,8 @@ IMPL_LINK(OTableWindowListBox, DragBeginHdl, bool&, rUnsetDragIcon, bool)
}
OJoinTableView* pCont = m_pTabWin->getTableView();
- if (!pCont->getDesignView()->getController().isReadOnly() && pCont->getDesignView()->getController().isConnected())
+ if (!pCont->getDesignView()->getController().isReadOnly()
+ && pCont->getDesignView()->getController().isConnected())
{
// asterisk was not allowed to be copied to selection browsebox
bool bFirstNotAllowed = m_xTreeView->is_selected(0) && m_pTabWin->GetData()->IsShowAll();
@@ -145,7 +155,7 @@ IMPL_LINK(OTableWindowListBox, DragBeginHdl, bool&, rUnsetDragIcon, bool)
return true;
}
-sal_Int8 OTableWindowListBox::AcceptDrop( const AcceptDropEvent& _rEvt )
+sal_Int8 OTableWindowListBox::AcceptDrop(const AcceptDropEvent& _rEvt)
{
// to enable the autoscroll when we're close to the edges
std::unique_ptr<weld::TreeIter> xEntry(m_xTreeView->make_iterator());
@@ -153,9 +163,11 @@ sal_Int8 OTableWindowListBox::AcceptDrop( const AcceptDropEvent& _rEvt )
sal_Int8 nDND_Action = DND_ACTION_NONE;
// check the format
- if ( !OJoinExchObj::isFormatAvailable(m_xDragDropTargetHelper->GetDataFlavorExVector(),SotClipboardFormatId::SBA_TABID) // this means that the first entry is to be dragged
- && OJoinExchObj::isFormatAvailable(m_xDragDropTargetHelper->GetDataFlavorExVector()) )
- { // don't drop into the window if it's the drag source itself
+ if (!OJoinExchObj::isFormatAvailable(
+ m_xDragDropTargetHelper->GetDataFlavorExVector(),
+ SotClipboardFormatId::SBA_TABID) // this means that the first entry is to be dragged
+ && OJoinExchObj::isFormatAvailable(m_xDragDropTargetHelper->GetDataFlavorExVector()))
+ { // don't drop into the window if it's the drag source itself
// remove the selection if the dragging operation is leaving the window
if (_rEvt.mbLeaving)
@@ -170,48 +182,51 @@ sal_Int8 OTableWindowListBox::AcceptDrop( const AcceptDropEvent& _rEvt )
m_xTreeView->select(*xEntry);
// one cannot drop on the first (*) entry
- if(!( m_pTabWin->GetData()->IsShowAll() && (m_xTreeView->get_iter_index_in_parent(*xEntry) == 0) ))
+ if (!(m_pTabWin->GetData()->IsShowAll()
+ && (m_xTreeView->get_iter_index_in_parent(*xEntry) == 0)))
nDND_Action = DND_ACTION_LINK;
}
}
return nDND_Action;
}
-IMPL_LINK_NOARG( OTableWindowListBox, LookForUiHdl, void*, void )
+IMPL_LINK_NOARG(OTableWindowListBox, LookForUiHdl, void*, void)
{
m_nUiEvent = nullptr;
m_pTabWin->getTableView()->lookForUiActivities();
}
-IMPL_LINK_NOARG( OTableWindowListBox, DropHdl, void*, void )
+IMPL_LINK_NOARG(OTableWindowListBox, DropHdl, void*, void)
{
// create the connection
m_nDropEvent = nullptr;
- OSL_ENSURE(m_pTabWin,"No TableWindow!");
+ OSL_ENSURE(m_pTabWin, "No TableWindow!");
try
{
OJoinTableView* pCont = m_pTabWin->getTableView();
- OSL_ENSURE(pCont,"No QueryTableView!");
+ OSL_ENSURE(pCont, "No QueryTableView!");
pCont->AddConnection(m_aDropInfo.aSource, m_aDropInfo.aDest);
}
- catch(const SQLException& e)
+ catch (const SQLException& e)
{
// remember the exception so that we can show them later when d&d is finished
- m_pTabWin->getDesignView()->getController().setErrorOccurred(::dbtools::SQLExceptionInfo(e));
+ m_pTabWin->getDesignView()->getController().setErrorOccurred(
+ ::dbtools::SQLExceptionInfo(e));
}
}
-sal_Int8 OTableWindowListBox::ExecuteDrop( const ExecuteDropEvent& _rEvt )
+sal_Int8 OTableWindowListBox::ExecuteDrop(const ExecuteDropEvent& _rEvt)
{
TransferableDataHelper aDropped(_rEvt.maDropEvent.Transferable);
- if ( OJoinExchObj::isFormatAvailable(aDropped.GetDataFlavorExVector()))
- { // don't drop into the window if it's the drag source itself
+ if (OJoinExchObj::isFormatAvailable(aDropped.GetDataFlavorExVector()))
+ { // don't drop into the window if it's the drag source itself
m_aDropInfo.aSource = OJoinExchangeData(this);
- m_aDropInfo.aDest = OJoinExchObj::GetSourceDescription(_rEvt.maDropEvent.Transferable);
+ m_aDropInfo.aDest = OJoinExchObj::GetSourceDescription(_rEvt.maDropEvent.Transferable);
if (m_nDropEvent)
Application::RemoveUserEvent(m_nDropEvent);
- m_nDropEvent = Application::PostUserEvent(LINK(this, OTableWindowListBox, DropHdl), nullptr, true);
+ m_nDropEvent
+ = Application::PostUserEvent(LINK(this, OTableWindowListBox, DropHdl), nullptr, true);
dragFinished();
@@ -232,11 +247,14 @@ void OTableWindowListBox::GetFocus()
if (m_pTabWin)
m_pTabWin->setActive();
- std::unique_ptr<weld::TreeIter> xCurrent = m_xTreeView->make_iterator();
- if (m_xTreeView->get_cursor(xCurrent.get()))
+ if (m_xTreeView)
{
- m_xTreeView->unselect_all();
- m_xTreeView->select(*xCurrent);
+ std::unique_ptr<weld::TreeIter> xCurrent = m_xTreeView->make_iterator();
+ if (m_xTreeView->get_cursor(xCurrent.get()))
+ {
+ m_xTreeView->unselect_all();
+ m_xTreeView->select(*xCurrent);
+ }
}
InterimItemWindow::GetFocus();
diff --git a/dbaccess/source/ui/querydesign/TableWindowTitle.cxx b/dbaccess/source/ui/querydesign/TableWindowTitle.cxx
index 5157db77eda4..90f2c615dcba 100644
--- a/dbaccess/source/ui/querydesign/TableWindowTitle.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowTitle.cxx
@@ -19,9 +19,6 @@
#include <TableWindowTitle.hxx>
#include <TableWindow.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/help.hxx>
-#include <vcl/settings.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/event.hxx>
#include <TableWindowListBox.hxx>
@@ -29,20 +26,13 @@
#include <JoinController.hxx>
using namespace dbaui;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::uno;
-OTableWindowTitle::OTableWindowTitle( OTableWindow* pParent ) :
- FixedText( pParent, WB_3DLOOK|WB_LEFT|WB_NOLABEL|WB_VCENTER )
- ,m_pTabWin( pParent )
+OTableWindowTitle::OTableWindowTitle(OTableWindow* pParent)
+ : InterimItemWindow(pParent, u"dbaccess/ui/tabletitle.ui"_ustr, u"TableTitle"_ustr)
+ , m_pTabWin( pParent )
+ , m_xLabel(m_xBuilder->weld_label(u"label"_ustr))
+ , m_xImage(m_xBuilder->weld_image(u"image"_ustr))
{
- // set background- and text colour
- StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
- SetBackground(Wallpaper(aSystemStyle.GetFaceColor()));
- SetTextColor(aSystemStyle.GetButtonTextColor());
-
- vcl::Font aFont( GetFont() );
- aFont.SetTransparent( true );
- SetFont( aFont );
+ m_xLabel->connect_mouse_press(LINK(this, OTableWindowTitle, MousePressHdl));
}
OTableWindowTitle::~OTableWindowTitle()
@@ -52,75 +42,15 @@ OTableWindowTitle::~OTableWindowTitle()
void OTableWindowTitle::dispose()
{
- m_pTabWin.clear();
- FixedText::dispose();
-}
-
-void OTableWindowTitle::GetFocus()
-{
- if(m_pTabWin)
- m_pTabWin->GetFocus();
- else
- FixedText::GetFocus();
-}
-
-void OTableWindowTitle::LoseFocus()
-{
- if (m_pTabWin)
- m_pTabWin->LoseFocus();
- else
- FixedText::LoseFocus();
-}
-
-void OTableWindowTitle::RequestHelp( const HelpEvent& rHEvt )
-{
- if(!m_pTabWin)
- return;
-
- OUString aHelpText = m_pTabWin->GetComposedName();
- if( aHelpText.isEmpty())
- return;
-
- // show help
- tools::Rectangle aItemRect(Point(0,0),GetSizePixel());
- aItemRect = LogicToPixel( aItemRect );
- Point aPt = OutputToScreenPixel( aItemRect.TopLeft() );
- aItemRect.SetLeft( aPt.X() );
- aItemRect.SetTop( aPt.Y() );
- aPt = OutputToScreenPixel( aItemRect.BottomRight() );
- aItemRect.SetRight( aPt.X() );
- aItemRect.SetBottom( aPt.Y() );
- if( rHEvt.GetMode() == HelpEventMode::BALLOON )
- Help::ShowBalloon( this, aItemRect.Center(), aItemRect, aHelpText);
- else
- Help::ShowQuickHelp( this, aItemRect, aHelpText );
-}
-
-void OTableWindowTitle::Command( const CommandEvent& rEvt )
-{
- if ( rEvt.GetCommand() == CommandEventId::ContextMenu )
- {
- GrabFocus();
- if ( m_pTabWin )
- {
- // tdf#94709 - protect shutdown code-path.
- VclPtr<OTableWindow> xTabWin(m_pTabWin);
- xTabWin->Command( rEvt );
- }
- else
- Control::Command(rEvt);
- }
-}
-
-void OTableWindowTitle::KeyInput( const KeyEvent& rEvt )
-{
- if ( m_pTabWin )
- m_pTabWin->KeyInput( rEvt );
+ m_xImage.reset();
+ m_xLabel.reset();
+ m_pTabWin.reset();
+ InterimItemWindow::dispose();
}
-void OTableWindowTitle::MouseButtonDown( const MouseEvent& rEvt )
+IMPL_LINK(OTableWindowTitle, MousePressHdl, const MouseEvent&, rEvt, bool)
{
- if( rEvt.IsLeft() )
+ if (rEvt.IsLeft())
{
if( rEvt.GetClicks() == 2)
{
@@ -129,12 +59,12 @@ void OTableWindowTitle::MouseButtonDown( const MouseEvent& rEvt )
weld::TreeView& rTreeView = m_pTabWin->GetListBox()->get_widget();
aSize.AdjustHeight(rTreeView.get_height_rows(rTreeView.n_children() + 2));
- if(m_pTabWin->GetSizePixel() != aSize)
+ if (m_pTabWin->GetSizePixel() != aSize)
{
m_pTabWin->SetSizePixel(aSize);
OJoinTableView* pView = m_pTabWin->getTableView();
- OSL_ENSURE(pView,"No OJoinTableView!");
+ assert(pView && "No OJoinTableView!");
for (auto& conn : pView->getTableConnections())
conn->RecalcLines();
@@ -151,38 +81,15 @@ void OTableWindowTitle::MouseButtonDown( const MouseEvent& rEvt )
OSL_ENSURE(pView,"No OJoinTableView!");
pView->NotifyTitleClicked( static_cast<OTableWindow*>(GetParent()), aPos );
}
- GrabFocus();
}
- else
- Control::MouseButtonDown( rEvt );
-}
-
-void OTableWindowTitle::DataChanged(const DataChangedEvent& rDCEvt)
-{
- if (rDCEvt.GetType() == DataChangedEventType::SETTINGS)
+ else if (rEvt.IsRight())
{
- // assume worst-case: colours have changed, therefore I have to adept
- StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
- SetBackground(Wallpaper(aSystemStyle.GetFaceColor()));
- SetTextColor(aSystemStyle.GetButtonTextColor());
- }
-}
-
-void OTableWindowTitle::StateChanged( StateChangedType nType )
-{
- Window::StateChanged( nType );
-
- if ( nType == StateChangedType::Zoom )
- {
- const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
-
- vcl::Font aFont = rStyleSettings.GetGroupFont();
- if ( IsControlFont() )
- aFont.Merge( GetControlFont() );
- SetZoomedPointFont(*this, aFont);
-
- Resize();
+ CommandEvent aCEvt(rEvt.GetPosPixel(), CommandEventId::ContextMenu, true);
+ // tdf#94709 - protect shutdown code-path.
+ VclPtr<OTableWindow> xTabWin(m_pTabWin);
+ xTabWin->Command(aCEvt);
}
+ return false;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/limitboxcontroller.cxx b/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
index 8b3677cee7ce..59d563388fd5 100644
--- a/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
+++ b/dbaccess/source/ui/querydesign/limitboxcontroller.cxx
@@ -8,20 +8,19 @@
*/
#include "limitboxcontroller.hxx"
-#include <apitools.hxx>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
+#include <comphelper/propertyvalue.hxx>
#include <vcl/InterimItemWindow.hxx>
#include <vcl/event.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <cppuhelper/queryinterface.hxx>
-#include <comphelper/processfactory.hxx>
#include <core_resource.hxx>
#include <strings.hrc>
@@ -53,9 +52,9 @@ class LimitBox final : public InterimItemWindow
{
public:
LimitBox(vcl::Window* pParent, LimitBoxController* pCtrl)
- : InterimItemWindow(pParent, "dbaccess/ui/limitbox.ui", "LimitBox")
+ : InterimItemWindow(pParent, u"dbaccess/ui/limitbox.ui"_ustr, u"LimitBox"_ustr)
, m_pControl( pCtrl )
- , m_xWidget(m_xBuilder->weld_combo_box("limit"))
+ , m_xWidget(m_xBuilder->weld_combo_box(u"limit"_ustr))
{
InitControlBase(m_xWidget.get());
@@ -107,8 +106,6 @@ private:
{
if (!m_xWidget->get_value_changed_from_saved())
return;
- uno::Sequence< beans::PropertyValue > aArgs( 1 );
- aArgs[0].Name = "DBLimit.Value";
sal_Int64 nLimit;
OUString sActiveText = m_xWidget->get_active_text();
if (sActiveText == DBA_RES(STR_QUERY_LIMIT_ALL))
@@ -120,8 +117,7 @@ private:
nLimit = -1;
}
set_value(nLimit);
- aArgs[0].Value <<= nLimit;
- m_pControl->dispatchCommand( aArgs );
+ m_pControl->dispatchCommand({ comphelper::makePropertyValue(u"DBLimit.Value"_ustr, nLimit) });
}
///Initialize entries
@@ -178,7 +174,7 @@ IMPL_LINK_NOARG(LimitBox, ActivateHdl, weld::ComboBox&, bool)
LimitBoxController::LimitBoxController(
const uno::Reference< uno::XComponentContext >& rxContext ) :
- svt::ToolboxController( rxContext,
+ LimitBoxController_Base( rxContext,
uno::Reference< frame::XFrame >(),
".uno:DBLimit" ),
m_xLimitBox( nullptr )
@@ -189,38 +185,25 @@ LimitBoxController::~LimitBoxController()
{
}
-/// XInterface
-uno::Any SAL_CALL LimitBoxController::queryInterface( const uno::Type& aType )
-{
- uno::Any a = ToolboxController::queryInterface( aType );
- if ( a.hasValue() )
- return a;
-
- return ::cppu::queryInterface( aType, static_cast< lang::XServiceInfo* >( this ));
-}
-
-void SAL_CALL LimitBoxController::acquire() throw ()
-{
- ToolboxController::acquire();
-}
-
-void SAL_CALL LimitBoxController::release() throw ()
-{
- ToolboxController::release();
-}
-
-
/// XServiceInfo
OUString SAL_CALL LimitBoxController::getImplementationName()
{
- return "org.libreoffice.comp.dbu.LimitBoxController";
+ return u"org.libreoffice.comp.dbu.LimitBoxController"_ustr;
}
-IMPLEMENT_SERVICE_INFO_SUPPORTS(LimitBoxController)
+sal_Bool SAL_CALL LimitBoxController::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
css::uno::Sequence< OUString > SAL_CALL LimitBoxController::getSupportedServiceNames()
{
- return { "com.sun.star.frame.ToolbarController" };
+ return { u"com.sun.star.frame.ToolbarController"_ustr };
}
/// XComponent
diff --git a/dbaccess/source/ui/querydesign/limitboxcontroller.hxx b/dbaccess/source/ui/querydesign/limitboxcontroller.hxx
index d7753e3557b2..142280937235 100644
--- a/dbaccess/source/ui/querydesign/limitboxcontroller.hxx
+++ b/dbaccess/source/ui/querydesign/limitboxcontroller.hxx
@@ -10,10 +10,8 @@
#pragma once
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <connectivity/CommonTools.hxx>
#include <svtools/toolboxcontroller.hxx>
-#include <rtl/ustring.hxx>
#include <vcl/vclptr.hxx>
namespace dbaui
@@ -26,19 +24,14 @@ class LimitBox;
* It is communicating with querycontroller and this channel make enable
* to set\get the value of limitbox when switching between views
*/
-class LimitBoxController: public svt::ToolboxController,
- public css::lang::XServiceInfo
+typedef cppu::ImplInheritanceHelper< ::svt::ToolboxController, css::lang::XServiceInfo> LimitBoxController_Base;
+class LimitBoxController: public LimitBoxController_Base
{
public:
explicit LimitBoxController(
const css::uno::Reference< css::uno::XComponentContext >& rxContext );
virtual ~LimitBoxController() override;
- /// XInterface
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
- virtual void SAL_CALL acquire() throw () override;
- virtual void SAL_CALL release() throw () override;
-
/// XServiceInfo
DECLARE_SERVICE_INFO();
diff --git a/dbaccess/source/ui/querydesign/querycontainerwindow.cxx b/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
index 68b4c5c86865..b755dc886aef 100644
--- a/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
+++ b/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
@@ -35,7 +35,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::beans;
@@ -65,7 +64,7 @@ namespace dbaui
}
if ( m_pBeamer )
::dbaui::notifySystemWindow(this,m_pBeamer,::comphelper::mem_fun(&TaskPaneList::RemoveWindow));
- m_pBeamer.clear();
+ m_pBeamer.reset();
if ( m_xBeamer.is() )
{
Reference< css::util::XCloseable > xCloseable(m_xBeamer,UNO_QUERY);
@@ -157,7 +156,7 @@ namespace dbaui
}
bool OQueryContainerWindow::PreNotify( NotifyEvent& rNEvt )
{
- if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS && m_pViewSwitch)
+ if (rNEvt.GetType() == NotifyEventType::GETFOCUS && m_pViewSwitch)
{
OJoinController& rController = m_pViewSwitch->getDesignView()->getController();
rController.InvalidateFeature(SID_CUT);
@@ -184,7 +183,7 @@ namespace dbaui
Reference < XPropertySet > xLMPropSet(m_xBeamer->getLayoutManager(), UNO_QUERY);
if ( xLMPropSet.is() )
{
- xLMPropSet->setPropertyValue( "AutomaticToolbars", Any( false ));
+ xLMPropSet->setPropertyValue( u"AutomaticToolbars"_ustr, Any( false ));
}
}
catch( Exception& )
diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx
index b6ef3fedff6c..5134161cce5a 100644
--- a/dbaccess/source/ui/querydesign/querycontroller.cxx
+++ b/dbaccess/source/ui/querydesign/querycontroller.cxx
@@ -55,7 +55,6 @@
#include <com/sun/star/ui/XUIElement.hpp>
#include <comphelper/propertysequence.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/property.hxx>
#include <comphelper/types.hxx>
#include <connectivity/dbexception.hxx>
@@ -63,12 +62,14 @@
#include <cppuhelper/exc_hlp.hxx>
#include <svl/undo.hxx>
#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
+#include <utility>
#include <vcl/stdtext.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
#include <osl/mutex.hxx>
+#include <o3tl/string_view.hxx>
#include <memory>
#include <vector>
@@ -93,11 +94,11 @@ namespace dbaui
{
virtual OUString SAL_CALL getImplementationName() override
{
- return "org.openoffice.comp.dbu.OViewDesign";
+ return u"org.openoffice.comp.dbu.OViewDesign"_ustr;
}
virtual Sequence< OUString> SAL_CALL getSupportedServiceNames() override
{
- return { "com.sun.star.sdb.ViewDesign" };
+ return { u"com.sun.star.sdb.ViewDesign"_ustr };
}
public:
@@ -120,7 +121,7 @@ namespace dbaui
namespace
{
- OUString lcl_getObjectResourceString(const char* pResId, sal_Int32 _nCommandType)
+ OUString lcl_getObjectResourceString(TranslateId pResId, sal_Int32 _nCommandType)
{
OUString sMessageText = DBA_RES(pResId);
OUString sObjectType = DBA_RES(RSC_QUERY_OBJECT_TYPE[_nCommandType]);
@@ -129,13 +130,11 @@ namespace dbaui
}
}
-using namespace ::com::sun::star::io;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::ui;
-using namespace ::com::sun::star::ui::dialogs;
using namespace ::com::sun::star::awt;
using namespace ::dbtools;
@@ -150,8 +149,8 @@ namespace
return;
xLayoutManager->lock();
- static const char s_sDesignToolbar[] = "private:resource/toolbar/designobjectbar";
- static const char s_sSqlToolbar[] = "private:resource/toolbar/sqlobjectbar";
+ static constexpr OUString s_sDesignToolbar = u"private:resource/toolbar/designobjectbar"_ustr;
+ static constexpr OUString s_sSqlToolbar = u"private:resource/toolbar/sqlobjectbar"_ustr;
if ( _bDesign )
{
xLayoutManager->destroyElement( s_sSqlToolbar );
@@ -174,7 +173,7 @@ namespace
void grabFocusFromLimitBox( OQueryController& _rController )
{
Reference< XLayoutManager > xLayoutManager = OGenericUnoController::getLayoutManager( _rController.getFrame() );
- Reference< XUIElement > xUIElement = xLayoutManager->getElement("private:resource/toolbar/designobjectbar");
+ Reference< XUIElement > xUIElement = xLayoutManager->getElement(u"private:resource/toolbar/designobjectbar"_ustr);
if (xUIElement.is())
{
Reference< XWindow > xWindow(xUIElement->getRealInterface(), css::uno::UNO_QUERY);
@@ -189,12 +188,12 @@ namespace
OUString SAL_CALL OQueryController::getImplementationName()
{
- return "org.openoffice.comp.dbu.OQueryDesign";
+ return u"org.openoffice.comp.dbu.OQueryDesign"_ustr;
}
Sequence< OUString> SAL_CALL OQueryController::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.QueryDesign" };
+ return { u"com.sun.star.sdb.QueryDesign"_ustr };
}
OQueryController::OQueryController(const Reference< XComponentContext >& _rM)
@@ -245,18 +244,18 @@ void SAL_CALL OQueryController::getFastPropertyValue( Any& o_rValue, sal_Int32 i
case PROPERTY_ID_CURRENT_QUERY_DESIGN:
{
::comphelper::NamedValueCollection aCurrentDesign;
- aCurrentDesign.put( "GraphicalDesign", isGraphicalDesign() );
- aCurrentDesign.put( OUString(PROPERTY_ESCAPE_PROCESSING), m_bEscapeProcessing );
+ aCurrentDesign.put( u"GraphicalDesign"_ustr, isGraphicalDesign() );
+ aCurrentDesign.put( PROPERTY_ESCAPE_PROCESSING, m_bEscapeProcessing );
if ( isGraphicalDesign() )
{
getContainer()->SaveUIConfig();
saveViewSettings( aCurrentDesign, true );
- aCurrentDesign.put( "Statement", m_sStatement );
+ aCurrentDesign.put( u"Statement"_ustr, m_sStatement );
}
else
{
- aCurrentDesign.put( "Statement", getContainer()->getStatement() );
+ aCurrentDesign.put( u"Statement"_ustr, getContainer()->getStatement() );
}
o_rValue <<= aCurrentDesign.getPropertyValues();
@@ -282,16 +281,17 @@ void SAL_CALL OQueryController::getFastPropertyValue( Any& o_rValue, sal_Int32 i
// one additional property:
const sal_Int32 nLength = aProps.getLength();
aProps.realloc( nLength + 1 );
- aProps[ nLength ] = Property(
- "CurrentQueryDesign",
+ auto pProps = aProps.getArray();
+ pProps[ nLength ] = Property(
+ u"CurrentQueryDesign"_ustr,
PROPERTY_ID_CURRENT_QUERY_DESIGN,
::cppu::UnoType< Sequence< PropertyValue > >::get(),
PropertyAttribute::READONLY
);
std::sort(
- aProps.begin(),
- aProps.end(),
+ pProps,
+ pProps + aProps.getLength(),
::comphelper::PropertyCompareByName()
);
@@ -478,6 +478,7 @@ void OQueryController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >&
std::unique_ptr<::connectivity::OSQLParseNode> pNode = m_aSqlParser.parseTree(aErrorMsg,m_sStatement,m_bGraphicalDesign);
if ( pNode )
{
+ assert(m_pSqlIterator && "SqlIterator must exist");
delete m_pSqlIterator->getParseTree();
m_pSqlIterator->setParseTree(pNode.release());
m_pSqlIterator->traverseAll();
@@ -494,7 +495,7 @@ void OQueryController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >&
aError = SQLException(
DBA_RES(STR_QRY_NOSELECT),
nullptr,
- "S1000",
+ u"S1000"_ustr,
1000,
Any()
);
@@ -517,7 +518,7 @@ void OQueryController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >&
aError = SQLException(
DBA_RES(STR_QRY_SYNTAX),
nullptr,
- "S1000",
+ u"S1000"_ustr,
1000,
Any()
);
@@ -611,11 +612,9 @@ void OQueryController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >&
void OQueryController::impl_showAutoSQLViewError( const css::uno::Any& _rErrorDetails )
{
- SQLContext aErrorContext;
- aErrorContext.Message = lcl_getObjectResourceString( STR_ERROR_PARSING_STATEMENT, m_nCommandType );
- aErrorContext.Context = *this;
- aErrorContext.Details = lcl_getObjectResourceString( STR_INFO_OPENING_IN_SQL_VIEW, m_nCommandType );
- aErrorContext.NextException = _rErrorDetails;
+ SQLContext aErrorContext(
+ lcl_getObjectResourceString(STR_ERROR_PARSING_STATEMENT, m_nCommandType), *this, {}, 0,
+ _rErrorDetails, lcl_getObjectResourceString(STR_INFO_OPENING_IN_SQL_VIEW, m_nCommandType));
showError( aErrorContext );
}
@@ -635,7 +634,7 @@ void OQueryController::impl_setViewMode( ::dbtools::SQLExceptionInfo* _pErrorInf
// don't pass &aError here, this would overwrite the error which the first switchView call
// returned in this location.
if ( _pErrorInfo )
- *_pErrorInfo = aError;
+ *_pErrorInfo = std::move(aError);
else
showError( aError );
}
@@ -647,11 +646,9 @@ void OQueryController::impl_setViewMode( ::dbtools::SQLExceptionInfo* _pErrorInf
setModified( wasModified );
}
-void OQueryController::impl_initialize()
+void OQueryController::impl_initialize(const ::comphelper::NamedValueCollection& rArguments)
{
- OJoinController::impl_initialize();
-
- const NamedValueCollection& rArguments( getInitParams() );
+ OJoinController::impl_initialize(rArguments);
OUString sCommand;
m_nCommandType = CommandType::QUERY;
@@ -660,7 +657,7 @@ void OQueryController::impl_initialize()
// legacy parameters first (later overwritten by regular parameters)
OUString sIndependentSQLCommand;
- if ( rArguments.get_ensureType( "IndependentSQLCommand", sIndependentSQLCommand ) )
+ if ( rArguments.get_ensureType( u"IndependentSQLCommand"_ustr, sIndependentSQLCommand ) )
{
OSL_FAIL( "OQueryController::impl_initialize: IndependentSQLCommand is regognized for compatibility only!" );
sCommand = sIndependentSQLCommand;
@@ -668,7 +665,7 @@ void OQueryController::impl_initialize()
}
OUString sCurrentQuery;
- if ( rArguments.get_ensureType( "CurrentQuery", sCurrentQuery ) )
+ if ( rArguments.get_ensureType( u"CurrentQuery"_ustr, sCurrentQuery ) )
{
OSL_FAIL( "OQueryController::impl_initialize: CurrentQuery is regognized for compatibility only!" );
sCommand = sCurrentQuery;
@@ -676,7 +673,7 @@ void OQueryController::impl_initialize()
}
bool bCreateView( false );
- if ( rArguments.get_ensureType( "CreateView", bCreateView ) && bCreateView )
+ if ( rArguments.get_ensureType( u"CreateView"_ustr, bCreateView ) && bCreateView )
{
OSL_FAIL( "OQueryController::impl_initialize: CurrentQuery is regognized for compatibility only!" );
m_nCommandType = CommandType::TABLE;
@@ -692,8 +689,6 @@ void OQueryController::impl_initialize()
switch ( m_nCommandType )
{
case CommandType::QUERY:
- m_sName = sCommand;
- break;
case CommandType::TABLE:
m_sName = sCommand;
break;
@@ -730,24 +725,24 @@ void OQueryController::impl_initialize()
// initial design
bool bForceInitialDesign = false;
Sequence< PropertyValue > aCurrentQueryDesignProps;
- aCurrentQueryDesignProps = rArguments.getOrDefault( "CurrentQueryDesign", aCurrentQueryDesignProps );
+ aCurrentQueryDesignProps = rArguments.getOrDefault( u"CurrentQueryDesign"_ustr, aCurrentQueryDesignProps );
if ( aCurrentQueryDesignProps.hasElements() )
{
::comphelper::NamedValueCollection aCurrentQueryDesign( aCurrentQueryDesignProps );
- if ( aCurrentQueryDesign.has( OUString(PROPERTY_GRAPHICAL_DESIGN) ) )
+ if ( aCurrentQueryDesign.has( PROPERTY_GRAPHICAL_DESIGN ) )
{
aCurrentQueryDesign.get_ensureType( PROPERTY_GRAPHICAL_DESIGN, m_bGraphicalDesign );
}
- if ( aCurrentQueryDesign.has( OUString(PROPERTY_ESCAPE_PROCESSING) ) )
+ if ( aCurrentQueryDesign.has( PROPERTY_ESCAPE_PROCESSING ) )
{
aCurrentQueryDesign.get_ensureType( PROPERTY_ESCAPE_PROCESSING, m_bEscapeProcessing );
}
- if ( aCurrentQueryDesign.has( "Statement" ) )
+ if ( aCurrentQueryDesign.has( u"Statement"_ustr ) )
{
OUString sStatement;
- aCurrentQueryDesign.get_ensureType( "Statement", sStatement );
- aCurrentQueryDesign.remove( "Statement" );
+ aCurrentQueryDesign.get_ensureType( u"Statement"_ustr, sStatement );
+ aCurrentQueryDesign.remove( u"Statement"_ustr );
setStatement_fireEvent( sStatement );
}
@@ -874,7 +869,7 @@ OUString OQueryController::getPrivateTitle( ) const
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
OUString aDefaultName = DBA_RES(editingView() ? STR_VIEW_TITLE : STR_QRY_TITLE);
- return aDefaultName.getToken(0, ' ') + OUString::number(getCurrentStartNumber());
+ return o3tl::getToken(aDefaultName, 0, ' ') + OUString::number(getCurrentStartNumber());
}
}
return m_sName;
@@ -922,23 +917,23 @@ OJoinDesignView* OQueryController::getJoinView()
void OQueryController::describeSupportedFeatures()
{
OJoinController::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:SaveAs", ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:SbaNativeSql", ID_BROWSER_ESCAPEPROCESSING,CommandGroup::FORMAT );
- implDescribeSupportedFeature( ".uno:DBViewFunctions", SID_QUERY_VIEW_FUNCTIONS, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBViewTableNames", SID_QUERY_VIEW_TABLES, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBViewAliases", SID_QUERY_VIEW_ALIASES, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBDistinctValues", SID_QUERY_DISTINCT_VALUES, CommandGroup::FORMAT );
- implDescribeSupportedFeature( ".uno:DBChangeDesignMode",ID_BROWSER_SQL, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBClearQuery", SID_BROWSER_CLEAR_QUERY, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:SbaExecuteSql", ID_BROWSER_QUERY_EXECUTE, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBAddRelation", SID_RELATION_ADD_RELATION, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:DBQueryPreview", SID_DB_QUERY_PREVIEW, CommandGroup::VIEW );
- implDescribeSupportedFeature( ".uno:DBLimit", SID_QUERY_LIMIT, CommandGroup::FORMAT );
- implDescribeSupportedFeature( ".uno:DBQueryPropertiesDialog", SID_QUERY_PROP_DLG, CommandGroup::FORMAT );
+ implDescribeSupportedFeature( u".uno:SaveAs"_ustr, ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:SbaNativeSql"_ustr, ID_BROWSER_ESCAPEPROCESSING,CommandGroup::FORMAT );
+ implDescribeSupportedFeature( u".uno:DBViewFunctions"_ustr, SID_QUERY_VIEW_FUNCTIONS, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBViewTableNames"_ustr, SID_QUERY_VIEW_TABLES, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBViewAliases"_ustr, SID_QUERY_VIEW_ALIASES, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBDistinctValues"_ustr, SID_QUERY_DISTINCT_VALUES, CommandGroup::FORMAT );
+ implDescribeSupportedFeature( u".uno:DBChangeDesignMode"_ustr,ID_BROWSER_SQL, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBClearQuery"_ustr, SID_BROWSER_CLEAR_QUERY, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:SbaExecuteSql"_ustr, ID_BROWSER_QUERY_EXECUTE, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBAddRelation"_ustr, SID_RELATION_ADD_RELATION, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBQueryPreview"_ustr, SID_DB_QUERY_PREVIEW, CommandGroup::VIEW );
+ implDescribeSupportedFeature( u".uno:DBLimit"_ustr, SID_QUERY_LIMIT, CommandGroup::FORMAT );
+ implDescribeSupportedFeature( u".uno:DBQueryPropertiesDialog"_ustr, SID_QUERY_PROP_DLG, CommandGroup::FORMAT );
#if OSL_DEBUG_LEVEL > 0
- implDescribeSupportedFeature( ".uno:DBShowParseTree", ID_EDIT_QUERY_SQL );
- implDescribeSupportedFeature( ".uno:DBMakeDisjunct", ID_EDIT_QUERY_DESIGN );
+ implDescribeSupportedFeature( u".uno:DBShowParseTree"_ustr, ID_EDIT_QUERY_SQL );
+ implDescribeSupportedFeature( u".uno:DBMakeDisjunct"_ustr, ID_EDIT_QUERY_DESIGN );
#endif
}
@@ -1013,18 +1008,18 @@ void OQueryController::saveViewSettings( ::comphelper::NamedValueCollection& o_r
++i;
}
- o_rViewSettings.put( "Fields", aAllFieldsData.getPropertyValues() );
- o_rViewSettings.put( "SplitterPosition", m_nSplitPos );
- o_rViewSettings.put( "VisibleRows", m_nVisibleRows );
+ o_rViewSettings.put( u"Fields"_ustr, aAllFieldsData.getPropertyValues() );
+ o_rViewSettings.put( u"SplitterPosition"_ustr, m_nSplitPos );
+ o_rViewSettings.put( u"VisibleRows"_ustr, m_nVisibleRows );
}
void OQueryController::loadViewSettings( const ::comphelper::NamedValueCollection& o_rViewSettings )
{
loadTableWindows( o_rViewSettings );
- m_nSplitPos = o_rViewSettings.getOrDefault( "SplitterPosition", m_nSplitPos );
- m_nVisibleRows = o_rViewSettings.getOrDefault( "VisibleRows", m_nVisibleRows );
- m_aFieldInformation = o_rViewSettings.getOrDefault( "Fields", m_aFieldInformation );
+ m_nSplitPos = o_rViewSettings.getOrDefault( u"SplitterPosition"_ustr, m_nSplitPos );
+ m_nVisibleRows = o_rViewSettings.getOrDefault( u"VisibleRows"_ustr, m_nVisibleRows );
+ m_aFieldInformation = o_rViewSettings.getOrDefault( u"Fields"_ustr, m_aFieldInformation );
}
void OQueryController::execute_QueryPropDlg()
@@ -1114,15 +1109,15 @@ void OQueryController::executeQuery()
{
auto aProps(::comphelper::InitPropertySequence(
{
- { PROPERTY_DATASOURCENAME, makeAny(sDataSourceName) },
- { PROPERTY_COMMAND_TYPE, makeAny(CommandType::COMMAND) },
- { PROPERTY_COMMAND, makeAny(sTranslatedStmt) },
- { PROPERTY_ENABLE_BROWSER, makeAny(false) },
- { PROPERTY_ACTIVE_CONNECTION, makeAny(getConnection()) },
- { PROPERTY_UPDATE_CATALOGNAME, makeAny(m_sUpdateCatalogName) },
- { PROPERTY_UPDATE_SCHEMANAME, makeAny(m_sUpdateSchemaName) },
- { PROPERTY_UPDATE_TABLENAME, makeAny(OUString()) },
- { PROPERTY_ESCAPE_PROCESSING, makeAny(m_bEscapeProcessing) }
+ { PROPERTY_DATASOURCENAME, Any(sDataSourceName) },
+ { PROPERTY_COMMAND_TYPE, Any(CommandType::COMMAND) },
+ { PROPERTY_COMMAND, Any(sTranslatedStmt) },
+ { PROPERTY_ENABLE_BROWSER, Any(false) },
+ { PROPERTY_ACTIVE_CONNECTION, Any(getConnection()) },
+ { PROPERTY_UPDATE_CATALOGNAME, Any(m_sUpdateCatalogName) },
+ { PROPERTY_UPDATE_SCHEMANAME, Any(m_sUpdateSchemaName) },
+ { PROPERTY_UPDATE_TABLENAME, Any(OUString()) },
+ { PROPERTY_ESCAPE_PROCESSING, Any(m_bEscapeProcessing) }
}));
xDisp->dispatch(aWantToDispatch, aProps);
@@ -1262,7 +1257,7 @@ bool OQueryController::doSaveAsDoc(bool _bSaveAs)
{
xQuery = xFact->createDataDescriptor();
// to set the name is only allowed when the query is new
- xQuery->setPropertyValue( PROPERTY_NAME, makeAny( m_sName ) );
+ xQuery->setPropertyValue( PROPERTY_NAME, Any( m_sName ) );
}
else
{
@@ -1287,18 +1282,18 @@ bool OQueryController::doSaveAsDoc(bool _bSaveAs)
}
else
{ // we're creating a query, or a *new* view
- xQuery->setPropertyValue( PROPERTY_COMMAND, makeAny( sTranslatedStmt ) );
+ xQuery->setPropertyValue( PROPERTY_COMMAND, Any( sTranslatedStmt ) );
if ( editingView() )
{
- xQuery->setPropertyValue( PROPERTY_CATALOGNAME, makeAny( m_sUpdateCatalogName ) );
- xQuery->setPropertyValue( PROPERTY_SCHEMANAME, makeAny( m_sUpdateSchemaName ) );
+ xQuery->setPropertyValue( PROPERTY_CATALOGNAME, Any( m_sUpdateCatalogName ) );
+ xQuery->setPropertyValue( PROPERTY_SCHEMANAME, Any( m_sUpdateSchemaName ) );
}
if ( editingQuery() )
{
- xQuery->setPropertyValue( PROPERTY_UPDATE_TABLENAME, makeAny( OUString() ) );
- xQuery->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, css::uno::makeAny( m_bEscapeProcessing ) );
+ xQuery->setPropertyValue( PROPERTY_UPDATE_TABLENAME, Any( OUString() ) );
+ xQuery->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, css::uno::Any( m_bEscapeProcessing ) );
xQuery->setPropertyValue( PROPERTY_LAYOUTINFORMATION, getViewData() );
}
@@ -1315,7 +1310,7 @@ bool OQueryController::doSaveAsDoc(bool _bSaveAs)
{
Reference< XNameContainer > xCont( xElements, UNO_QUERY );
if ( xCont.is() )
- xCont->insertByName( m_sName, makeAny( xQuery ) );
+ xCont->insertByName( m_sName, Any( xQuery ) );
}
if ( editingView() )
@@ -1380,8 +1375,8 @@ struct CommentStrip
{
OUString maComment;
bool mbLastOnLine;
- CommentStrip( const OUString& rComment, bool bLastOnLine )
- : maComment( rComment), mbLastOnLine( bLastOnLine) {}
+ CommentStrip( OUString sComment, bool bLastOnLine )
+ : maComment(std::move( sComment)), mbLastOnLine( bLastOnLine) {}
};
}
@@ -1550,7 +1545,7 @@ OUString OQueryController::translateStatement( bool _bFireStatementChange )
}
else if(m_sStatement.isEmpty())
{
- showError(SQLException(DBA_RES(STR_QRY_NOSELECT), nullptr, "S1000", 1000, Any()));
+ showError(SQLException(DBA_RES(STR_QRY_NOSELECT), nullptr, u"S1000"_ustr, 1000, Any()));
}
else
sTranslatedStmt = m_sStatement;
@@ -1680,7 +1675,7 @@ void OQueryController::impl_reset( const bool i_bForceCurrentControllerSettings
{
if ( !i_bForceCurrentControllerSettings && m_bGraphicalDesign && !editingView() )
{
- impl_showAutoSQLViewError( makeAny( m_pSqlIterator->getErrors() ) );
+ impl_showAutoSQLViewError( Any( m_pSqlIterator->getErrors() ) );
}
bError = true;
}
@@ -1723,9 +1718,9 @@ void OQueryController::reset()
void OQueryController::setStatement_fireEvent( const OUString& _rNewStatement, bool _bFireStatementChange )
{
- Any aOldValue = makeAny( m_sStatement );
+ Any aOldValue( m_sStatement );
m_sStatement = _rNewStatement;
- Any aNewValue = makeAny( m_sStatement );
+ Any aNewValue( m_sStatement );
sal_Int32 nHandle = PROPERTY_ID_ACTIVECOMMAND;
if ( _bFireStatementChange )
@@ -1737,9 +1732,9 @@ void OQueryController::setEscapeProcessing_fireEvent( const bool _bEscapeProcess
if ( _bEscapeProcessing == m_bEscapeProcessing )
return;
- Any aOldValue = makeAny( m_bEscapeProcessing );
+ Any aOldValue( m_bEscapeProcessing );
m_bEscapeProcessing = _bEscapeProcessing;
- Any aNewValue = makeAny( m_bEscapeProcessing );
+ Any aNewValue( m_bEscapeProcessing );
sal_Int32 nHandle = PROPERTY_ID_ESCAPE_PROCESSING;
fire( &nHandle, &aNewValue, &aOldValue, 1, false );
@@ -1761,9 +1756,7 @@ bool OQueryController::allowQueries() const
if ( !getSdbMetaData().supportsSubqueriesInFrom() )
return false;
- const NamedValueCollection& rArguments( getInitParams() );
- sal_Int32 nCommandType = rArguments.getOrDefault( PROPERTY_COMMAND_TYPE, sal_Int32(CommandType::QUERY) );
- bool bCreatingView = ( nCommandType == CommandType::TABLE );
+ bool bCreatingView = ( m_nCommandType == CommandType::TABLE );
return !bCreatingView;
}
@@ -1776,7 +1769,7 @@ Any SAL_CALL OQueryController::getViewData()
::comphelper::NamedValueCollection aViewSettings;
saveViewSettings( aViewSettings, false );
- return makeAny( aViewSettings.getPropertyValues() );
+ return Any( aViewSettings.getPropertyValues() );
}
void SAL_CALL OQueryController::restoreViewData(const Any& /*Data*/)
diff --git a/dbaccess/source/ui/querydesign/querydlg.cxx b/dbaccess/source/ui/querydesign/querydlg.cxx
index 422eeb9354fc..5eb7bc96319f 100644
--- a/dbaccess/source/ui/querydesign/querydlg.cxx
+++ b/dbaccess/source/ui/querydesign/querydlg.cxx
@@ -21,7 +21,7 @@
#include <JoinController.hxx>
#include <JoinDesignView.hxx>
#include <strings.hrc>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include "QTableConnectionData.hxx"
#include <core_resource.hxx>
#include <QueryTableView.hxx>
@@ -45,14 +45,14 @@ DlgQryJoin::DlgQryJoin(const OQueryTableView* pParent,
const OJoinTableView::OTableWindowMap* _pTableMap,
const Reference< XConnection >& _xConnection,
bool _bAllowTableSelect)
- : GenericDialogController(pParent->GetFrameWeld(), "dbaccess/ui/joindialog.ui", "JoinDialog")
+ : GenericDialogController(pParent->GetFrameWeld(), u"dbaccess/ui/joindialog.ui"_ustr, u"JoinDialog"_ustr)
, eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
, m_pOrigConnData(_pData)
, m_xConnection(_xConnection)
- , m_xML_HelpText(m_xBuilder->weld_label("helptext"))
- , m_xPB_OK(m_xBuilder->weld_button("ok"))
- , m_xLB_JoinType(m_xBuilder->weld_combo_box("type"))
- , m_xCBNatural(m_xBuilder->weld_check_button("natural"))
+ , m_xML_HelpText(m_xBuilder->weld_label(u"helptext"_ustr))
+ , m_xPB_OK(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xLB_JoinType(m_xBuilder->weld_combo_box(u"type"_ustr))
+ , m_xCBNatural(m_xBuilder->weld_check_button(u"natural"_ustr))
{
Size aSize(m_xML_HelpText->get_approximate_digit_width() * 44,
m_xML_HelpText->get_text_height() * 6);
@@ -150,7 +150,7 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, weld::ComboBox&, void )
OUString sFirstWinName = m_pConnData->getReferencingTable()->GetWinName();
OUString sSecondWinName = m_pConnData->getReferencedTable()->GetWinName();
const EJoinType eOldJoinType = eJoinType;
- const char* pResId = nullptr;
+ TranslateId pResId;
const sal_Int32 nPos = m_xLB_JoinType->get_active();
const sal_Int32 nJoinType = m_xLB_JoinType->get_id(nPos).toInt32();
bool bAddHint = true;
@@ -167,13 +167,9 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, weld::ComboBox&, void )
eJoinType = LEFT_JOIN;
break;
case ID_RIGHT_JOIN:
- {
- pResId = STR_QUERY_LEFTRIGHT_JOIN;
- eJoinType = RIGHT_JOIN;
- OUString sTemp = sFirstWinName;
- sFirstWinName = sSecondWinName;
- sSecondWinName = sTemp;
- }
+ pResId = STR_QUERY_LEFTRIGHT_JOIN;
+ eJoinType = RIGHT_JOIN;
+ std::swap( sFirstWinName, sSecondWinName );
break;
case ID_FULL_JOIN:
pResId = STR_QUERY_FULL_JOIN;
@@ -188,7 +184,7 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, weld::ComboBox&, void )
m_xTableControl->lateInit();
m_xCBNatural->set_active(false);
m_xTableControl->enableRelation(false);
- m_pConnData->AppendConnLine("","");
+ m_pConnData->AppendConnLine(u""_ustr,u""_ustr);
m_xPB_OK->set_sensitive(true);
}
break;
@@ -230,7 +226,7 @@ IMPL_LINK_NOARG(DlgQryJoin, OKClickHdl, weld::Button&, void)
m_xDialog->response(RET_OK);
}
-IMPL_LINK_NOARG(DlgQryJoin, NaturalToggleHdl, weld::ToggleButton&, void)
+IMPL_LINK_NOARG(DlgQryJoin, NaturalToggleHdl, weld::Toggleable&, void)
{
bool bChecked = m_xCBNatural->get_active();
static_cast<OQueryTableConnectionData*>(m_pConnData.get())->setNatural(bChecked);
@@ -242,13 +238,10 @@ IMPL_LINK_NOARG(DlgQryJoin, NaturalToggleHdl, weld::ToggleButton&, void)
try
{
Reference<XNameAccess> xReferencedTableColumns(m_pConnData->getReferencedTable()->getColumns());
- Sequence< OUString> aSeq = m_pConnData->getReferencingTable()->getColumns()->getElementNames();
- const OUString* pIter = aSeq.getConstArray();
- const OUString* pEnd = pIter + aSeq.getLength();
- for(;pIter != pEnd;++pIter)
+ for (auto& column : m_pConnData->getReferencingTable()->getColumns()->getElementNames())
{
- if ( xReferencedTableColumns->hasByName(*pIter) )
- m_pConnData->AppendConnLine(*pIter,*pIter);
+ if (xReferencedTableColumns->hasByName(column))
+ m_pConnData->AppendConnLine(column, column);
}
}
catch( const Exception& )
diff --git a/dbaccess/source/ui/querydesign/querydlg.hxx b/dbaccess/source/ui/querydesign/querydlg.hxx
index fbc58904a160..3da416c6e927 100644
--- a/dbaccess/source/ui/querydesign/querydlg.hxx
+++ b/dbaccess/source/ui/querydesign/querydlg.hxx
@@ -46,7 +46,7 @@ namespace dbaui
DECL_LINK(OKClickHdl, weld::Button&, void);
DECL_LINK(LBChangeHdl, weld::ComboBox&, void);
- DECL_LINK(NaturalToggleHdl, weld::ToggleButton&, void);
+ DECL_LINK(NaturalToggleHdl, weld::Toggleable&, void);
/** setJoinType enables and set the new join type
@param _eNewJoinType the new jointype
diff --git a/dbaccess/source/ui/relationdesign/RTableConnection.cxx b/dbaccess/source/ui/relationdesign/RTableConnection.cxx
index ba60ae54661b..4b8086f5111f 100644
--- a/dbaccess/source/ui/relationdesign/RTableConnection.cxx
+++ b/dbaccess/source/ui/relationdesign/RTableConnection.cxx
@@ -51,7 +51,7 @@ void ORelationTableConnection::Draw(vcl::RenderContext& rRenderContext, const to
{
OTableConnection::Draw(rRenderContext, rRect);
ORelationTableConnectionData* pData = static_cast< ORelationTableConnectionData* >(GetData().get());
- if (pData && (pData->GetCardinality() == Cardinality::Undefined))
+ if (!pData || pData->GetCardinality() == Cardinality::Undefined)
return;
// search lines for top line
diff --git a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
index 1e38bb2f7e03..c679e462c630 100644
--- a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
+++ b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
@@ -41,8 +41,7 @@ using namespace ::com::sun::star::container;
using namespace ::com::sun::star::lang;
ORelationTableConnectionData::ORelationTableConnectionData()
- :OTableConnectionData()
- ,m_nUpdateRules(KeyRule::NO_ACTION)
+ :m_nUpdateRules(KeyRule::NO_ACTION)
,m_nDeleteRules(KeyRule::NO_ACTION)
,m_nCardinality(Cardinality::Undefined)
{
@@ -113,9 +112,7 @@ void ORelationTableConnectionData::ChangeOrientation()
}
// adapt member
- TTableWindowData::value_type pTemp = m_pReferencingTable;
- m_pReferencingTable = m_pReferencedTable;
- m_pReferencedTable = pTemp;
+ std::swap( m_pReferencingTable, m_pReferencedTable );
}
void ORelationTableConnectionData::SetCardinality()
@@ -148,15 +145,13 @@ bool ORelationTableConnectionData::checkPrimaryKey(const Reference< XPropertySet
if ( xKeyColumns.is() )
{
Sequence< OUString> aKeyColumns = xKeyColumns->getElementNames();
- const OUString* pKeyIter = aKeyColumns.getConstArray();
- const OUString* pKeyEnd = pKeyIter + aKeyColumns.getLength();
- for(;pKeyIter != pKeyEnd;++pKeyIter)
+ for (auto& keyColumn : aKeyColumns)
{
for (auto const& elem : m_vConnLineData)
{
++nValidLinesCount;
- if ( elem->GetFieldName(_eEConnectionSide) == *pKeyIter )
+ if (elem->GetFieldName(_eEConnectionSide) == keyColumn)
{
++nPrimKeysCount;
break;
@@ -257,11 +252,12 @@ bool ORelationTableConnectionData::Update()
xTableProp->getPropertyValue(PROPERTY_NAME) >>= sSourceName;
OUString sKeyName = sSourceName + getReferencedTable()->GetTableName();
- xKey->setPropertyValue(PROPERTY_NAME,makeAny(sKeyName));
- xKey->setPropertyValue(PROPERTY_TYPE,makeAny(KeyType::FOREIGN));
- xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,makeAny(getReferencedTable()->GetTableName()));
- xKey->setPropertyValue(PROPERTY_UPDATERULE, makeAny(GetUpdateRules()));
- xKey->setPropertyValue(PROPERTY_DELETERULE, makeAny(GetDeleteRules()));
+ xKey->setPropertyValue(PROPERTY_NAME,Any(sKeyName));
+ xKey->setPropertyValue(PROPERTY_TYPE,Any(KeyType::FOREIGN));
+ // get the full name of the tables to ensure uniqueness across catalogs and schema
+ xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,Any(getReferencedTable()->GetComposedName()));
+ xKey->setPropertyValue(PROPERTY_UPDATERULE, Any(GetUpdateRules()));
+ xKey->setPropertyValue(PROPERTY_DELETERULE, Any(GetDeleteRules()));
}
Reference<XColumnsSupplier> xColSup(xKey,UNO_QUERY);
@@ -279,8 +275,8 @@ bool ORelationTableConnectionData::Update()
Reference<XPropertySet> xColumn = xColumnFactory->createDataDescriptor();
if ( xColumn.is() )
{
- xColumn->setPropertyValue(PROPERTY_NAME,makeAny(elem->GetSourceFieldName()));
- xColumn->setPropertyValue(PROPERTY_RELATEDCOLUMN,makeAny(elem->GetDestFieldName()));
+ xColumn->setPropertyValue(PROPERTY_NAME,Any(elem->GetSourceFieldName()));
+ xColumn->setPropertyValue(PROPERTY_RELATEDCOLUMN,Any(elem->GetDestFieldName()));
xColumnAppend->appendByDescriptor(xColumn);
}
}
@@ -304,35 +300,28 @@ bool ORelationTableConnectionData::Update()
{
OUString sReferencedTable;
xKey->getPropertyValue(PROPERTY_REFERENCEDTABLE) >>= sReferencedTable;
- if ( sReferencedTable == getReferencedTable()->GetTableName() )
+ if ( sReferencedTable == getReferencedTable()->GetComposedName() )
{
xColSup.set(xKey,UNO_QUERY_THROW);
try
{
Reference<XNameAccess> xColumns = xColSup->getColumns();
Sequence< OUString> aNames = xColumns->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
+ const OUString* pIter = aNames.begin();
+ const OUString* pEnd = aNames.end();
- Reference<XPropertySet> xColumn;
OUString sName,sRelatedColumn;
for ( ; pIter != pEnd ; ++pIter )
{
- xColumn.set(xColumns->getByName(*pIter),UNO_QUERY_THROW);
+ Reference<XPropertySet> xColumn(xColumns->getByName(*pIter),UNO_QUERY_THROW);
xColumn->getPropertyValue(PROPERTY_NAME) >>= sName;
xColumn->getPropertyValue(PROPERTY_RELATEDCOLUMN) >>= sRelatedColumn;
- bool bFoundElem = false;
- for (auto const& elem : m_vConnLineData)
- {
- if( elem->GetSourceFieldName() == sName
- && elem->GetDestFieldName() == sRelatedColumn )
- {
- bFoundElem = true;
- break;
- }
- }
- if (!bFoundElem)
+ if (std::none_of(m_vConnLineData.begin(), m_vConnLineData.end(),
+ [&sName, &sRelatedColumn](auto& elem) {
+ return elem->GetSourceFieldName() == sName
+ && elem->GetDestFieldName() == sRelatedColumn;
+ }))
break;
}
if ( pIter == pEnd )
@@ -365,16 +354,14 @@ bool ORelationTableConnectionData::Update()
OConnectionLineDataVec().swap(m_vConnLineData);
Reference<XNameAccess> xColumns = xColSup->getColumns();
Sequence< OUString> aNames = xColumns->getElementNames();
- const OUString* pIter = aNames.getConstArray();
- const OUString* pEnd = pIter + aNames.getLength();
m_vConnLineData.reserve( aNames.getLength() );
Reference<XPropertySet> xColumn;
OUString sName,sRelatedColumn;
- for(;pIter != pEnd;++pIter)
+ for (auto& colName : aNames)
{
- xColumns->getByName(*pIter) >>= xColumn;
+ xColumns->getByName(colName) >>= xColumn;
if ( xColumn.is() )
{
OConnectionLineDataRef pNewData = new OConnectionLineData();
diff --git a/dbaccess/source/ui/relationdesign/RelationController.cxx b/dbaccess/source/ui/relationdesign/RelationController.cxx
index d6181459ca6f..7cab45c54d55 100644
--- a/dbaccess/source/ui/relationdesign/RelationController.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationController.cxx
@@ -19,7 +19,6 @@
#include <sal/config.h>
-#include <iterator>
#include <map>
#include <strings.hrc>
@@ -30,7 +29,6 @@
#include <comphelper/types.hxx>
#include <core_resource.hxx>
#include <connectivity/dbtools.hxx>
-#include <comphelper/processfactory.hxx>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <com/sun/star/sdbcx/KeyType.hpp>
#include <com/sun/star/sdbcx/XKeysSupplier.hpp>
@@ -46,7 +44,7 @@
#include <RTableConnectionData.hxx>
#include <RelationTableView.hxx>
#include <RelationDesignView.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/thread.hxx>
#include <osl/mutex.hxx>
@@ -60,16 +58,13 @@ org_openoffice_comp_dbu_ORelationDesign_get_implementation(
}
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::frame;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::util;
using namespace ::dbtools;
using namespace ::dbaui;
using namespace ::comphelper;
@@ -77,12 +72,12 @@ using namespace ::osl;
OUString SAL_CALL ORelationController::getImplementationName()
{
- return "org.openoffice.comp.dbu.ORelationDesign";
+ return u"org.openoffice.comp.dbu.ORelationDesign"_ustr;
}
Sequence< OUString> SAL_CALL ORelationController::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.RelationDesign" };
+ return { u"com.sun.star.sdb.RelationDesign"_ustr };
}
ORelationController::ORelationController(const Reference< XComponentContext >& _rM)
@@ -140,7 +135,7 @@ void ORelationController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue
{
::comphelper::NamedValueCollection aWindowsData;
saveTableWindows( aWindowsData );
- getDataSource()->setPropertyValue( PROPERTY_LAYOUTINFORMATION, makeAny( aWindowsData.getPropertyValues() ) );
+ getDataSource()->setPropertyValue( PROPERTY_LAYOUTINFORMATION, Any( aWindowsData.getPropertyValues() ) );
setModified(false);
}
}
@@ -161,9 +156,9 @@ void ORelationController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue
InvalidateFeature(_nId);
}
-void ORelationController::impl_initialize()
+void ORelationController::impl_initialize(const ::comphelper::NamedValueCollection& rArguments)
{
- OJoinController::impl_initialize();
+ OJoinController::impl_initialize(rArguments);
if( !getSdbMetaData().supportsRelations() )
{// check if this database supports relations
@@ -223,8 +218,8 @@ short ORelationController::saveModified()
short nSaved = RET_YES;
if(haveDataSource() && isModified())
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), "dbaccess/ui/designsavemodifieddialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("DesignSaveModifiedDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), u"dbaccess/ui/designsavemodifieddialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"DesignSaveModifiedDialog"_ustr));
nSaved = xQuery->run();
if(nSaved == RET_YES)
Execute(ID_BROWSER_SAVEDOC,Sequence<PropertyValue>());
@@ -235,7 +230,7 @@ short ORelationController::saveModified()
void ORelationController::describeSupportedFeatures()
{
OJoinController::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:DBAddRelation", SID_RELATION_ADD_RELATION, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:DBAddRelation"_ustr, SID_RELATION_ADD_RELATION, CommandGroup::EDIT );
}
namespace
@@ -259,7 +254,7 @@ namespace
,const Sequence< OUString>& _aTableList
,const sal_Int32 _nStartIndex
,const sal_Int32 _nEndIndex)
- :m_aTableData(_xMetaData.is() && _xMetaData->supportsMixedCaseQuotedIdentifiers())
+ :m_aTableData(comphelper::UStringMixLess(_xMetaData.is() && _xMetaData->supportsMixedCaseQuotedIdentifiers()))
,m_aTableList(_aTableList)
,m_pParent(_pParent)
,m_xMetaData(_xMetaData)
@@ -494,7 +489,7 @@ void ORelationController::loadData()
}
}
-TTableWindowData::value_type ORelationController::existsTable(const OUString& _rComposedTableName) const
+TTableWindowData::value_type ORelationController::existsTable(std::u16string_view _rComposedTableName) const
{
::comphelper::UStringMixEqual bCase(true);
for (auto const& elem : m_vTableData)
diff --git a/dbaccess/source/ui/relationdesign/RelationDesignView.cxx b/dbaccess/source/ui/relationdesign/RelationDesignView.cxx
index 014579cf7c7f..161702f08196 100644
--- a/dbaccess/source/ui/relationdesign/RelationDesignView.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationDesignView.cxx
@@ -24,10 +24,6 @@
using namespace ::dbaui;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::container;
ORelationDesignView::ORelationDesignView(vcl::Window* _pParent, ORelationController& _rController,const Reference< XComponentContext >& _rxContext)
:OJoinDesignView( _pParent, _rController, _rxContext )
@@ -51,7 +47,7 @@ void ORelationDesignView::initialize()
bool ORelationDesignView::PreNotify( NotifyEvent& rNEvt )
{
bool bDone = false;
- if(rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ if(rNEvt.GetType() == NotifyEventType::GETFOCUS)
{
if(m_pTableView && !m_pTableView->HasChildPathFocus())
{
diff --git a/dbaccess/source/ui/relationdesign/RelationTableView.cxx b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
index 9423d1a8470c..9c6b08e1d7ce 100644
--- a/dbaccess/source/ui/relationdesign/RelationTableView.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
@@ -28,6 +28,7 @@
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <connectivity/dbtools.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <helpids.h>
#include <RelationDesignView.hxx>
#include <JoinController.hxx>
@@ -73,7 +74,7 @@ void ORelationTableView::dispose()
{
if ( m_pContainerListener.is() )
m_pContainerListener->dispose();
- m_pExistingConnection.clear();
+ m_pExistingConnection.reset();
OJoinTableView::dispose();
}
@@ -98,7 +99,7 @@ void ORelationTableView::ReSync()
TTableWindowData::const_reverse_iterator aIter = rTabWinDataList.rbegin();
for(;aIter != rTabWinDataList.rend();++aIter)
{
- TTableWindowData::value_type pData = *aIter;
+ const TTableWindowData::value_type& pData = *aIter;
VclPtr<OTableWindow> pTabWin = createWindow(pData);
if (!pTabWin->Init())
@@ -107,9 +108,10 @@ void ORelationTableView::ReSync()
// it should be cleaned up, including its data in the document
pTabWin->clearListBox();
pTabWin.disposeAndClear();
- arrInvalidTables.push_back(pData->GetTableName());
+ // get the full name of the tables to ensure uniqueness across catalogs and schema
+ arrInvalidTables.push_back(pData->GetComposedName());
- rTabWinDataList.erase( std::remove(rTabWinDataList.begin(), rTabWinDataList.end(), *aIter), rTabWinDataList.end());
+ std::erase(rTabWinDataList, *aIter);
continue;
}
@@ -131,15 +133,15 @@ void ORelationTableView::ReSync()
if ( !arrInvalidTables.empty() )
{
// do the tables to the connection exist?
- OUString strTabExistenceTest = pTabConnData->getReferencingTable()->GetTableName();
+ OUString strTabExistenceTest = pTabConnData->getReferencingTable()->GetComposedName();
bool bInvalid = std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) != arrInvalidTables.end();
- strTabExistenceTest = pTabConnData->getReferencedTable()->GetTableName();
+ strTabExistenceTest = pTabConnData->getReferencedTable()->GetComposedName();
bInvalid = bInvalid || std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) != arrInvalidTables.end();
if (bInvalid)
{
// no -> bad luck, the connection is gone
- rTabConnDataList.erase( std::remove(rTabConnDataList.begin(), rTabConnDataList.end(), *aConIter), rTabConnDataList.end() );
+ std::erase(rTabConnDataList, *aConIter);
continue;
}
}
@@ -190,7 +192,7 @@ void ORelationTableView::AddConnection(const OJoinExchangeData& jxdSource, const
pTabConnData->SetConnLine( 0, sSourceFieldName, sDestFieldName );
if ( bAskUser || m_pExistingConnection )
- m_pCurrentlyTabConnData = pTabConnData; // this implies that we ask the user what to do
+ m_pCurrentlyTabConnData = std::move(pTabConnData); // this implies that we ask the user what to do
else
{
try
@@ -208,7 +210,7 @@ void ORelationTableView::AddConnection(const OJoinExchangeData& jxdSource, const
}
catch(const Exception&)
{
- OSL_FAIL("ORelationTableView::AddConnection: Exception occurred!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "ORelationTableView::AddConnection");
}
}
}
@@ -269,7 +271,7 @@ bool ORelationTableView::RemoveConnection(VclPtr<OTableConnection>& rConn, bool
}
catch(Exception&)
{
- OSL_FAIL("ORelationTableView::RemoveConnection: Something other than SQLException occurred!");
+ TOOLS_WARN_EXCEPTION( "dbaccess", "ORelationTableView::RemoveConnection: Something other than SQLException occurred!");
}
return false;
}
@@ -289,7 +291,8 @@ void ORelationTableView::AddTabWin(const OUString& _rComposedName, const OUStrin
}
// enter the new data structure into DocShell
- TTableWindowData::value_type pNewTabWinData(createTableWindowData( _rComposedName, rWinName,rWinName ));
+ // show the table's full name as window name to ensure uniqueness across catalogs and schema
+ TTableWindowData::value_type pNewTabWinData(createTableWindowData( _rComposedName, rWinName, _rComposedName ));
pNewTabWinData->ShowAll(false);
// link new window into the window list
@@ -308,7 +311,7 @@ void ORelationTableView::AddTabWin(const OUString& _rComposedName, const OUStrin
if ( m_pAccessible )
m_pAccessible->notifyAccessibleEvent( AccessibleEventId::CHILD,
Any(),
- makeAny(pNewTabWin->GetAccessible()));
+ Any(pNewTabWin->GetAccessible()));
}
else
{
diff --git a/dbaccess/source/ui/tabledesign/FieldDescriptions.cxx b/dbaccess/source/ui/tabledesign/FieldDescriptions.cxx
index ba04bfa22cb0..4a4a499380a9 100644
--- a/dbaccess/source/ui/tabledesign/FieldDescriptions.cxx
+++ b/dbaccess/source/ui/tabledesign/FieldDescriptions.cxx
@@ -18,7 +18,7 @@
*/
#include <FieldDescriptions.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <strings.hxx>
#include <com/sun/star/sdbc/ColumnValue.hpp>
#include <comphelper/types.hxx>
@@ -38,8 +38,7 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
OFieldDescription::OFieldDescription()
- :m_pType()
- ,m_nType(DataType::VARCHAR)
+ :m_nType(DataType::VARCHAR)
,m_nPrecision(0)
,m_nScale(0)
,m_nIsNullable(ColumnValue::NULLABLE)
@@ -81,8 +80,7 @@ OFieldDescription::~OFieldDescription()
}
OFieldDescription::OFieldDescription(const Reference< XPropertySet >& xAffectedCol,bool _bUseAsDest)
- :m_pType()
- ,m_nType(DataType::VARCHAR)
+ :m_nType(DataType::VARCHAR)
,m_nPrecision(0)
,m_nScale(0)
,m_nIsNullable(ColumnValue::NULLABLE)
@@ -189,7 +187,10 @@ void OFieldDescription::FillFromTypeInfo(const TOTypeInfoSP& _pType,bool _bForce
SetPrecision(std::min<sal_Int32>(nPrec,_pType->nPrecision));
}
break;
+ case DataType::TIME:
+ case DataType::TIME_WITH_TIMEZONE:
case DataType::TIMESTAMP:
+ case DataType::TIMESTAMP_WITH_TIMEZONE:
if ( bForce && _pType->nMaximumScale)
{
SetScale(std::min<sal_Int32>(GetScale() ? GetScale() : DEFAULT_NUMERIC_SCALE,_pType->nMaximumScale));
@@ -237,7 +238,7 @@ void OFieldDescription::SetName(const OUString& _rName)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_NAME) )
- m_xDest->setPropertyValue(PROPERTY_NAME,makeAny(_rName));
+ m_xDest->setPropertyValue(PROPERTY_NAME,Any(_rName));
else
m_sName = _rName;
}
@@ -252,7 +253,7 @@ void OFieldDescription::SetHelpText(const OUString& _sHelpText)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
- m_xDest->setPropertyValue(PROPERTY_HELPTEXT,makeAny(_sHelpText));
+ m_xDest->setPropertyValue(PROPERTY_HELPTEXT,Any(_sHelpText));
else
m_sHelpText = _sHelpText;
}
@@ -267,7 +268,7 @@ void OFieldDescription::SetDescription(const OUString& _rDescription)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_DESCRIPTION) )
- m_xDest->setPropertyValue(PROPERTY_DESCRIPTION,makeAny(_rDescription));
+ m_xDest->setPropertyValue(PROPERTY_DESCRIPTION,Any(_rDescription));
else
m_sDescription = _rDescription;
}
@@ -310,7 +311,7 @@ void OFieldDescription::SetAutoIncrementValue(const OUString& _sAutoIncValue)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION) )
- m_xDest->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION,makeAny(_sAutoIncValue));
+ m_xDest->setPropertyValue(PROPERTY_AUTOINCREMENTCREATION,Any(_sAutoIncValue));
else
m_sAutoIncrementValue = _sAutoIncValue;
}
@@ -329,7 +330,7 @@ void OFieldDescription::SetType(const TOTypeInfoSP& _pType)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPE) )
- m_xDest->setPropertyValue(PROPERTY_TYPE,makeAny(m_pType->nType));
+ m_xDest->setPropertyValue(PROPERTY_TYPE,Any(m_pType->nType));
else
m_nType = m_pType->nType;
}
@@ -344,7 +345,7 @@ void OFieldDescription::SetTypeValue(sal_Int32 _nType)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPE) )
- m_xDest->setPropertyValue(PROPERTY_TYPE,makeAny(_nType));
+ m_xDest->setPropertyValue(PROPERTY_TYPE,Any(_nType));
else
{
m_nType = _nType;
@@ -362,7 +363,7 @@ void OFieldDescription::SetPrecision(sal_Int32 _rPrecision)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_PRECISION) )
- m_xDest->setPropertyValue(PROPERTY_PRECISION,makeAny(_rPrecision));
+ m_xDest->setPropertyValue(PROPERTY_PRECISION,Any(_rPrecision));
else
m_nPrecision = _rPrecision;
}
@@ -377,7 +378,7 @@ void OFieldDescription::SetScale(sal_Int32 _rScale)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_SCALE) )
- m_xDest->setPropertyValue(PROPERTY_SCALE,makeAny(_rScale));
+ m_xDest->setPropertyValue(PROPERTY_SCALE,Any(_rScale));
else
m_nScale = _rScale;
}
@@ -392,7 +393,7 @@ void OFieldDescription::SetIsNullable(sal_Int32 _rIsNullable)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISNULLABLE) )
- m_xDest->setPropertyValue(PROPERTY_ISNULLABLE,makeAny(_rIsNullable));
+ m_xDest->setPropertyValue(PROPERTY_ISNULLABLE,Any(_rIsNullable));
else
m_nIsNullable = _rIsNullable;
}
@@ -407,7 +408,7 @@ void OFieldDescription::SetFormatKey(sal_Int32 _rFormatKey)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_FORMATKEY) )
- m_xDest->setPropertyValue(PROPERTY_FORMATKEY,makeAny(_rFormatKey));
+ m_xDest->setPropertyValue(PROPERTY_FORMATKEY,Any(_rFormatKey));
else
m_nFormatKey = _rFormatKey;
}
@@ -422,7 +423,7 @@ void OFieldDescription::SetHorJustify(const SvxCellHorJustify& _rHorJustify)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ALIGN) )
- m_xDest->setPropertyValue(PROPERTY_ALIGN,makeAny( dbaui::mapTextAllign(_rHorJustify)));
+ m_xDest->setPropertyValue(PROPERTY_ALIGN,Any( dbaui::mapTextAlign(_rHorJustify)));
else
m_eHorJustify = _rHorJustify;
}
@@ -437,7 +438,7 @@ void OFieldDescription::SetAutoIncrement(bool _bAuto)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_ISAUTOINCREMENT) )
- m_xDest->setPropertyValue(PROPERTY_ISAUTOINCREMENT,makeAny(_bAuto));
+ m_xDest->setPropertyValue(PROPERTY_ISAUTOINCREMENT,Any(_bAuto));
else
m_bIsAutoIncrement = _bAuto;
}
@@ -604,7 +605,7 @@ void OFieldDescription::SetTypeName(const OUString& _sTypeName)
try
{
if ( m_xDest.is() && m_xDestInfo->hasPropertyByName(PROPERTY_TYPENAME) )
- m_xDest->setPropertyValue(PROPERTY_TYPENAME,makeAny(_sTypeName));
+ m_xDest->setPropertyValue(PROPERTY_TYPENAME,Any(_sTypeName));
else
m_sTypeName = _sTypeName;
}
@@ -622,11 +623,11 @@ void OFieldDescription::copyColumnSettingsTo(const Reference< XPropertySet >& _r
Reference<XPropertySetInfo> xInfo = _rxColumn->getPropertySetInfo();
if ( GetFormatKey() != NumberFormat::ALL && xInfo->hasPropertyByName(PROPERTY_FORMATKEY) )
- _rxColumn->setPropertyValue(PROPERTY_FORMATKEY,makeAny(GetFormatKey()));
+ _rxColumn->setPropertyValue(PROPERTY_FORMATKEY,Any(GetFormatKey()));
if ( GetHorJustify() != SvxCellHorJustify::Standard && xInfo->hasPropertyByName(PROPERTY_ALIGN) )
- _rxColumn->setPropertyValue(PROPERTY_ALIGN,makeAny(dbaui::mapTextAllign(GetHorJustify())));
+ _rxColumn->setPropertyValue(PROPERTY_ALIGN,Any(dbaui::mapTextAlign(GetHorJustify())));
if ( !GetHelpText().isEmpty() && xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
- _rxColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(GetHelpText()));
+ _rxColumn->setPropertyValue(PROPERTY_HELPTEXT,Any(GetHelpText()));
if ( GetControlDefault().hasValue() && xInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT) )
_rxColumn->setPropertyValue(PROPERTY_CONTROLDEFAULT,GetControlDefault());
@@ -635,7 +636,7 @@ void OFieldDescription::copyColumnSettingsTo(const Reference< XPropertySet >& _r
if(xInfo->hasPropertyByName(PROPERTY_WIDTH))
_rxColumn->setPropertyValue(PROPERTY_WIDTH,m_aWidth);
if(xInfo->hasPropertyByName(PROPERTY_HIDDEN))
- _rxColumn->setPropertyValue(PROPERTY_HIDDEN,makeAny(m_bHidden));
+ _rxColumn->setPropertyValue(PROPERTY_HIDDEN,Any(m_bHidden));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.cxx b/dbaccess/source/ui/tabledesign/TEditControl.cxx
index bb05ec132f0c..8ab86caeea15 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@ -36,28 +36,23 @@
#include <connectivity/dbtools.hxx>
#include <SqlNameEdit.hxx>
#include <TableRowExchange.hxx>
+#include <o3tl/safeint.hxx>
#include <sot/storage.hxx>
#include <svx/svxids.hrc>
#include <UITools.hxx>
#include "TableFieldControl.hxx"
#include <dsntypes.hxx>
-#include <vcl/builder.hxx>
#include <vcl/commandevent.hxx>
-#include <vcl/menu.hxx>
#include <vcl/svapp.hxx>
using namespace ::dbaui;
using namespace ::comphelper;
using namespace ::svt;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
-using namespace ::com::sun::star::sdbcx;
-using namespace ::com::sun::star::sdb;
#define HANDLE_ID 0
@@ -71,7 +66,8 @@ using namespace ::com::sun::star::sdb;
#define MAX_DESCR_LEN 256
OTableEditorCtrl::ClipboardInvalidator::ClipboardInvalidator(OTableEditorCtrl* _pOwner)
-: m_pOwner(_pOwner)
+: m_aInvalidateTimer("dbaccess ClipboardInvalidator")
+, m_pOwner(_pOwner)
{
m_aInvalidateTimer.SetTimeout(500);
@@ -167,7 +163,7 @@ void OTableEditorCtrl::SetReadOnly( bool bRead )
bReadOnly = bRead;
// Disable active cells
- tools::Long nRow(GetCurRow());
+ sal_Int32 nRow(GetCurRow());
sal_uInt16 nCol(GetCurColumnId());
DeactivateCell();
@@ -274,11 +270,11 @@ void OTableEditorCtrl::dispose()
pDescrCell.disposeAndClear();
pHelpTextCell.disposeAndClear();
pDescrWin = nullptr;
- m_pView.clear();
+ m_pView.reset();
OTableRowView::dispose();
}
-bool OTableEditorCtrl::SetDataPtr( tools::Long nRow )
+bool OTableEditorCtrl::SetDataPtr( sal_Int32 nRow )
{
if(nRow == -1)
return false;
@@ -290,7 +286,7 @@ bool OTableEditorCtrl::SetDataPtr( tools::Long nRow )
return pActRow != nullptr;
}
-bool OTableEditorCtrl::SeekRow(tools::Long _nRow)
+bool OTableEditorCtrl::SeekRow(sal_Int32 _nRow)
{
// Call the Base class to remember which row must be repainted
EditBrowseBox::SeekRow(_nRow);
@@ -304,13 +300,13 @@ void OTableEditorCtrl::PaintCell(OutputDevice& rDev, const tools::Rectangle& rRe
{
const OUString aText( GetCellText( m_nCurrentPos, nColumnId ));
- rDev.Push( PushFlags::CLIPREGION );
+ rDev.Push( vcl::PushFlags::CLIPREGION );
rDev.SetClipRegion(vcl::Region(rRect));
rDev.DrawText( rRect, aText, DrawTextFlags::Left | DrawTextFlags::VCenter );
rDev.Pop();
}
-CellController* OTableEditorCtrl::GetController(tools::Long nRow, sal_uInt16 nColumnId)
+CellController* OTableEditorCtrl::GetController(sal_Int32 nRow, sal_uInt16 nColumnId)
{
// If EditorCtrl is ReadOnly, editing is forbidden
Reference<XPropertySet> xTable = GetView()->getController().getTable();
@@ -348,7 +344,7 @@ CellController* OTableEditorCtrl::GetController(tools::Long nRow, sal_uInt16 nCo
}
}
-void OTableEditorCtrl::InitController(CellControllerRef&, tools::Long nRow, sal_uInt16 nColumnId)
+void OTableEditorCtrl::InitController(CellControllerRef&, sal_Int32 nRow, sal_uInt16 nColumnId)
{
SeekRow( nRow == -1 ? GetCurRow() : nRow);
OFieldDescription* pActFieldDescr = pActRow->GetActFieldDescr();
@@ -405,7 +401,7 @@ void OTableEditorCtrl::InitController(CellControllerRef&, tools::Long nRow, sal_
}
}
-EditBrowseBox::RowStatus OTableEditorCtrl::GetRowStatus(tools::Long nRow) const
+EditBrowseBox::RowStatus OTableEditorCtrl::GetRowStatus(sal_Int32 nRow) const
{
const_cast<OTableEditorCtrl*>(this)->SetDataPtr( nRow );
if( !pActRow )
@@ -436,7 +432,7 @@ void OTableEditorCtrl::SaveCurRow()
pDescrWin->SaveData( pActRow->GetActFieldDescr() );
}
-void OTableEditorCtrl::DisplayData(tools::Long nRow)
+void OTableEditorCtrl::DisplayData(sal_Int32 nRow)
{
// go to the correct cell
SetDataPtr(nRow);
@@ -478,7 +474,7 @@ void OTableEditorCtrl::CursorMoved()
OTableRowView::CursorMoved();
}
-sal_Int32 OTableEditorCtrl::HasFieldName( const OUString& rFieldName )
+sal_Int32 OTableEditorCtrl::HasFieldName( std::u16string_view rFieldName )
{
Reference<XConnection> xCon = GetView()->getController().getConnection();
@@ -496,7 +492,7 @@ sal_Int32 OTableEditorCtrl::HasFieldName( const OUString& rFieldName )
return nCount;
}
-void OTableEditorCtrl::SaveData(tools::Long nRow, sal_uInt16 nColId)
+void OTableEditorCtrl::SaveData(sal_Int32 nRow, sal_uInt16 nColId)
{
// Store the cell content
SetDataPtr( nRow == -1 ? GetCurRow() : nRow);
@@ -602,7 +598,7 @@ bool OTableEditorCtrl::SaveModified()
return true;
}
-bool OTableEditorCtrl::CursorMoving(tools::Long nNewRow, sal_uInt16 nNewCol)
+bool OTableEditorCtrl::CursorMoving(sal_Int32 nNewRow, sal_uInt16 nNewCol)
{
if (!EditBrowseBox::CursorMoving(nNewRow, nNewCol))
@@ -633,7 +629,7 @@ IMPL_LINK_NOARG( OTableEditorCtrl, InvalidateFieldType, void*, void )
Invalidate( GetFieldRectPixel(nOldDataPos, FIELD_TYPE) );
}
-void OTableEditorCtrl::CellModified( tools::Long nRow, sal_uInt16 nColId )
+void OTableEditorCtrl::CellModified( sal_Int32 nRow, sal_uInt16 nColId )
{
// If the description is null, use the default
@@ -735,7 +731,7 @@ void OTableEditorCtrl::CopyRows()
}
if(!vClipboardList.empty())
{
- rtl::Reference<OTableRowExchange> pData = new OTableRowExchange(vClipboardList);
+ rtl::Reference<OTableRowExchange> pData = new OTableRowExchange(std::move(vClipboardList));
pData->CopyToClipboard(GetParent());
}
}
@@ -766,7 +762,7 @@ OUString OTableEditorCtrl::GenerateName( const OUString& rName )
return aFieldName;
}
-void OTableEditorCtrl::InsertRows( tools::Long nRow )
+void OTableEditorCtrl::InsertRows( sal_Int32 nRow )
{
std::vector< std::shared_ptr<OTableRow> > vInsertedUndoRedoRows; // need for undo/redo handling
@@ -774,13 +770,12 @@ void OTableEditorCtrl::InsertRows( tools::Long nRow )
TransferableDataHelper aTransferData(TransferableDataHelper::CreateFromSystemClipboard(GetParent()));
if(aTransferData.HasFormat(SotClipboardFormatId::SBA_TABED))
{
- ::tools::SvRef<SotStorageStream> aStreamRef;
- bool bOk = aTransferData.GetSotStorageStream(SotClipboardFormatId::SBA_TABED,aStreamRef);
- if (bOk && aStreamRef.is())
+ std::unique_ptr<SvStream> aStreamRef = aTransferData.GetSotStorageStream(SotClipboardFormatId::SBA_TABED);
+ if (aStreamRef)
{
aStreamRef->Seek(STREAM_SEEK_TO_BEGIN);
aStreamRef->ResetError();
- tools::Long nInsertRow = nRow;
+ sal_Int32 nInsertRow = nRow;
std::shared_ptr<OTableRow> pRow;
sal_Int32 nSize = 0;
(*aStreamRef).ReadInt32( nSize );
@@ -807,7 +802,7 @@ void OTableEditorCtrl::InsertRows( tools::Long nRow )
RowInserted( nRow,vInsertedUndoRedoRows.size() );
// Create the Undo-Action
- GetUndoManager().AddUndoAction( std::make_unique<OTableEditorInsUndoAct>(this, nRow,vInsertedUndoRedoRows) );
+ GetUndoManager().AddUndoAction( std::make_unique<OTableEditorInsUndoAct>(this, nRow, std::move(vInsertedUndoRedoRows)) );
GetView()->getController().setModified( true );
InvalidateFeatures();
}
@@ -846,11 +841,11 @@ void OTableEditorCtrl::DeleteRows()
InvalidateFeatures();
}
-void OTableEditorCtrl::InsertNewRows( tools::Long nRow )
+void OTableEditorCtrl::InsertNewRows( sal_Int32 nRow )
{
OSL_ENSURE(GetView()->getController().isAddAllowed(),"Call of InsertNewRows not valid here. Please check isAppendAllowed!");
// Create Undo-Action
- tools::Long nInsertRows = GetSelectRowCount();
+ sal_Int32 nInsertRows = GetSelectRowCount();
if( !nInsertRows )
nInsertRows = 1;
GetUndoManager().AddUndoAction( std::make_unique<OTableEditorInsNewUndoAct>(this, nRow, nInsertRows) );
@@ -863,7 +858,7 @@ void OTableEditorCtrl::InsertNewRows( tools::Long nRow )
InvalidateFeatures();
}
-void OTableEditorCtrl::SetControlText( tools::Long nRow, sal_uInt16 nColId, const OUString& rText )
+void OTableEditorCtrl::SetControlText( sal_Int32 nRow, sal_uInt16 nColId, const OUString& rText )
{
// Set the Browser Controls
if( nColId < FIELD_FIRST_VIRTUAL_COLUMN )
@@ -884,7 +879,7 @@ void OTableEditorCtrl::SetControlText( tools::Long nRow, sal_uInt16 nColId, cons
}
}
-void OTableEditorCtrl::SetCellData( tools::Long nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo )
+void OTableEditorCtrl::SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo )
{
// Relocate the current pointer
if( nRow == -1 )
@@ -905,7 +900,7 @@ void OTableEditorCtrl::SetCellData( tools::Long nRow, sal_uInt16 nColId, const T
SetControlText(nRow,nColId,_pTypeInfo ? _pTypeInfo->aUIName : OUString());
}
-void OTableEditorCtrl::SetCellData( tools::Long nRow, sal_uInt16 nColId, const css::uno::Any& _rNewData )
+void OTableEditorCtrl::SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const css::uno::Any& _rNewData )
{
// Relocate the current pointer
if( nRow == -1 )
@@ -971,7 +966,7 @@ void OTableEditorCtrl::SetCellData( tools::Long nRow, sal_uInt16 nColId, const c
case FIELD_PROPERTY_BOOL_DEFAULT:
sValue = GetView()->GetDescWin()->BoolStringPersistent(::comphelper::getString(_rNewData));
- pFieldDescr->SetControlDefault(makeAny(sValue));
+ pFieldDescr->SetControlDefault(Any(sValue));
break;
case FIELD_PROPERTY_FORMAT:
@@ -985,7 +980,7 @@ void OTableEditorCtrl::SetCellData( tools::Long nRow, sal_uInt16 nColId, const c
SetControlText(nRow,nColId,sValue);
}
-Any OTableEditorCtrl::GetCellData( tools::Long nRow, sal_uInt16 nColId )
+Any OTableEditorCtrl::GetCellData( sal_Int32 nRow, sal_uInt16 nColId )
{
OFieldDescription* pFieldDescr = GetFieldDescr( nRow );
if( !pFieldDescr )
@@ -1051,22 +1046,22 @@ Any OTableEditorCtrl::GetCellData( tools::Long nRow, sal_uInt16 nColId )
break;
}
- return makeAny(sValue);
+ return Any(sValue);
}
-OUString OTableEditorCtrl::GetCellText( tools::Long nRow, sal_uInt16 nColId ) const
+OUString OTableEditorCtrl::GetCellText( sal_Int32 nRow, sal_uInt16 nColId ) const
{
OUString sCellText;
const_cast< OTableEditorCtrl* >( this )->GetCellData( nRow, nColId ) >>= sCellText;
return sCellText;
}
-sal_uInt32 OTableEditorCtrl::GetTotalCellWidth(tools::Long nRow, sal_uInt16 nColId)
+sal_uInt32 OTableEditorCtrl::GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId)
{
- return GetTextWidth(GetCellText(nRow, nColId)) + 2 * GetTextWidth("0");
+ return GetTextWidth(GetCellText(nRow, nColId)) + 2 * GetTextWidth(u"0"_ustr);
}
-OFieldDescription* OTableEditorCtrl::GetFieldDescr( tools::Long nRow )
+OFieldDescription* OTableEditorCtrl::GetFieldDescr( sal_Int32 nRow )
{
std::vector< std::shared_ptr<OTableRow> >::size_type nListCount(
m_pRowList->size());
@@ -1279,7 +1274,7 @@ bool OTableEditorCtrl::IsDeleteAllowed()
return GetSelectRowCount() != 0 && GetView()->getController().isDropAllowed();
}
-bool OTableEditorCtrl::IsInsertNewAllowed( tools::Long nRow )
+bool OTableEditorCtrl::IsInsertNewAllowed( sal_Int32 nRow )
{
bool bInsertNewAllowed = GetView()->getController().isAddAllowed();
@@ -1375,7 +1370,7 @@ void OTableEditorCtrl::Command(const CommandEvent& rEvt)
if( !IsReadOnly() )
{
sal_uInt16 nColId = GetColumnId(GetColumnAtXPosPixel(aMenuPos.X()));
- tools::Long nRow = GetRowAtYPosPixel(aMenuPos.Y());
+ sal_Int32 nRow = GetRowAtYPosPixel(aMenuPos.Y());
if ( HANDLE_ID != nColId )
{
@@ -1386,30 +1381,51 @@ void OTableEditorCtrl::Command(const CommandEvent& rEvt)
if ( !IsColumnSelected( nColId ) )
SelectColumnId( nColId );
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/querycolmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- aContextMenu->EnableItem(aContextMenu->GetItemId("delete"), false);
- aContextMenu->RemoveDisabledEntries(true, true);
- if (aContextMenu->Execute(this, aMenuPos) == aContextMenu->GetItemId("width"))
+ ::tools::Rectangle aRect(aMenuPos, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/querycolmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ xContextMenu->remove(u"delete"_ustr);
+ xContextMenu->remove(u"separator"_ustr);
+ if (xContextMenu->popup_at_rect(pPopupParent, aRect) == "width")
adjustBrowseBoxColumnWidth( this, nColId );
}
}
}
else
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/tabledesignrowmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
-
- aContextMenu->EnableItem(aContextMenu->GetItemId("cut"), IsCutAllowed());
- aContextMenu->EnableItem(aContextMenu->GetItemId("copy"), IsCopyAllowed());
- aContextMenu->EnableItem(aContextMenu->GetItemId("paste"), IsPasteAllowed());
- aContextMenu->EnableItem(aContextMenu->GetItemId("delete"), IsDeleteAllowed());
- aContextMenu->EnableItem(aContextMenu->GetItemId("primarykey"), IsPrimaryKeyAllowed());
- aContextMenu->EnableItem(aContextMenu->GetItemId("insert"), IsInsertNewAllowed(nRow));
- aContextMenu->CheckItem("primarykey", IsRowSelected(GetCurRow()) && IsPrimaryKey());
-
- // remove all the disable entries
- aContextMenu->RemoveDisabledEntries(true, true);
+ ::tools::Rectangle aRect(aMenuPos, Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/tabledesignrowmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+
+ if (!IsCutAllowed())
+ xContextMenu->remove(u"cut"_ustr);
+ if (!IsCopyAllowed())
+ xContextMenu->remove(u"copy"_ustr);
+ if (!IsPasteAllowed())
+ xContextMenu->remove(u"paste"_ustr);
+ if (!IsDeleteAllowed())
+ xContextMenu->remove(u"delete"_ustr);
+ // tdf#71224: WORKAROUND for the moment, we don't implement insert field at specific position
+ // It's not SQL standard and each database has made its choice (some use "BEFORE", other "FIRST" and "AFTER")
+ // and some, like Postgresql, don't allow this.
+ // So for the moment, test if the table already exists (and so it's an edition), in this case only
+ // we remove "Insert Fields" entry. Indeed, in case of new table, there's no pb.
+ //
+ // The real fix is to implement the insert for each database + error message for those which don't support this
+ //if (!IsInsertNewAllowed(nRow))
+ if ( GetView()->getController().getTable().is() )
+ xContextMenu->remove(u"insert"_ustr);
+
+ if (IsPrimaryKeyAllowed())
+ {
+ xContextMenu->set_active(u"primarykey"_ustr, IsRowSelected(GetCurRow()) && IsPrimaryKey());
+ }
+ else
+ {
+ xContextMenu->remove(u"primarykey"_ustr);
+ }
if( SetDataPtr(m_nDataPos) )
pDescrWin->SaveData( pActRow->GetActFieldDescr() );
@@ -1417,8 +1433,7 @@ void OTableEditorCtrl::Command(const CommandEvent& rEvt)
// All actions which change the number of rows must be run asynchronously
// otherwise there may be problems between the Context menu and the Browser
m_nDataPos = GetCurRow();
- aContextMenu->Execute(this, aMenuPos);
- OString sIdent = aContextMenu->GetCurItemIdent();
+ OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
if (sIdent == "cut")
cut();
else if (sIdent == "copy")
@@ -1591,13 +1606,13 @@ bool OTableEditorCtrl::IsPrimaryKey()
void OTableEditorCtrl::SwitchType( const TOTypeInfoSP& _pType )
{
// if there is no assigned field name
- tools::Long nRow(GetCurRow());
+ sal_Int32 nRow(GetCurRow());
OFieldDescription* pActFieldDescr = GetFieldDescr( nRow );
if( pActFieldDescr )
// Store the old description
pDescrWin->SaveData( pActFieldDescr );
- if ( nRow < 0 || nRow > static_cast<tools::Long>(m_pRowList->size()) )
+ if ( nRow < 0 || o3tl::make_unsigned(nRow) > m_pRowList->size() )
return;
// Show the new description
std::shared_ptr<OTableRow> pRow = (*m_pRowList)[nRow];
@@ -1648,14 +1663,14 @@ void OTableEditorCtrl::DeactivateCell(bool bUpdate)
{
OTableRowView::DeactivateCell(bUpdate);
// now we have to deactivate the field description
- tools::Long nRow(GetCurRow());
+ sal_Int32 nRow(GetCurRow());
if (pDescrWin)
pDescrWin->SetReadOnly(bReadOnly || !SetDataPtr(nRow) || GetActRow()->IsReadOnly());
}
bool OTableEditorCtrl::PreNotify( NotifyEvent& rNEvt )
{
- if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ if (rNEvt.GetType() == NotifyEventType::GETFOCUS)
{
if( pHelpTextCell && pHelpTextCell->HasChildPathFocus() )
m_eChildFocus = HELPTEXT;
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.hxx b/dbaccess/source/ui/tabledesign/TEditControl.hxx
index 8c2608e24e2f..26faf0524d10 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.hxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.hxx
@@ -24,7 +24,6 @@
#include <TableRow.hxx>
#include <TypeInfo.hxx>
-class Edit;
class SfxUndoManager;
namespace dbaui
{
@@ -85,29 +84,29 @@ namespace dbaui
protected:
virtual void Command( const CommandEvent& rEvt ) override;
- virtual bool SeekRow(tools::Long nRow) override;
+ virtual bool SeekRow(sal_Int32 nRow) override;
virtual void PaintCell(OutputDevice& rDev, const tools::Rectangle& rRect,
sal_uInt16 nColumnId ) const override;
virtual void CursorMoved() override;
- virtual RowStatus GetRowStatus(tools::Long nRow) const override;
+ virtual RowStatus GetRowStatus(sal_Int32 nRow) const override;
- virtual ::svt::CellController* GetController(tools::Long nRow, sal_uInt16 nCol) override;
- virtual void InitController(::svt::CellControllerRef& rController, tools::Long nRow, sal_uInt16 nCol) override;
+ virtual ::svt::CellController* GetController(sal_Int32 nRow, sal_uInt16 nCol) override;
+ virtual void InitController(::svt::CellControllerRef& rController, sal_Int32 nRow, sal_uInt16 nCol) override;
virtual void CellModified() override;
virtual bool SaveModified() override; // is called before changing a cell (false prevents change)
- virtual OUString GetCellText(tools::Long nRow, sal_uInt16 nColId) const override;
- virtual sal_uInt32 GetTotalCellWidth(tools::Long nRow, sal_uInt16 nColId) override;
+ virtual OUString GetCellText(sal_Int32 nRow, sal_uInt16 nColId) const override;
+ virtual sal_uInt32 GetTotalCellWidth(sal_Int32 nRow, sal_uInt16 nColId) override;
virtual void CopyRows() override;
- virtual void InsertRows( tools::Long nRow ) override;
+ virtual void InsertRows( sal_Int32 nRow ) override;
virtual void DeleteRows() override;
- virtual void InsertNewRows( tools::Long nRow ) override;
+ virtual void InsertNewRows( sal_Int32 nRow ) override;
virtual bool IsPrimaryKeyAllowed() override;
- virtual bool IsInsertNewAllowed( tools::Long nRow ) override;
+ virtual bool IsInsertNewAllowed( sal_Int32 nRow ) override;
virtual bool IsDeleteAllowed() override;
void ClearModified();
@@ -119,7 +118,7 @@ namespace dbaui
explicit OTableEditorCtrl(vcl::Window* pParentWin, OTableDesignView* pView);
virtual ~OTableEditorCtrl() override;
virtual void dispose() override;
- virtual bool CursorMoving(tools::Long nNewRow, sal_uInt16 nNewCol) override;
+ virtual bool CursorMoving(sal_Int32 nNewRow, sal_uInt16 nNewCol) override;
SfxUndoManager& GetUndoManager() const;
void SetDescrWin( OTableFieldDescWin* pWin )
@@ -132,19 +131,19 @@ namespace dbaui
void SwitchType( const TOTypeInfoSP& _pType );
/// force displaying of the given row
- void DisplayData( tools::Long nRow );
+ void DisplayData( sal_Int32 nRow );
- virtual void SetCellData( tools::Long nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo ) override;
- virtual void SetCellData( tools::Long nRow, sal_uInt16 nColId, const css::uno::Any& _rSaveData ) override;
- virtual css::uno::Any GetCellData( tools::Long nRow, sal_uInt16 nColId ) override;
- virtual void SetControlText( tools::Long nRow, sal_uInt16 nColId, const OUString& rText ) override;
+ virtual void SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo ) override;
+ virtual void SetCellData( sal_Int32 nRow, sal_uInt16 nColId, const css::uno::Any& _rSaveData ) override;
+ virtual css::uno::Any GetCellData( sal_Int32 nRow, sal_uInt16 nColId ) override;
+ virtual void SetControlText( sal_Int32 nRow, sal_uInt16 nColId, const OUString& rText ) override;
virtual OTableDesignView* GetView() const override;
std::vector< std::shared_ptr<OTableRow> >* GetRowList(){ return m_pRowList; }
const std::shared_ptr<OTableRow>& GetActRow() const { return pActRow; }
- void CellModified( tools::Long nRow, sal_uInt16 nColId );
+ void CellModified( sal_Int32 nRow, sal_uInt16 nColId );
void SetReadOnly( bool bRead );
virtual void Init() override;
@@ -154,7 +153,7 @@ namespace dbaui
bool IsCopyAllowed();
bool IsPasteAllowed() const;
bool IsReadOnly() const { return bReadOnly;}
- OFieldDescription* GetFieldDescr( tools::Long nRow );
+ OFieldDescription* GetFieldDescr( sal_Int32 nRow );
// Window overrides
virtual bool PreNotify( NotifyEvent& rNEvt ) override;
@@ -176,11 +175,11 @@ namespace dbaui
DECL_LINK( InvalidateFieldType, void*, void );
void InitCellController();
- sal_Int32 HasFieldName( const OUString& rFieldName );
+ sal_Int32 HasFieldName( std::u16string_view rFieldName );
OUString GenerateName( const OUString& rName );
- bool SetDataPtr( tools::Long nRow );
+ bool SetDataPtr( sal_Int32 nRow );
- void SaveData(tools::Long nRow, sal_uInt16 nColumnId);
+ void SaveData(sal_Int32 nRow, sal_uInt16 nColumnId);
/** AdjustFieldDescription set the needed values for the description
@param _pFieldDesc the field description where to set the values
@param _rMultiSel contains the positions which changed for undo/redo
diff --git a/dbaccess/source/ui/tabledesign/TableController.cxx b/dbaccess/source/ui/tabledesign/TableController.cxx
index 57af83b361f3..7b5b6d152cfc 100644
--- a/dbaccess/source/ui/tabledesign/TableController.cxx
+++ b/dbaccess/source/ui/tabledesign/TableController.cxx
@@ -46,17 +46,18 @@
#include <com/sun/star/sdbcx/XIndexesSupplier.hpp>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
-#include <comphelper/processfactory.hxx>
#include <connectivity/dbexception.hxx>
#include <connectivity/dbtools.hxx>
#include <connectivity/dbmetadata.hxx>
#include <cppuhelper/exc_hlp.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
#include <vcl/weld.hxx>
+#include <o3tl/string_view.hxx>
#include <algorithm>
#include <functional>
+#include <set>
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
org_openoffice_comp_dbu_OTableDesign_get_implementation(
@@ -67,7 +68,6 @@ org_openoffice_comp_dbu_OTableDesign_get_implementation(
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::frame;
using namespace ::com::sun::star::lang;
@@ -75,7 +75,6 @@ using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::sdb;
-using namespace ::com::sun::star::ui;
using namespace ::com::sun::star::util;
using namespace ::dbtools;
using namespace ::dbaui;
@@ -100,17 +99,16 @@ namespace
OUString SAL_CALL OTableController::getImplementationName()
{
- return "org.openoffice.comp.dbu.OTableDesign";
+ return u"org.openoffice.comp.dbu.OTableDesign"_ustr;
}
Sequence< OUString> OTableController::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.TableDesign" };
+ return { u"com.sun.star.sdb.TableDesign"_ustr };
}
OTableController::OTableController(const Reference< XComponentContext >& _rM) : OTableController_BASE(_rM)
,m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
- ,m_pTypeInfo()
,m_bAllowAutoIncrementValue(false)
,m_bNew(true)
{
@@ -315,9 +313,9 @@ bool OTableController::doSaveDoc(bool _bSaveAs)
xTable = xFact->createDataDescriptor();
OSL_ENSURE(xTable.is(),"OTableController::doSaveDoc: Create query failed!");
// to set the name is only allowed when the query is new
- xTable->setPropertyValue(PROPERTY_CATALOGNAME,makeAny(sCatalog));
- xTable->setPropertyValue(PROPERTY_SCHEMANAME,makeAny(sSchema));
- xTable->setPropertyValue(PROPERTY_NAME,makeAny(m_sName));
+ xTable->setPropertyValue(PROPERTY_CATALOGNAME,Any(sCatalog));
+ xTable->setPropertyValue(PROPERTY_SCHEMANAME,Any(sSchema));
+ xTable->setPropertyValue(PROPERTY_NAME,Any(m_sName));
// now append the columns
Reference<XColumnsSupplier> xColSup(xTable,UNO_QUERY);
@@ -455,13 +453,11 @@ void OTableController::doEditIndexes()
}
-void OTableController::impl_initialize()
+void OTableController::impl_initialize(const ::comphelper::NamedValueCollection& rArguments)
{
try
{
- OTableController_BASE::impl_initialize();
-
- const NamedValueCollection& rArguments( getInitParams() );
+ OTableController_BASE::impl_initialize(rArguments);
rArguments.get_ensureType( PROPERTY_CURRENTTABLE, m_sName );
@@ -522,8 +518,8 @@ sal_Bool SAL_CALL OTableController::suspend(sal_Bool /*_bSuspend*/)
if ( std::any_of(m_vRowList.begin(),m_vRowList.end(),
std::mem_fn(&OTableRow::isValid)) )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), "dbaccess/ui/tabledesignsavemodifieddialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("TableDesignSaveModifiedDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), u"dbaccess/ui/tabledesignsavemodifieddialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"TableDesignSaveModifiedDialog"_ustr));
switch (xQuery->run())
{
case RET_YES:
@@ -540,8 +536,8 @@ sal_Bool SAL_CALL OTableController::suspend(sal_Bool /*_bSuspend*/)
}
else if ( !m_bNew )
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), "dbaccess/ui/deleteallrowsdialog.ui"));
- std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("DeleteAllRowsDialog"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(getFrameWeld(), u"dbaccess/ui/deleteallrowsdialog.ui"_ustr));
+ std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog(u"DeleteAllRowsDialog"_ustr));
switch (xQuery->run())
{
case RET_YES:
@@ -575,15 +571,15 @@ void OTableController::describeSupportedFeatures()
{
OSingleDocumentController::describeSupportedFeatures();
- implDescribeSupportedFeature( ".uno:Redo", ID_BROWSER_REDO, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Save", ID_BROWSER_SAVEDOC, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:Undo", ID_BROWSER_UNDO, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:NewDoc", SID_NEWDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:SaveAs", ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
- implDescribeSupportedFeature( ".uno:DBIndexDesign", SID_INDEXDESIGN, CommandGroup::APPLICATION );
- implDescribeSupportedFeature( ".uno:EditDoc", ID_BROWSER_EDITDOC, CommandGroup::EDIT );
- implDescribeSupportedFeature( ".uno:GetUndoStrings", SID_GETUNDOSTRINGS );
- implDescribeSupportedFeature( ".uno:GetRedoStrings", SID_GETREDOSTRINGS );
+ implDescribeSupportedFeature( u".uno:Redo"_ustr, ID_BROWSER_REDO, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Save"_ustr, ID_BROWSER_SAVEDOC, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:Undo"_ustr, ID_BROWSER_UNDO, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:NewDoc"_ustr, SID_NEWDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:SaveAs"_ustr, ID_BROWSER_SAVEASDOC, CommandGroup::DOCUMENT );
+ implDescribeSupportedFeature( u".uno:DBIndexDesign"_ustr, SID_INDEXDESIGN, CommandGroup::APPLICATION );
+ implDescribeSupportedFeature( u".uno:EditDoc"_ustr, ID_BROWSER_EDITDOC, CommandGroup::EDIT );
+ implDescribeSupportedFeature( u".uno:GetUndoStrings"_ustr, SID_GETUNDOSTRINGS );
+ implDescribeSupportedFeature( u".uno:GetRedoStrings"_ustr, SID_GETREDOSTRINGS );
}
void OTableController::impl_onModifyChanged()
@@ -663,7 +659,7 @@ void OTableController::appendColumns(Reference<XColumnsSupplier> const & _rxColS
if(!_bKeyColumns)
::dbaui::setColumnProperties(xColumn,pField);
else
- xColumn->setPropertyValue(PROPERTY_NAME,makeAny(pField->GetName()));
+ xColumn->setPropertyValue(PROPERTY_NAME,Any(pField->GetName()));
xAppend->appendByDescriptor(xColumn);
xColumn = nullptr;
@@ -722,7 +718,7 @@ void OTableController::appendPrimaryKey(Reference<XKeysSupplier> const & _rxSup,
Reference<XPropertySet> xKey = xKeyFactory->createDataDescriptor();
OSL_ENSURE(xKey.is(),"Key is null!");
- xKey->setPropertyValue(PROPERTY_TYPE,makeAny(KeyType::PRIMARY));
+ xKey->setPropertyValue(PROPERTY_TYPE,Any(KeyType::PRIMARY));
Reference<XColumnsSupplier> xColSup(xKey,UNO_QUERY);
if(xColSup.is())
@@ -795,7 +791,7 @@ void OTableController::loadData()
pTabEdRow->SetReadOnly(!bIsAlterAllowed);
// search for type
bool bForce;
- TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(m_aTypeInfo,nType,sTypeName,"x",nPrecision,nScale,bIsAutoIncrement,bForce);
+ TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(m_aTypeInfo,nType,sTypeName,u"x"_ustr,nPrecision,nScale,bIsAutoIncrement,bForce);
if ( !pTypeInfo )
pTypeInfo = m_pTypeInfo;
pTabEdRow->SetFieldType( pTypeInfo, bForce );
@@ -903,18 +899,18 @@ bool OTableController::checkColumns(bool _bNew)
{
case RET_YES:
{
- auto pNewRow = std::make_shared<OTableRow>();
TOTypeInfoSP pTypeInfo = ::dbaui::queryPrimaryKeyType(m_aTypeInfo);
if ( !pTypeInfo )
break;
+ auto pNewRow = std::make_shared<OTableRow>();
pNewRow->SetFieldType( pTypeInfo );
OFieldDescription* pActFieldDescr = pNewRow->GetActFieldDescr();
- pActFieldDescr->SetAutoIncrement(false);
+ pActFieldDescr->SetAutoIncrement(pTypeInfo->bAutoIncrement);
pActFieldDescr->SetIsNullable(ColumnValue::NO_NULLS);
- pActFieldDescr->SetName( createUniqueName("ID" ));
+ pActFieldDescr->SetName( createUniqueName(u"ID"_ustr ));
pActFieldDescr->SetPrimaryKey( true );
m_vRowList.insert(m_vRowList.begin(),pNewRow);
@@ -1121,14 +1117,14 @@ void OTableController::alterColumns()
xColumns->getByName(pField->GetName()) >>= xColumn;
Reference<XPropertySetInfo> xInfo = xColumn->getPropertySetInfo();
if ( xInfo->hasPropertyByName(PROPERTY_HELPTEXT) )
- xColumn->setPropertyValue(PROPERTY_HELPTEXT,makeAny(pField->GetHelpText()));
+ xColumn->setPropertyValue(PROPERTY_HELPTEXT,Any(pField->GetHelpText()));
if(xInfo->hasPropertyByName(PROPERTY_CONTROLDEFAULT))
xColumn->setPropertyValue(PROPERTY_CONTROLDEFAULT,pField->GetControlDefault());
if(xInfo->hasPropertyByName(PROPERTY_FORMATKEY))
- xColumn->setPropertyValue(PROPERTY_FORMATKEY,makeAny(pField->GetFormatKey()));
+ xColumn->setPropertyValue(PROPERTY_FORMATKEY,Any(pField->GetFormatKey()));
if(xInfo->hasPropertyByName(PROPERTY_ALIGN))
- xColumn->setPropertyValue(PROPERTY_ALIGN,makeAny(dbaui::mapTextAllign(pField->GetHorJustify())));
+ xColumn->setPropertyValue(PROPERTY_ALIGN,Any(dbaui::mapTextAlign(pField->GetHorJustify())));
}
}
// second drop all columns which could be found by name
@@ -1164,15 +1160,11 @@ void OTableController::alterColumns()
}
catch (const SQLException&)
{
+ const auto caughtException = ::cppu::getCaughtException();
OUString sError( DBA_RES( STR_TABLEDESIGN_COULD_NOT_DROP_COL ) );
sError = sError.replaceFirst( "$column$", rColumnName );
- SQLException aNewException;
- aNewException.Message = sError;
- aNewException.SQLState = "S1000";
- aNewException.NextException = ::cppu::getCaughtException();
-
- throw aNewException;
+ throw SQLException(sError, {}, u"S1000"_ustr, 0, caughtException);
}
}
}
@@ -1326,7 +1318,7 @@ void OTableController::assignTable()
if (!xProp.is())
return;
- m_xTable = xProp;
+ m_xTable = std::move(xProp);
startTableListening();
// check if we set the table editable
@@ -1444,7 +1436,7 @@ OUString OTableController::getPrivateTitle() const
if ( sTitle.isEmpty() )
{
OUString aName = DBA_RES(STR_TBL_TITLE);
- sTitle = aName.getToken(0,' ') + OUString::number(getCurrentStartNumber());
+ sTitle = o3tl::getToken(aName,0,' ') + OUString::number(getCurrentStartNumber());
}
}
catch( const Exception& )
diff --git a/dbaccess/source/ui/tabledesign/TableDesignControl.cxx b/dbaccess/source/ui/tabledesign/TableDesignControl.cxx
index fd91b310a8af..317956ce734f 100644
--- a/dbaccess/source/ui/tabledesign/TableDesignControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TableDesignControl.cxx
@@ -22,9 +22,9 @@
#include <TableController.hxx>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
-#include <vcl/builder.hxx>
#include <vcl/commandevent.hxx>
-#include <vcl/menu.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/weldutils.hxx>
#include <helpids.h>
using namespace ::dbaui;
@@ -105,32 +105,22 @@ void OTableRowView::Command(const CommandEvent& rEvt)
}
sal_uInt16 nColId = GetColumnId(GetColumnAtXPosPixel(rEvt.GetMousePosPixel().X()));
- tools::Long nRow = GetRowAtYPosPixel(rEvt.GetMousePosPixel().Y());
+ sal_Int32 nRow = GetRowAtYPosPixel(rEvt.GetMousePosPixel().Y());
if ( nColId == HANDLE_ID )
{
- VclBuilder aBuilder(nullptr, AllSettings::GetUIRootDir(), "dbaccess/ui/querycolmenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- tools::Long nSelectRowCount = GetSelectRowCount();
- aContextMenu->EnableItem(aContextMenu->GetItemId("cut"), nSelectRowCount != 0);
- aContextMenu->EnableItem(aContextMenu->GetItemId("copy"), nSelectRowCount != 0);
- aContextMenu->EnableItem(aContextMenu->GetItemId("paste"), false);
- aContextMenu->EnableItem(aContextMenu->GetItemId("delete"), false);
- aContextMenu->Execute(this, rEvt.GetMousePosPixel());
- OString sIdent = aContextMenu->GetCurItemIdent();
+ ::tools::Rectangle aRect(rEvt.GetMousePosPixel(), Size(1, 1));
+ weld::Window* pPopupParent = weld::GetPopupParent(*this, aRect);
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(pPopupParent, u"dbaccess/ui/tabledesignrowmenu.ui"_ustr));
+ std::unique_ptr<weld::Menu> xContextMenu(xBuilder->weld_menu(u"menu"_ustr));
+ sal_Int32 nSelectRowCount = GetSelectRowCount();
+ xContextMenu->set_sensitive(u"cut"_ustr, nSelectRowCount != 0);
+ xContextMenu->set_sensitive(u"copy"_ustr, nSelectRowCount != 0);
+ OUString sIdent = xContextMenu->popup_at_rect(pPopupParent, aRect);
if (sIdent == "cut")
cut();
else if (sIdent == "copy")
copy();
- else if (sIdent == "paste")
- {
- Paste( nRow );
- SetNoSelection();
- GoToRow( nRow );
- SeekRow( nRow );
- }
- else if (sIdent == "delete")
- DeleteRows();
else if (sIdent == "insert")
{
InsertNewRows( nRow );
@@ -166,12 +156,12 @@ void OTableRowView::paste()
OSL_FAIL("OTableRowView::Paste : (pseudo-) abstract method called !");
}
-void OTableRowView::Paste( tools::Long nRow )
+void OTableRowView::Paste( sal_Int32 nRow )
{
InsertRows( nRow );
}
-EditBrowseBox::RowStatus OTableRowView::GetRowStatus(tools::Long nRow) const
+EditBrowseBox::RowStatus OTableRowView::GetRowStatus(sal_Int32 nRow) const
{
if (nRow >= 0 && m_nDataPos == nRow)
return CURRENT;
diff --git a/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx b/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
index 1928766c07bd..f81123e55d03 100644
--- a/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
+++ b/dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx
@@ -18,13 +18,11 @@
*/
#include <TableDesignHelpBar.hxx>
-#include <vcl/event.hxx>
-#include <vcl/settings.hxx>
#include <helpids.h>
using namespace dbaui;
-#define DETAILS_MIN_HELP_WIDTH 200
+#define DETAILS_MIN_HELP_WIDTH 200
OTableDesignHelpBar::OTableDesignHelpBar(std::unique_ptr<weld::TextView> xTextWin)
: m_xTextWin(std::move(xTextWin))
@@ -33,7 +31,7 @@ OTableDesignHelpBar::OTableDesignHelpBar(std::unique_ptr<weld::TextView> xTextWi
m_xTextWin->set_help_id(HID_TAB_DESIGN_HELP_TEXT_FRAME);
}
-void OTableDesignHelpBar::SetHelpText( const OUString& rText )
+void OTableDesignHelpBar::SetHelpText(const OUString& rText)
{
if (!m_xTextWin)
return;
@@ -46,19 +44,11 @@ bool OTableDesignHelpBar::isCopyAllowed()
return m_xTextWin && m_xTextWin->get_selection_bounds(mStartPos, nEndPos);
}
-bool OTableDesignHelpBar::isCutAllowed()
-{
- return false;
-}
+bool OTableDesignHelpBar::isCutAllowed() { return false; }
-bool OTableDesignHelpBar::isPasteAllowed()
-{
- return false;
-}
+bool OTableDesignHelpBar::isPasteAllowed() { return false; }
-void OTableDesignHelpBar::cut()
-{
-}
+void OTableDesignHelpBar::cut() {}
void OTableDesignHelpBar::copy()
{
@@ -67,8 +57,6 @@ void OTableDesignHelpBar::copy()
m_xTextWin->copy_clipboard();
}
-void OTableDesignHelpBar::paste()
-{
-}
+void OTableDesignHelpBar::paste() {}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/tabledesign/TableDesignView.cxx b/dbaccess/source/ui/tabledesign/TableDesignView.cxx
index bb2657f91a6f..4ae94dcf6e78 100644
--- a/dbaccess/source/ui/tabledesign/TableDesignView.cxx
+++ b/dbaccess/source/ui/tabledesign/TableDesignView.cxx
@@ -27,23 +27,20 @@
#include <i18nlangtag/languagetag.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <unotools/syslocale.hxx>
-#include <vcl/settings.hxx>
#include <memory>
using namespace ::dbaui;
-using namespace ::utl;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::datatransfer::clipboard;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
OTableBorderWindow::OTableBorderWindow(OTableDesignView* pParent)
- : InterimItemWindow(pParent, "dbaccess/ui/tableborderwindow.ui", "TableBorderWindow", false)
- , m_xHorzSplitter(m_xBuilder->weld_paned("splitter"))
- , m_xEditorParent(m_xBuilder->weld_container("editor"))
+ : InterimItemWindow(pParent, u"dbaccess/ui/tableborderwindow.ui"_ustr, u"TableBorderWindow"_ustr, false)
+ , m_xHorzSplitter(m_xBuilder->weld_paned(u"splitter"_ustr))
+ , m_xEditorParent(m_xBuilder->weld_container(u"editor"_ustr))
, m_xEditorParentWin(m_xEditorParent->CreateChildFrame())
, m_xEditorCtrl(VclPtr<OTableEditorCtrl>::Create(VCLUnoHelper::GetWindow(m_xEditorParentWin), pParent))
- , m_xFieldDescParent(m_xBuilder->weld_container("fielddesc"))
+ , m_xFieldDescParent(m_xBuilder->weld_container(u"fielddesc"_ustr))
, m_xFieldDescWin(new OTableFieldDescWin(m_xFieldDescParent.get(), pParent))
{
SetStyle(GetStyle() | WB_DIALOGCONTROL);
@@ -167,7 +164,7 @@ IMPL_LINK_NOARG(OTableDesignView, FieldDescFocusIn, weld::Widget&, void)
bool OTableDesignView::PreNotify( NotifyEvent& rNEvt )
{
- if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS)
+ if (rNEvt.GetType() == NotifyEventType::GETFOCUS)
{
if( GetDescWin() && GetDescWin()->HasChildPathFocus() )
m_eChildFocus = DESCRIPTION;
diff --git a/dbaccess/source/ui/tabledesign/TableFieldControl.cxx b/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
index 01e25d75d05a..fac580c2586a 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
@@ -41,7 +41,7 @@ OTableFieldControl::OTableFieldControl(weld::Container* pParent, OTableDesignHel
void OTableFieldControl::dispose()
{
- m_xView.clear();
+ m_xView.reset();
}
OTableFieldControl::~OTableFieldControl()
@@ -49,7 +49,7 @@ OTableFieldControl::~OTableFieldControl()
dispose();
}
-void OTableFieldControl::CellModified(tools::Long nRow, sal_uInt16 nColId )
+void OTableFieldControl::CellModified(sal_Int32 nRow, sal_uInt16 nColId )
{
GetCtrl()->CellModified(nRow,nColId);
}
diff --git a/dbaccess/source/ui/tabledesign/TableFieldControl.hxx b/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
index 4dd53a24dd7d..4a232f86c3d8 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
@@ -39,7 +39,7 @@ namespace dbaui
virtual void ActivateAggregate( EControlType eType ) override;
virtual void DeactivateAggregate( EControlType eType ) override;
// are to be implemented by the derived classes
- virtual void CellModified(tools::Long nRow, sal_uInt16 nColId ) override;
+ virtual void CellModified(sal_Int32 nRow, sal_uInt16 nColId ) override;
virtual bool IsReadOnly() override;
virtual void SetModified(bool bModified) override;
virtual css::uno::Reference< css::util::XNumberFormatter > GetFormatter() const override;
diff --git a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
index af7dfd6168b7..7aa12b498190 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
@@ -18,23 +18,20 @@
*/
#include "TableFieldDescWin.hxx"
-#include <osl/diagnose.h>
#include <FieldDescriptions.hxx>
#include <strings.hrc>
#include <TableDesignHelpBar.hxx>
-#include <vcl/event.hxx>
-#include <vcl/settings.hxx>
#include <helpids.h>
#include <core_resource.hxx>
using namespace dbaui;
OTableFieldDescWin::OTableFieldDescWin(weld::Container* pParent, OTableDesignView* pView)
- : OChildWindow(pParent, "dbaccess/ui/fielddescpanel.ui", "FieldDescPanel")
- , m_xHelpBar(new OTableDesignHelpBar(m_xBuilder->weld_text_view("textview")))
- , m_xBox(m_xBuilder->weld_container("box"))
- , m_xFieldControl(new OTableFieldControl(m_xBox.get(), m_xHelpBar.get(), pView))
- , m_xHeader(m_xBuilder->weld_label("header"))
+ : OChildWindow(pParent, u"dbaccess/ui/fielddescpanel.ui"_ustr, u"FieldDescPanel"_ustr)
+ , m_aHelpBar(m_xBuilder->weld_text_view(u"textview"_ustr))
+ , m_xBox(m_xBuilder->weld_container(u"box"_ustr))
+ , m_xFieldControl(new OTableFieldControl(m_xBox.get(), &m_aHelpBar, pView))
+ , m_xHeader(m_xBuilder->weld_label(u"header"_ustr))
, m_eChildFocus(NONE)
{
// Header
@@ -42,13 +39,13 @@ OTableFieldDescWin::OTableFieldDescWin(weld::Container* pParent, OTableDesignVie
m_xFieldControl->SetHelpId(HID_TAB_DESIGN_FIELDCONTROL);
- m_xHelpBar->connect_focus_in(LINK(this, OTableFieldDescWin, HelpFocusIn));
+ m_aHelpBar.connect_focus_in(LINK(this, OTableFieldDescWin, HelpFocusIn));
m_xFieldControl->connect_focus_in(LINK(this, OTableFieldDescWin, FieldFocusIn));
}
bool OTableFieldDescWin::HasChildPathFocus() const
{
- return m_xFieldControl->HasChildPathFocus() || m_xHelpBar->HasFocus();
+ return m_xFieldControl->HasChildPathFocus() || m_aHelpBar.HasFocus();
}
OTableFieldDescWin::~OTableFieldDescWin()
@@ -84,7 +81,7 @@ IClipboardTest* OTableFieldDescWin::getActiveChild() const
pTest = m_xFieldControl.get();
break;
default:
- pTest = m_xHelpBar.get();
+ pTest = const_cast<OTableDesignHelpBar*>(&m_aHelpBar);
break;
}
return pTest;
diff --git a/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx b/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
index 1e65397a70dd..f14e468c561e 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
@@ -21,10 +21,10 @@
#include <IClipBoardTest.hxx>
#include <ChildWindow.hxx>
#include "TableFieldControl.hxx"
+#include <TableDesignHelpBar.hxx>
namespace dbaui
{
- class OTableDesignHelpBar;
class OTableDesignView;
class OFieldDescription;
@@ -38,7 +38,7 @@ namespace dbaui
NONE
};
private:
- std::unique_ptr<OTableDesignHelpBar> m_xHelpBar;
+ OTableDesignHelpBar m_aHelpBar;
std::unique_ptr<weld::Container> m_xBox;
std::unique_ptr<OTableFieldControl> m_xFieldControl;
std::unique_ptr<weld::Label> m_xHeader;
@@ -64,7 +64,7 @@ namespace dbaui
void SetControlText( sal_uInt16 nControlId, const OUString& rText )
{ m_xFieldControl->SetControlText(nControlId,rText); }
- OUString BoolStringPersistent(const OUString& rUIString) const { return m_xFieldControl->BoolStringPersistent(rUIString); }
+ OUString BoolStringPersistent(std::u16string_view rUIString) const { return m_xFieldControl->BoolStringPersistent(rUIString); }
OUString BoolStringUI(const OUString& rPersistentString) const { return m_xFieldControl->BoolStringUI(rPersistentString); }
virtual bool HasChildPathFocus() const override;
diff --git a/dbaccess/source/ui/tabledesign/TableRow.cxx b/dbaccess/source/ui/tabledesign/TableRow.cxx
index 8b91f11b287c..02976fb59589 100644
--- a/dbaccess/source/ui/tabledesign/TableRow.cxx
+++ b/dbaccess/source/ui/tabledesign/TableRow.cxx
@@ -23,9 +23,7 @@
#include <comphelper/types.hxx>
using namespace dbaui;
-using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
OTableRow::OTableRow()
:m_pActFieldDescr( nullptr )
@@ -35,15 +33,6 @@ OTableRow::OTableRow()
{
}
-OTableRow::OTableRow(const Reference< XPropertySet >& xAffectedCol)
- :m_pActFieldDescr( nullptr )
- ,m_nPos( -1 )
- ,m_bReadOnly( false )
- ,m_bOwnsDescriptions(true)
-{
- m_pActFieldDescr = new OFieldDescription(xAffectedCol);
-}
-
OTableRow::OTableRow( const OTableRow& rRow, tools::Long nPosition )
:m_pActFieldDescr(nullptr)
,m_nPos( nPosition )
@@ -139,53 +128,52 @@ namespace dbaui
_rStr.ReadInt32( _rRow.m_nPos );
sal_Int32 nValue = 0;
_rStr.ReadInt32( nValue );
- if ( nValue )
+ if ( !nValue )
+ return _rStr;
+ OFieldDescription* pFieldDesc = new OFieldDescription();
+ _rRow.m_pActFieldDescr = pFieldDesc;
+ pFieldDesc->SetName(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
+ pFieldDesc->SetDescription(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
+ pFieldDesc->SetHelpText(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
+
+ _rStr.ReadInt32( nValue );
+ Any aControlDefault;
+ switch ( nValue )
{
- OFieldDescription* pFieldDesc = new OFieldDescription();
- _rRow.m_pActFieldDescr = pFieldDesc;
- pFieldDesc->SetName(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
- pFieldDesc->SetDescription(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
- pFieldDesc->SetHelpText(_rStr.ReadUniOrByteString(_rStr.GetStreamCharSet()));
-
- _rStr.ReadInt32( nValue );
- Any aControlDefault;
- switch ( nValue )
+ case 1:
{
- case 1:
- {
- double nControlDefault;
- _rStr.ReadDouble( nControlDefault );
- aControlDefault <<= nControlDefault;
- break;
- }
- case 2:
- aControlDefault <<= _rStr.ReadUniOrByteString(_rStr.GetStreamCharSet());
- break;
+ double nControlDefault;
+ _rStr.ReadDouble( nControlDefault );
+ aControlDefault <<= nControlDefault;
+ break;
}
-
- pFieldDesc->SetControlDefault(aControlDefault);
-
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetTypeValue(nValue);
-
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetPrecision(nValue);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetScale(nValue);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetIsNullable(nValue);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetFormatKey(nValue);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetHorJustify(static_cast<SvxCellHorJustify>(nValue));
-
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetAutoIncrement(nValue != 0);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetPrimaryKey(nValue != 0);
- _rStr.ReadInt32( nValue );
- pFieldDesc->SetCurrency(nValue != 0);
+ case 2:
+ aControlDefault <<= _rStr.ReadUniOrByteString(_rStr.GetStreamCharSet());
+ break;
}
+
+ pFieldDesc->SetControlDefault(aControlDefault);
+
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetTypeValue(nValue);
+
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetPrecision(nValue);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetScale(nValue);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetIsNullable(nValue);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetFormatKey(nValue);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetHorJustify(static_cast<SvxCellHorJustify>(nValue));
+
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetAutoIncrement(nValue != 0);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetPrimaryKey(nValue != 0);
+ _rStr.ReadInt32( nValue );
+ pFieldDesc->SetCurrency(nValue != 0);
return _rStr;
}
}
diff --git a/dbaccess/source/ui/tabledesign/TableRowExchange.cxx b/dbaccess/source/ui/tabledesign/TableRowExchange.cxx
index 53b54cef400c..19917e7a26d1 100644
--- a/dbaccess/source/ui/tabledesign/TableRowExchange.cxx
+++ b/dbaccess/source/ui/tabledesign/TableRowExchange.cxx
@@ -26,22 +26,20 @@ namespace dbaui
{
constexpr sal_uInt32 FORMAT_OBJECT_ID_SBA_TABED = 1;
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
- OTableRowExchange::OTableRowExchange(const std::vector< std::shared_ptr<OTableRow> >& _rvTableRow)
- : m_vTableRow(_rvTableRow)
+ OTableRowExchange::OTableRowExchange(std::vector< std::shared_ptr<OTableRow> >&& _rvTableRow)
+ : m_vTableRow(std::move(_rvTableRow))
{
}
- bool OTableRowExchange::WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& /*rFlavor*/ )
+ bool OTableRowExchange::WriteObject( SvStream& rOStm, void* pUserObject, sal_uInt32 nUserObjectId, const css::datatransfer::DataFlavor& /*rFlavor*/ )
{
if(nUserObjectId == FORMAT_OBJECT_ID_SBA_TABED)
{
std::vector< std::shared_ptr<OTableRow> >* pRows = static_cast< std::vector< std::shared_ptr<OTableRow> >* >(pUserObject);
if(pRows)
{
- (*rxOStm).WriteInt32( pRows->size() ); // first stream the size
+ rOStm.WriteInt32( pRows->size() ); // first stream the size
for (auto const& row : *pRows)
- WriteOTableRow(*rxOStm, *row);
+ WriteOTableRow(rOStm, *row);
return true;
}
}
diff --git a/dbaccess/source/ui/tabledesign/TableUndo.cxx b/dbaccess/source/ui/tabledesign/TableUndo.cxx
index 0edd32436918..7829a09d6959 100644
--- a/dbaccess/source/ui/tabledesign/TableUndo.cxx
+++ b/dbaccess/source/ui/tabledesign/TableUndo.cxx
@@ -25,12 +25,13 @@
#include <TableDesignView.hxx>
#include <FieldDescriptions.hxx>
#include <svx/svxids.hrc>
+#include <utility>
using namespace dbaui;
using namespace ::svt;
-OTableDesignUndoAct::OTableDesignUndoAct(OTableRowView* pOwner, const char* pCommentID)
+OTableDesignUndoAct::OTableDesignUndoAct(OTableRowView* pOwner, TranslateId pCommentID)
: OCommentUndoAction(pCommentID)
, m_pTabDgnCtrl(pOwner)
{
@@ -65,7 +66,7 @@ void OTableDesignUndoAct::Redo()
}
}
-OTableDesignCellUndoAct::OTableDesignCellUndoAct( OTableRowView* pOwner, tools::Long nRowID, sal_uInt16 nColumn ) :
+OTableDesignCellUndoAct::OTableDesignCellUndoAct( OTableRowView* pOwner, sal_Int32 nRowID, sal_uInt16 nColumn ) :
OTableDesignUndoAct( pOwner ,STR_TABED_UNDO_CELLMODIFIED)
,m_nCol( nColumn )
,m_nRow( nRowID )
@@ -106,7 +107,7 @@ void OTableDesignCellUndoAct::Redo()
OTableDesignUndoAct::Redo();
}
-OTableEditorUndoAct::OTableEditorUndoAct(OTableEditorCtrl* pOwner, const char* pCommentID)
+OTableEditorUndoAct::OTableEditorUndoAct(OTableEditorCtrl* pOwner, TranslateId pCommentID)
: OTableDesignUndoAct(pOwner, pCommentID)
, pTabEdCtrl(pOwner)
{
@@ -116,11 +117,11 @@ OTableEditorUndoAct::~OTableEditorUndoAct()
{
}
-OTableEditorTypeSelUndoAct::OTableEditorTypeSelUndoAct( OTableEditorCtrl* pOwner, tools::Long nRowID, sal_uInt16 nColumn, const TOTypeInfoSP& _pOldType )
+OTableEditorTypeSelUndoAct::OTableEditorTypeSelUndoAct( OTableEditorCtrl* pOwner, sal_Int32 nRowID, sal_uInt16 nColumn, TOTypeInfoSP _pOldType )
:OTableEditorUndoAct( pOwner ,STR_TABED_UNDO_TYPE_CHANGED)
,m_nCol( nColumn )
,m_nRow( nRowID )
- ,m_pOldType( _pOldType )
+ ,m_pOldType(std::move( _pOldType ))
{
}
@@ -178,7 +179,7 @@ OTableEditorDelUndoAct::~OTableEditorDelUndoAct()
void OTableEditorDelUndoAct::Undo()
{
// Insert the deleted line
- sal_uLong nPos;
+ sal_Int32 nPos;
std::shared_ptr<OTableRow> pNewOrigRow;
std::vector< std::shared_ptr<OTableRow> >* pOriginalRows = pTabEdCtrl->GetRowList();
@@ -213,9 +214,9 @@ void OTableEditorDelUndoAct::Redo()
OTableEditorInsUndoAct::OTableEditorInsUndoAct( OTableEditorCtrl* pOwner,
tools::Long nInsertPosition ,
- const std::vector< std::shared_ptr<OTableRow> >& _vInsertedRows)
+ std::vector< std::shared_ptr<OTableRow> >&& _vInsertedRows)
:OTableEditorUndoAct( pOwner,STR_TABED_UNDO_ROWINSERTED )
- ,m_vInsertedRows(_vInsertedRows)
+ ,m_vInsertedRows(std::move(_vInsertedRows))
,m_nInsPos( nInsertPosition )
{
}
@@ -240,7 +241,7 @@ void OTableEditorInsUndoAct::Undo()
void OTableEditorInsUndoAct::Redo()
{
// insert lines again
- tools::Long nInsertRow = m_nInsPos;
+ sal_Int32 nInsertRow = m_nInsPos;
std::shared_ptr<OTableRow> pRow;
std::vector< std::shared_ptr<OTableRow> >* pRowList = pTabEdCtrl->GetRowList();
for (auto const& insertedRow : m_vInsertedRows)
@@ -256,7 +257,7 @@ void OTableEditorInsUndoAct::Redo()
OTableEditorUndoAct::Redo();
}
-OTableEditorInsNewUndoAct::OTableEditorInsNewUndoAct( OTableEditorCtrl* pOwner, tools::Long nInsertPosition, tools::Long nInsertedRows ) :
+OTableEditorInsNewUndoAct::OTableEditorInsNewUndoAct( OTableEditorCtrl* pOwner, sal_Int32 nInsertPosition, sal_Int32 nInsertedRows ) :
OTableEditorUndoAct( pOwner ,STR_TABED_UNDO_NEWROWINSERTED)
,m_nInsPos( nInsertPosition )
,m_nInsRows( nInsertedRows )
diff --git a/dbaccess/source/ui/tabledesign/TableUndo.hxx b/dbaccess/source/ui/tabledesign/TableUndo.hxx
index f7f8d0f56d57..1863555f7556 100644
--- a/dbaccess/source/ui/tabledesign/TableUndo.hxx
+++ b/dbaccess/source/ui/tabledesign/TableUndo.hxx
@@ -39,7 +39,7 @@ namespace dbaui
virtual void Undo() override;
virtual void Redo() override;
public:
- OTableDesignUndoAct(OTableRowView* pOwner, const char* pCommentID);
+ OTableDesignUndoAct(OTableRowView* pOwner, TranslateId pCommentID);
virtual ~OTableDesignUndoAct() override;
};
@@ -50,35 +50,35 @@ namespace dbaui
VclPtr<OTableEditorCtrl> pTabEdCtrl;
public:
- OTableEditorUndoAct(OTableEditorCtrl* pOwner, const char* pCommentID);
+ OTableEditorUndoAct(OTableEditorCtrl* pOwner, TranslateId pCommentID);
virtual ~OTableEditorUndoAct() override;
};
class OTableDesignCellUndoAct final : public OTableDesignUndoAct
{
sal_uInt16 m_nCol;
- tools::Long m_nRow;
+ sal_Int32 m_nRow;
css::uno::Any m_sOldText;
css::uno::Any m_sNewText;
virtual void Undo() override;
virtual void Redo() override;
public:
- OTableDesignCellUndoAct( OTableRowView* pOwner, tools::Long nRowID, sal_uInt16 nColumn );
+ OTableDesignCellUndoAct( OTableRowView* pOwner, sal_Int32 nRowID, sal_uInt16 nColumn );
virtual ~OTableDesignCellUndoAct() override;
};
class OTableEditorTypeSelUndoAct final : public OTableEditorUndoAct
{
sal_uInt16 m_nCol;
- tools::Long m_nRow;
+ sal_Int32 m_nRow;
TOTypeInfoSP m_pOldType;
TOTypeInfoSP m_pNewType;
virtual void Undo() override;
virtual void Redo() override;
public:
- OTableEditorTypeSelUndoAct( OTableEditorCtrl* pOwner, tools::Long nRowID, sal_uInt16 nColumn, const TOTypeInfoSP& _pOldType );
+ OTableEditorTypeSelUndoAct( OTableEditorCtrl* pOwner, sal_Int32 nRowID, sal_uInt16 nColumn, TOTypeInfoSP _pOldType );
virtual ~OTableEditorTypeSelUndoAct() override;
};
@@ -103,19 +103,19 @@ namespace dbaui
public:
OTableEditorInsUndoAct( OTableEditorCtrl* pOwner,
tools::Long nInsertPosition,
- const std::vector< std::shared_ptr<OTableRow> >& _vInsertedRows);
+ std::vector< std::shared_ptr<OTableRow> >&& _vInsertedRows);
virtual ~OTableEditorInsUndoAct() override;
};
class OTableEditorInsNewUndoAct final : public OTableEditorUndoAct
{
- tools::Long m_nInsPos;
- tools::Long m_nInsRows;
+ sal_Int32 m_nInsPos;
+ sal_Int32 m_nInsRows;
virtual void Undo() override;
virtual void Redo() override;
public:
- OTableEditorInsNewUndoAct( OTableEditorCtrl* pOwner, tools::Long nInsertPosition, tools::Long nInsertedRows );
+ OTableEditorInsNewUndoAct( OTableEditorCtrl* pOwner, sal_Int32 nInsertPosition, sal_Int32 nInsertedRows );
virtual ~OTableEditorInsNewUndoAct() override;
};
diff --git a/dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx b/dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx
index a6ab43f483f7..51c3d2e9872e 100644
--- a/dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx
+++ b/dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx
@@ -21,7 +21,6 @@
#include <unoadmin.hxx>
#include <advancedsettingsdlg.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/proparrhlp.hxx>
#include <vcl/svapp.hxx>
@@ -29,7 +28,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
namespace {
@@ -74,12 +72,12 @@ namespace dbaui
OUString SAL_CALL OAdvancedSettingsDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.OAdvancedSettingsDialog";
+ return u"org.openoffice.comp.dbu.OAdvancedSettingsDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL OAdvancedSettingsDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.AdvancedDatabaseSettingsDialog" };
+ return { u"com.sun.star.sdb.AdvancedDatabaseSettingsDialog"_ustr };
}
Reference<XPropertySetInfo> SAL_CALL OAdvancedSettingsDialog::getPropertySetInfo()
diff --git a/dbaccess/source/ui/uno/ColumnControl.cxx b/dbaccess/source/ui/uno/ColumnControl.cxx
index 781fdd351d74..7e1fb6d8bdbc 100644
--- a/dbaccess/source/ui/uno/ColumnControl.cxx
+++ b/dbaccess/source/ui/uno/ColumnControl.cxx
@@ -19,9 +19,9 @@
#include "ColumnControl.hxx"
#include "ColumnPeer.hxx"
-#include <apitools.hxx>
+#include <strings.hxx>
+#include <vcl/window.hxx>
#include <com/sun/star/awt/PosSize.hpp>
-#include <comphelper/processfactory.hxx>
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_comp_dbu_OColumnControl_get_implementation(
@@ -35,11 +35,10 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
OColumnControl::OColumnControl(const Reference<XComponentContext>& rxContext)
- :UnoControl(), m_xContext(rxContext)
+ : m_xContext(rxContext)
{
}
@@ -47,15 +46,23 @@ OUString SAL_CALL OColumnControl::getImplementationName()
{
return SERVICE_CONTROLDEFAULT;
}
-IMPLEMENT_SERVICE_INFO_SUPPORTS(OColumnControl)
+sal_Bool SAL_CALL OColumnControl::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
css::uno::Sequence< OUString > SAL_CALL OColumnControl::getSupportedServiceNames()
{
- return { "com.sun.star.awt.UnoControl","com.sun.star.sdb.ColumnDescriptorControl" };
+ return { u"com.sun.star.awt.UnoControl"_ustr,u"com.sun.star.sdb.ColumnDescriptorControl"_ustr };
}
-OUString OColumnControl::GetComponentServiceName()
+OUString OColumnControl::GetComponentServiceName() const
{
- return "com.sun.star.sdb.ColumnDescriptorControl";
+ return u"com.sun.star.sdb.ColumnDescriptorControl"_ustr;
}
void SAL_CALL OColumnControl::createPeer(const Reference< XToolkit >& /*rToolkit*/, const Reference< XWindowPeer >& rParentPeer)
@@ -69,12 +76,12 @@ void SAL_CALL OColumnControl::createPeer(const Reference< XToolkit >& /*rToolkit
vcl::Window* pParentWin = nullptr;
if (rParentPeer.is())
{
- VCLXWindow* pParent = comphelper::getUnoTunnelImplementation<VCLXWindow>(rParentPeer);
+ VCLXWindow* pParent = dynamic_cast<VCLXWindow*>(rParentPeer.get());
if (pParent)
- pParentWin = pParent->GetWindow().get();
+ pParentWin = pParent->GetWindow();
}
- OColumnPeer* pPeer = new OColumnPeer( pParentWin, m_xContext );
+ rtl::Reference<OColumnPeer> pPeer = new OColumnPeer( pParentWin, m_xContext );
OSL_ENSURE(pPeer != nullptr, "FmXGridControl::createPeer : imp_CreatePeer didn't return a peer !");
setPeer( pPeer );
diff --git a/dbaccess/source/ui/uno/ColumnControl.hxx b/dbaccess/source/ui/uno/ColumnControl.hxx
index efea97979d65..63f06651284c 100644
--- a/dbaccess/source/ui/uno/ColumnControl.hxx
+++ b/dbaccess/source/ui/uno/ColumnControl.hxx
@@ -20,7 +20,6 @@
#include <connectivity/CommonTools.hxx>
#include <toolkit/controls/unocontrol.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
namespace com::sun::star::uno { class XComponentContext; }
@@ -34,7 +33,7 @@ namespace dbaui
explicit OColumnControl(const css::uno::Reference< css::uno::XComponentContext>& rxContext);
// UnoControl
- virtual OUString GetComponentServiceName() override;
+ virtual OUString GetComponentServiceName() const override;
// XServiceInfo
DECLARE_SERVICE_INFO();
diff --git a/dbaccess/source/ui/uno/ColumnModel.cxx b/dbaccess/source/ui/uno/ColumnModel.cxx
index cadc33075c9a..5ba3ce8a7e47 100644
--- a/dbaccess/source/ui/uno/ColumnModel.cxx
+++ b/dbaccess/source/ui/uno/ColumnModel.cxx
@@ -21,6 +21,7 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <stringconstants.hxx>
+#include <strings.hxx>
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
com_sun_star_comp_dbu_OColumnControlModel_get_implementation(
@@ -81,7 +82,7 @@ void OColumnControlModel::registerProperties()
registerProperty( PROPERTY_COLUMN, PROPERTY_ID_COLUMN, PropertyAttribute::TRANSIENT | PropertyAttribute::BOUND,
&m_xColumn, cppu::UnoType<decltype(m_xColumn)>::get() );
- registerMayBeVoidProperty( PROPERTY_TABSTOP, PROPERTY_ID_TABSTOP, PropertyAttribute::BOUND | PropertyAttribute::MAYBEVOID,
+ registerMayBeVoidProperty( PROPERTY_TABSTOP2, PROPERTY_ID_TABSTOP, PropertyAttribute::BOUND | PropertyAttribute::MAYBEVOID,
&m_aTabStop, ::cppu::UnoType<sal_Int16>::get() );
registerProperty( PROPERTY_DEFAULTCONTROL, PROPERTY_ID_DEFAULTCONTROL, PropertyAttribute::BOUND,
&m_sDefaultControl, cppu::UnoType<decltype(m_sDefaultControl)>::get() );
@@ -104,16 +105,45 @@ css::uno::Sequence<sal_Int8> OColumnControlModel::getImplementationId()
return css::uno::Sequence<sal_Int8>();
}
-IMPLEMENT_GETTYPES2(OColumnControlModel,OColumnControlModel_BASE,comphelper::OPropertyContainer)
-IMPLEMENT_PROPERTYCONTAINER_DEFAULTS(OColumnControlModel)
+css::uno::Sequence< css::uno::Type > OColumnControlModel::getTypes()
+{
+ return ::comphelper::concatSequences(
+ OColumnControlModel_BASE::getTypes( ),
+ OPropertyContainer::getTypes( )
+ );
+}
+css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL OColumnControlModel::getPropertySetInfo()
+{
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+}
+::cppu::IPropertyArrayHelper& OColumnControlModel::getInfoHelper()
+{
+ return *OColumnControlModel::getArrayHelper();
+}
+::cppu::IPropertyArrayHelper* OColumnControlModel::createArrayHelper( ) const
+{
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+}
+
OUString SAL_CALL OColumnControlModel::getImplementationName()
{
- return "com.sun.star.comp.dbu.OColumnControlModel";
+ return u"com.sun.star.comp.dbu.OColumnControlModel"_ustr;
}
-IMPLEMENT_SERVICE_INFO_SUPPORTS(OColumnControlModel)
+sal_Bool SAL_CALL OColumnControlModel::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
+ }
css::uno::Sequence< OUString > SAL_CALL OColumnControlModel::getSupportedServiceNames()
{
- return { "com.sun.star.awt.UnoControlModel","com.sun.star.sdb.ColumnDescriptorControlModel" };
+ return { u"com.sun.star.awt.UnoControlModel"_ustr,u"com.sun.star.sdb.ColumnDescriptorControlModel"_ustr };
}
IMPLEMENT_FORWARD_REFCOUNT( OColumnControlModel, OColumnControlModel_BASE )
Any SAL_CALL OColumnControlModel::queryInterface( const Type& _rType )
diff --git a/dbaccess/source/ui/uno/ColumnModel.hxx b/dbaccess/source/ui/uno/ColumnModel.hxx
index 2b492f61372d..ea31881ff09a 100644
--- a/dbaccess/source/ui/uno/ColumnModel.hxx
+++ b/dbaccess/source/ui/uno/ColumnModel.hxx
@@ -29,7 +29,6 @@
#include <comphelper/uno3.hxx>
#include <cppuhelper/compbase4.hxx>
#include <connectivity/CommonTools.hxx>
-#include <apitools.hxx>
namespace dbaui
{
@@ -41,8 +40,6 @@ typedef ::cppu::WeakAggComponentImplHelper4 < css::awt::XControlModel
, css::io::XPersistObject
> OColumnControlModel_BASE;
-class OColumnControlModel;
-
class OColumnControlModel : public ::comphelper::OMutexAndBroadcastHelper
,public ::comphelper::OPropertyContainer
,public ::comphelper::OPropertyArrayUsageHelper< OColumnControlModel >
@@ -85,7 +82,10 @@ public:
virtual void SAL_CALL read(const css::uno::Reference< css::io::XObjectInputStream>& _rxInStream) override;
// OPropertyArrayUsageHelper
- DECLARE_PROPERTYCONTAINER_DEFAULTS( );
+ virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override;
+
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone( ) override;
};
diff --git a/dbaccess/source/ui/uno/ColumnPeer.cxx b/dbaccess/source/ui/uno/ColumnPeer.cxx
index 48f5fbce5692..1e03cda49331 100644
--- a/dbaccess/source/ui/uno/ColumnPeer.cxx
+++ b/dbaccess/source/ui/uno/ColumnPeer.cxx
@@ -25,10 +25,8 @@
namespace dbaui
{
-using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
OColumnPeer::OColumnPeer(vcl::Window* _pParent,const Reference<XComponentContext>& _rxContext)
@@ -90,7 +88,7 @@ void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
m_pActFieldDescr = new OFieldDescription(_xColumn,true);
// search for type
bool bForce;
- TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(*rControl.getTypeInfo(),nType,sTypeName,"x",nPrecision,nScale,bAutoIncrement,bForce);
+ TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(*rControl.getTypeInfo(),nType,sTypeName,u"x"_ustr,nPrecision,nScale,bAutoIncrement,bForce);
if ( !pTypeInfo )
pTypeInfo = rControl.getDefaultTyp();
diff --git a/dbaccess/source/ui/uno/DBTypeWizDlg.cxx b/dbaccess/source/ui/uno/DBTypeWizDlg.cxx
index 3d07cd48d993..dc7f25c96db6 100644
--- a/dbaccess/source/ui/uno/DBTypeWizDlg.cxx
+++ b/dbaccess/source/ui/uno/DBTypeWizDlg.cxx
@@ -19,7 +19,6 @@
#include "DBTypeWizDlg.hxx"
#include <dbwiz.hxx>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
@@ -35,7 +34,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
ODBTypeWizDialog::ODBTypeWizDialog(const Reference< XComponentContext >& _rxORB)
@@ -50,12 +48,12 @@ Sequence<sal_Int8> SAL_CALL ODBTypeWizDialog::getImplementationId( )
OUString SAL_CALL ODBTypeWizDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.ODBTypeWizDialog";
+ return u"org.openoffice.comp.dbu.ODBTypeWizDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL ODBTypeWizDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DataSourceTypeChangeDialog" };
+ return { u"com.sun.star.sdb.DataSourceTypeChangeDialog"_ustr };
}
Reference<XPropertySetInfo> SAL_CALL ODBTypeWizDialog::getPropertySetInfo()
diff --git a/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx b/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
index 1408e4f0046f..4ed229a3b9d7 100644
--- a/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
+++ b/dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx
@@ -21,7 +21,6 @@
#include <dbwizsetup.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
@@ -37,19 +36,17 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::sdbc;
ODBTypeWizDialogSetup::ODBTypeWizDialogSetup(const Reference< XComponentContext >& _rxORB)
:ODatabaseAdministrationDialog(_rxORB)
,m_bOpenDatabase(true)
,m_bStartTableWizard(false)
{
- registerProperty("OpenDatabase", 3, PropertyAttribute::TRANSIENT,
+ registerProperty(u"OpenDatabase"_ustr, 3, PropertyAttribute::TRANSIENT,
&m_bOpenDatabase, cppu::UnoType<bool>::get());
- registerProperty("StartTableWizard", 4, PropertyAttribute::TRANSIENT,
+ registerProperty(u"StartTableWizard"_ustr, 4, PropertyAttribute::TRANSIENT,
&m_bStartTableWizard, cppu::UnoType<bool>::get());
}
@@ -60,12 +57,12 @@ Sequence<sal_Int8> SAL_CALL ODBTypeWizDialogSetup::getImplementationId( )
OUString SAL_CALL ODBTypeWizDialogSetup::getImplementationName()
{
- return "org.openoffice.comp.dbu.ODBTypeWizDialogSetup";
+ return u"org.openoffice.comp.dbu.ODBTypeWizDialogSetup"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL ODBTypeWizDialogSetup::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DatabaseWizardDialog" };
+ return { u"com.sun.star.sdb.DatabaseWizardDialog"_ustr };
}
Reference<XPropertySetInfo> SAL_CALL ODBTypeWizDialogSetup::getPropertySetInfo()
diff --git a/dbaccess/source/ui/uno/TableFilterDlg.cxx b/dbaccess/source/ui/uno/TableFilterDlg.cxx
index 7d3a5a61a274..740566aa3873 100644
--- a/dbaccess/source/ui/uno/TableFilterDlg.cxx
+++ b/dbaccess/source/ui/uno/TableFilterDlg.cxx
@@ -19,7 +19,6 @@
#include "TableFilterDlg.hxx"
#include <TablesSingleDlg.hxx>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
@@ -35,7 +34,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
OTableFilterDialog::OTableFilterDialog(const Reference< XComponentContext >& _rxORB)
@@ -50,12 +48,12 @@ Sequence<sal_Int8> SAL_CALL OTableFilterDialog::getImplementationId( )
OUString SAL_CALL OTableFilterDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.OTableFilterDialog";
+ return u"org.openoffice.comp.dbu.OTableFilterDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL OTableFilterDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.TableFilterDialog" };
+ return { u"com.sun.star.sdb.TableFilterDialog"_ustr };
}
Reference<XPropertySetInfo> SAL_CALL OTableFilterDialog::getPropertySetInfo()
diff --git a/dbaccess/source/ui/uno/UserSettingsDlg.cxx b/dbaccess/source/ui/uno/UserSettingsDlg.cxx
index 8000add8def5..a0467de67d68 100644
--- a/dbaccess/source/ui/uno/UserSettingsDlg.cxx
+++ b/dbaccess/source/ui/uno/UserSettingsDlg.cxx
@@ -19,7 +19,6 @@
#include "UserSettingsDlg.hxx"
#include <UserAdminDlg.hxx>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
@@ -35,7 +34,6 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
OUserSettingsDialog::OUserSettingsDialog(const Reference< XComponentContext >& _rxORB)
@@ -50,12 +48,12 @@ Sequence<sal_Int8> SAL_CALL OUserSettingsDialog::getImplementationId( )
OUString SAL_CALL OUserSettingsDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.OUserSettingsDialog";
+ return u"org.openoffice.comp.dbu.OUserSettingsDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL OUserSettingsDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.UserAdministrationDialog" };
+ return { u"com.sun.star.sdb.UserAdministrationDialog"_ustr };
}
Reference<XPropertySetInfo> SAL_CALL OUserSettingsDialog::getPropertySetInfo()
diff --git a/dbaccess/source/ui/uno/admindlg.cxx b/dbaccess/source/ui/uno/admindlg.cxx
index bd9de4b36aa7..1d396986c243 100644
--- a/dbaccess/source/ui/uno/admindlg.cxx
+++ b/dbaccess/source/ui/uno/admindlg.cxx
@@ -19,48 +19,45 @@
#include "admindlg.hxx"
#include <dbadmin.hxx>
-#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
using namespace dbaui;
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
org_openoffice_comp_dbu_ODatasourceAdministrationDialog_get_implementation(
- css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const& )
+ css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
return cppu::acquire(new ODataSourcePropertyDialog(context));
}
namespace dbaui
{
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::beans;
-
-ODataSourcePropertyDialog::ODataSourcePropertyDialog(const Reference< XComponentContext >& _rxORB)
- :ODatabaseAdministrationDialog(_rxORB)
+ODataSourcePropertyDialog::ODataSourcePropertyDialog(const Reference<XComponentContext>& _rxORB)
+ : ODatabaseAdministrationDialog(_rxORB)
{
}
-Sequence<sal_Int8> SAL_CALL ODataSourcePropertyDialog::getImplementationId( )
+Sequence<sal_Int8> SAL_CALL ODataSourcePropertyDialog::getImplementationId()
{
return css::uno::Sequence<sal_Int8>();
}
OUString SAL_CALL ODataSourcePropertyDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.ODatasourceAdministrationDialog";
+ return u"org.openoffice.comp.dbu.ODatasourceAdministrationDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL ODataSourcePropertyDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DatasourceAdministrationDialog" };
+ return { u"com.sun.star.sdb.DatasourceAdministrationDialog"_ustr };
}
-Reference<XPropertySetInfo> SAL_CALL ODataSourcePropertyDialog::getPropertySetInfo()
+Reference<XPropertySetInfo> SAL_CALL ODataSourcePropertyDialog::getPropertySetInfo()
{
- Reference<XPropertySetInfo> xInfo( createPropertySetInfo( getInfoHelper() ) );
+ Reference<XPropertySetInfo> xInfo(createPropertySetInfo(getInfoHelper()));
return xInfo;
}
@@ -69,24 +66,26 @@ Reference<XPropertySetInfo> SAL_CALL ODataSourcePropertyDialog::getPropertySetI
return *getArrayHelper();
}
-::cppu::IPropertyArrayHelper* ODataSourcePropertyDialog::createArrayHelper( ) const
+::cppu::IPropertyArrayHelper* ODataSourcePropertyDialog::createArrayHelper() const
{
- Sequence< Property > aProps;
+ Sequence<Property> aProps;
describeProperties(aProps);
return new ::cppu::OPropertyArrayHelper(aProps);
}
-std::unique_ptr<weld::DialogController> ODataSourcePropertyDialog::createDialog(const css::uno::Reference<css::awt::XWindow>& rParent)
+std::unique_ptr<weld::DialogController>
+ODataSourcePropertyDialog::createDialog(const css::uno::Reference<css::awt::XWindow>& rParent)
{
- std::unique_ptr<ODbAdminDialog> xDialog(new ODbAdminDialog(Application::GetFrameWeld(rParent), m_pDatasourceItems.get(), m_aContext));
+ std::unique_ptr<ODbAdminDialog> xDialog(new ODbAdminDialog(
+ Application::GetFrameWeld(rParent), m_pDatasourceItems.get(), m_aContext));
// the initial selection
- if ( m_aInitialSelection.hasValue() )
+ if (m_aInitialSelection.hasValue())
xDialog->selectDataSource(m_aInitialSelection);
return xDialog;
}
-} // namespace dbaui
+} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/uno/composerdialogs.cxx b/dbaccess/source/ui/uno/composerdialogs.cxx
index 433b588d69b2..7af65ef8ebbe 100644
--- a/dbaccess/source/ui/uno/composerdialogs.cxx
+++ b/dbaccess/source/ui/uno/composerdialogs.cxx
@@ -24,9 +24,9 @@
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <queryfilter.hxx>
#include <queryorder.hxx>
-#include <comphelper/processfactory.hxx>
+#include <strings.hxx>
#include <connectivity/dbtools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <vcl/svapp.hxx>
@@ -49,11 +49,10 @@ namespace dbaui
#define PROPERTY_ID_QUERYCOMPOSER 100
#define PROPERTY_ID_ROWSET 101
-#define PROPERTY_QUERYCOMPOSER "QueryComposer"
-#define PROPERTY_ROWSET "RowSet"
+constexpr OUStringLiteral PROPERTY_QUERYCOMPOSER = u"QueryComposer";
+constexpr OUStringLiteral PROPERTY_ROWSET = u"RowSet";
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbcx;
@@ -81,7 +80,21 @@ namespace dbaui
return css::uno::Sequence<sal_Int8>();
}
- IMPLEMENT_PROPERTYCONTAINER_DEFAULTS( ComposerDialog )
+ css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL ComposerDialog::getPropertySetInfo()
+ {
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+ }
+ ::cppu::IPropertyArrayHelper& ComposerDialog::getInfoHelper()
+ {
+ return *ComposerDialog::getArrayHelper();
+ }
+ ::cppu::IPropertyArrayHelper* ComposerDialog::createArrayHelper( ) const
+ {
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+ }
std::unique_ptr<weld::DialogController> ComposerDialog::createDialog(const css::uno::Reference<css::awt::XWindow>& rParent)
{
@@ -140,12 +153,20 @@ namespace dbaui
OUString SAL_CALL RowsetFilterDialog::getImplementationName()
{
- return "com.sun.star.uno.comp.sdb.RowsetFilterDialog";
+ return u"com.sun.star.uno.comp.sdb.RowsetFilterDialog"_ustr;
+ }
+ sal_Bool SAL_CALL RowsetFilterDialog::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(RowsetFilterDialog)
css::uno::Sequence< OUString > SAL_CALL RowsetFilterDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.FilterDialog" };
+ return { u"com.sun.star.sdb.FilterDialog"_ustr };
}
std::unique_ptr<weld::GenericDialogController> RowsetFilterDialog::createComposerDialog(weld::Window* _pParent, const Reference< XConnection >& _rxConnection, const Reference< XNameAccess >& _rxColumns )
@@ -164,9 +185,9 @@ namespace dbaui
aArguments[1] >>= xRowSet;
Reference<css::awt::XWindow> xParentWindow;
aArguments[2] >>= xParentWindow;
- setPropertyValue( "QueryComposer", makeAny( xQueryComposer ) );
- setPropertyValue( "RowSet", makeAny( xRowSet ) );
- setPropertyValue( "ParentWindow", makeAny( xParentWindow ) );
+ setPropertyValue( u"QueryComposer"_ustr, Any( xQueryComposer ) );
+ setPropertyValue( u"RowSet"_ustr, Any( xRowSet ) );
+ setPropertyValue( u"ParentWindow"_ustr, Any( xParentWindow ) );
}
else
ComposerDialog::initialize(aArguments);
@@ -188,12 +209,20 @@ namespace dbaui
OUString SAL_CALL RowsetOrderDialog::getImplementationName()
{
- return "com.sun.star.uno.comp.sdb.RowsetOrderDialog";
+ return u"com.sun.star.uno.comp.sdb.RowsetOrderDialog"_ustr;
+ }
+ sal_Bool SAL_CALL RowsetOrderDialog::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(RowsetOrderDialog)
css::uno::Sequence< OUString > SAL_CALL RowsetOrderDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.OrderDialog" };
+ return { u"com.sun.star.sdb.OrderDialog"_ustr };
}
std::unique_ptr<weld::GenericDialogController> RowsetOrderDialog::createComposerDialog(weld::Window* pParent, const Reference< XConnection >& rxConnection, const Reference< XNameAccess >& rxColumns)
@@ -209,13 +238,13 @@ namespace dbaui
aArguments[0] >>= xQueryComposer;
Reference<css::beans::XPropertySet> xRowSet;
aArguments[1] >>= xRowSet;
- setPropertyValue( "QueryComposer", makeAny( xQueryComposer ) );
- setPropertyValue( "RowSet", makeAny( xRowSet ) );
+ setPropertyValue( u"QueryComposer"_ustr, Any( xQueryComposer ) );
+ setPropertyValue( u"RowSet"_ustr, Any( xRowSet ) );
if (aArguments.getLength() == 3)
{
Reference<css::awt::XWindow> xParentWindow;
aArguments[2] >>= xParentWindow;
- setPropertyValue("ParentWindow", makeAny(xParentWindow));
+ setPropertyValue(u"ParentWindow"_ustr, Any(xParentWindow));
}
}
else
diff --git a/dbaccess/source/ui/uno/composerdialogs.hxx b/dbaccess/source/ui/uno/composerdialogs.hxx
index bc1468a034b1..4e71b1c64704 100644
--- a/dbaccess/source/ui/uno/composerdialogs.hxx
+++ b/dbaccess/source/ui/uno/composerdialogs.hxx
@@ -27,7 +27,6 @@
#include <comphelper/proparrhlp.hxx>
#include <connectivity/CommonTools.hxx>
#include <svtools/genericunodialog.hxx>
-#include <apitools.hxx>
namespace dbaui
{
@@ -55,7 +54,9 @@ namespace dbaui
public:
virtual css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId() override;
- DECLARE_PROPERTYCONTAINER_DEFAULTS( );
+ virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override;
protected:
// own overridables
diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx
index fedcb407f7d7..13a4f050731b 100644
--- a/dbaccess/source/ui/uno/copytablewizard.cxx
+++ b/dbaccess/source/ui/uno/copytablewizard.cxx
@@ -59,12 +59,13 @@
#include <connectivity/dbtools.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/implbase.hxx>
-#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/interfacecontainer3.hxx>
+#include <o3tl/safeint.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
#include <svtools/genericunodialog.hxx>
#include <toolkit/helper/vclunohelper.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <unotools/sharedunocomponent.hxx>
#include <vcl/svapp.hxx>
@@ -79,7 +80,6 @@ namespace dbaui
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::XComponentContext;
using ::com::sun::star::beans::XPropertySetInfo;
@@ -338,7 +338,7 @@ private:
// other
Reference< XInteractionHandler > m_xInteractionHandler;
- ::comphelper::OInterfaceContainerHelper2
+ ::comphelper::OInterfaceContainerHelper3<XCopyTableListener>
m_aCopyTableListeners;
sal_Int16 m_nOverrideExecutionResult;
};
@@ -370,16 +370,10 @@ CopyTableWizard::CopyTableWizard( const Reference< XComponentContext >& _rxORB )
:CopyTableWizard_Base( _rxORB )
,m_xContext( _rxORB )
,m_nOperation( CopyTableOperation::CopyDefinitionAndData )
- ,m_sDestinationTable()
- ,m_aPrimaryKeyName( false, "ID" )
+ ,m_aPrimaryKeyName( false, u"ID"_ustr )
,m_bUseHeaderLineAsColumnNames( true )
- ,m_xSourceConnection()
,m_nCommandType( CommandType::COMMAND )
- ,m_pSourceObject()
- ,m_xSourceResultSet()
- ,m_aSourceSelection()
,m_bSourceSelectionBookmarks( true )
- ,m_xDestConnection()
,m_aCopyTableListeners( m_aMutex )
,m_nOverrideExecutionResult( -1 )
{
@@ -404,12 +398,12 @@ CopyTableWizard::~CopyTableWizard()
OUString SAL_CALL CopyTableWizard::getImplementationName()
{
- return "org.openoffice.comp.dbu.CopyTableWizard";
+ return u"org.openoffice.comp.dbu.CopyTableWizard"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL CopyTableWizard::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.application.CopyTableWizard" };
+ return { u"com.sun.star.sdb.application.CopyTableWizard"_ustr };
}
Reference< XPropertySetInfo > SAL_CALL CopyTableWizard::getPropertySetInfo()
@@ -578,8 +572,7 @@ namespace
// see whether the document model can provide a handler
if ( xDocumentModel.is() )
{
- ::comphelper::NamedValueCollection aModelArgs( xDocumentModel->getArgs() );
- xHandler = aModelArgs.getOrDefault( "InteractionHandler", xHandler );
+ xHandler = ::comphelper::NamedValueCollection::getOrDefault( xDocumentModel->getArgs(), u"InteractionHandler", xHandler );
}
return xHandler;
@@ -623,7 +616,7 @@ Reference< XPropertySet > CopyTableWizard::impl_ensureDataAccessDescriptor_throw
{
Reference< XServiceInfo > xSI( xDescriptor, UNO_QUERY );
bIsValid = ( xSI.is()
- && xSI->supportsService( "com.sun.star.sdb.DataAccessDescriptor" ) );
+ && xSI->supportsService( u"com.sun.star.sdb.DataAccessDescriptor"_ustr ) );
}
// it must be able to provide a connection
@@ -666,7 +659,7 @@ void CopyTableWizard::impl_checkForUnsupportedSettings_throw( const Reference< X
OUString sUnsupportedSetting;
const OUString aSettings[] = {
- OUString(PROPERTY_FILTER), OUString(PROPERTY_ORDER), OUString(PROPERTY_HAVING_CLAUSE), OUString(PROPERTY_GROUP_BY)
+ PROPERTY_FILTER, PROPERTY_ORDER, PROPERTY_HAVING_CLAUSE, PROPERTY_GROUP_BY
};
for (const auto & aSetting : aSettings)
{
@@ -699,7 +692,7 @@ std::unique_ptr< ICopyTableSourceObject > CopyTableWizard::impl_extractSourceObj
if ( !xPSI->hasPropertyByName( PROPERTY_COMMAND )
|| !xPSI->hasPropertyByName( PROPERTY_COMMAND_TYPE )
)
- throw IllegalArgumentException("Expecting a table or query specification.",
+ throw IllegalArgumentException(u"Expecting a table or query specification."_ustr,
// TODO: resource
*const_cast< CopyTableWizard* >( this ), 1);
@@ -775,7 +768,7 @@ void CopyTableWizard::impl_extractSourceResultSet_throw( const Reference< XPrope
const bool bHasResultSet = m_xSourceResultSet.is();
const bool bHasSelection = m_aSourceSelection.hasElements();
if ( bHasSelection && !bHasResultSet )
- throw IllegalArgumentException("A result set is needed when specifying a selection to copy.",
+ throw IllegalArgumentException(u"A result set is needed when specifying a selection to copy."_ustr,
// TODO: resource
*this, 1);
@@ -805,84 +798,84 @@ SharedConnection CopyTableWizard::impl_extractConnection_throw( const Reference<
do
{
- Reference< XPropertySetInfo > xPSI( _rxDataSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW );
+ Reference< XPropertySetInfo > xPSI( _rxDataSourceDescriptor->getPropertySetInfo(), UNO_SET_THROW );
- // if there's an ActiveConnection, use it
- if ( xPSI->hasPropertyByName( PROPERTY_ACTIVE_CONNECTION ) )
- {
- Reference< XConnection > xPure;
- OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_ACTIVE_CONNECTION ) >>= xPure );
- xConnection.reset( xPure, SharedConnection::NoTakeOwnership );
- }
- if ( xConnection.is() )
- {
- xInteractionHandler = lcl_getInteractionHandler_throw( xConnection.getTyped(), m_xInteractionHandler );
- SAL_WARN_IF( !xInteractionHandler.is(), "dbaccess.ui", "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" );
- break;
- }
-
- // there could be a DataSourceName or a DatabaseLocation, describing the css.sdb.DataSource
- OUString sDataSource, sDatabaseLocation;
- if ( xPSI->hasPropertyByName( PROPERTY_DATASOURCENAME ) )
- OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATASOURCENAME ) >>= sDataSource );
- if ( xPSI->hasPropertyByName( PROPERTY_DATABASE_LOCATION ) )
- OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATABASE_LOCATION ) >>= sDatabaseLocation );
-
- // need a DatabaseContext for loading the data source
- Reference< XDatabaseContext > xDatabaseContext = DatabaseContext::create( m_xContext );
- Reference< XDataSource > xDataSource;
- if ( !sDataSource.isEmpty() )
- xDataSource.set( xDatabaseContext->getByName( sDataSource ), UNO_QUERY_THROW );
- if ( !xDataSource.is() && !sDatabaseLocation.isEmpty() )
- xDataSource.set( xDatabaseContext->getByName( sDatabaseLocation ), UNO_QUERY_THROW );
-
- if ( xDataSource.is() )
- {
- // first, try connecting with completion
- xInteractionHandler = lcl_getInteractionHandler_throw( xDataSource, m_xInteractionHandler );
- SAL_WARN_IF( !xInteractionHandler.is(), "dbaccess.ui", "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" );
- if ( xInteractionHandler.is() )
+ // if there's an ActiveConnection, use it
+ if ( xPSI->hasPropertyByName( PROPERTY_ACTIVE_CONNECTION ) )
{
- Reference< XCompletedConnection > xInteractiveConnection( xDataSource, UNO_QUERY );
- if ( xInteractiveConnection.is() )
- xConnection.reset( xInteractiveConnection->connectWithCompletion( xInteractionHandler ), SharedConnection::TakeOwnership );
+ Reference< XConnection > xPure;
+ OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_ACTIVE_CONNECTION ) >>= xPure );
+ xConnection.reset( xPure, SharedConnection::NoTakeOwnership );
}
+ if ( xConnection.is() )
+ {
+ xInteractionHandler = lcl_getInteractionHandler_throw( xConnection.getTyped(), m_xInteractionHandler );
+ SAL_WARN_IF( !xInteractionHandler.is(), "dbaccess.ui", "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" );
+ break;
+ }
+
+ // there could be a DataSourceName or a DatabaseLocation, describing the css.sdb.DataSource
+ OUString sDataSource, sDatabaseLocation;
+ if ( xPSI->hasPropertyByName( PROPERTY_DATASOURCENAME ) )
+ OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATASOURCENAME ) >>= sDataSource );
+ if ( xPSI->hasPropertyByName( PROPERTY_DATABASE_LOCATION ) )
+ OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_DATABASE_LOCATION ) >>= sDatabaseLocation );
+
+ // need a DatabaseContext for loading the data source
+ Reference< XDatabaseContext > xDatabaseContext = DatabaseContext::create( m_xContext );
+ Reference< XDataSource > xDataSource;
+ if ( !sDataSource.isEmpty() )
+ xDataSource.set( xDatabaseContext->getByName( sDataSource ), UNO_QUERY_THROW );
+ if ( !xDataSource.is() && !sDatabaseLocation.isEmpty() )
+ xDataSource.set( xDatabaseContext->getByName( sDatabaseLocation ), UNO_QUERY_THROW );
- // interactively connecting was not successful or possible -> connect without interaction
- if ( !xConnection.is() )
+ if ( xDataSource.is() )
{
- xConnection.reset( xDataSource->getConnection( OUString(), OUString() ), SharedConnection::TakeOwnership );
+ // first, try connecting with completion
+ xInteractionHandler = lcl_getInteractionHandler_throw( xDataSource, m_xInteractionHandler );
+ SAL_WARN_IF( !xInteractionHandler.is(), "dbaccess.ui", "CopyTableWizard::impl_extractConnection_throw: lcl_getInteractionHandler_throw returned nonsense!" );
+ if ( xInteractionHandler.is() )
+ {
+ Reference< XCompletedConnection > xInteractiveConnection( xDataSource, UNO_QUERY );
+ if ( xInteractiveConnection.is() )
+ xConnection.reset( xInteractiveConnection->connectWithCompletion( xInteractionHandler ), SharedConnection::TakeOwnership );
+ }
+
+ // interactively connecting was not successful or possible -> connect without interaction
+ if ( !xConnection.is() )
+ {
+ xConnection.reset( xDataSource->getConnection( OUString(), OUString() ), SharedConnection::TakeOwnership );
+ }
}
- }
- if ( xConnection.is() )
- break;
+ if ( xConnection.is() )
+ break;
- // finally, there could be a ConnectionResource/ConnectionInfo
- OUString sConnectionResource;
- Sequence< PropertyValue > aConnectionInfo;
- if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_RESOURCE ) )
- OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_RESOURCE ) >>= sConnectionResource );
- if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_INFO ) )
- OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_INFO ) >>= aConnectionInfo );
-
- Reference< XDriverManager > xDriverManager;
- try {
- xDriverManager.set( ConnectionPool::create( m_xContext ), UNO_QUERY_THROW );
- } catch( const Exception& ) { }
- if ( !xDriverManager.is() )
- // no connection pool installed
- xDriverManager.set( DriverManager::create( m_xContext ), UNO_QUERY_THROW );
-
- if ( aConnectionInfo.hasElements() )
- xConnection.set( xDriverManager->getConnectionWithInfo( sConnectionResource, aConnectionInfo ), UNO_SET_THROW );
- else
- xConnection.set( xDriverManager->getConnection( sConnectionResource ), UNO_SET_THROW );
+ // finally, there could be a ConnectionResource/ConnectionInfo
+ OUString sConnectionResource;
+ Sequence< PropertyValue > aConnectionInfo;
+ if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_RESOURCE ) )
+ OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_RESOURCE ) >>= sConnectionResource );
+ if ( xPSI->hasPropertyByName( PROPERTY_CONNECTION_INFO ) )
+ OSL_VERIFY( _rxDataSourceDescriptor->getPropertyValue( PROPERTY_CONNECTION_INFO ) >>= aConnectionInfo );
+
+ Reference< XDriverManager > xDriverManager;
+ try {
+ xDriverManager.set( ConnectionPool::create( m_xContext ), UNO_QUERY_THROW );
+ } catch( const Exception& ) { }
+ if ( !xDriverManager.is() )
+ // no connection pool installed
+ xDriverManager.set( DriverManager::create( m_xContext ), UNO_QUERY_THROW );
+
+ if ( aConnectionInfo.hasElements() )
+ xConnection.set( xDriverManager->getConnectionWithInfo( sConnectionResource, aConnectionInfo ), UNO_SET_THROW );
+ else
+ xConnection.set( xDriverManager->getConnection( sConnectionResource ), UNO_SET_THROW );
}
while ( false );
if ( xInteractionHandler != m_xInteractionHandler )
- _out_rxDocInteractionHandler = xInteractionHandler;
+ _out_rxDocInteractionHandler = std::move(xInteractionHandler);
return xConnection;
}
@@ -891,7 +884,7 @@ SharedConnection CopyTableWizard::impl_extractConnection_throw( const Reference<
{
OSL_PRECOND( m_xSourceConnection.is(), "CopyTableWizard::impl_createSourceStatement_throw: illegal call!" );
if ( !m_xSourceConnection.is() )
- throw RuntimeException( "CopyTableWizard::impl_createSourceStatement_throw: illegal call!", *const_cast< CopyTableWizard* >( this ));
+ throw RuntimeException( u"CopyTableWizard::impl_createSourceStatement_throw: illegal call!"_ustr, *const_cast< CopyTableWizard* >( this ));
::utl::SharedUNOComponent< XPreparedStatement > xStatement;
switch ( m_nCommandType )
@@ -937,7 +930,7 @@ SharedConnection CopyTableWizard::impl_extractConnection_throw( const Reference<
default:
// this should not have survived initialization phase
- throw RuntimeException("No case matched, this should not have survived the initialization phase", *const_cast< CopyTableWizard* >( this ));
+ throw RuntimeException(u"No case matched, this should not have survived the initialization phase"_ustr, *const_cast< CopyTableWizard* >( this ));
}
return xStatement;
@@ -948,40 +941,39 @@ namespace
class ValueTransfer
{
public:
- ValueTransfer( const sal_Int32& _rSourcePos, const sal_Int32& _rDestPos, const std::vector< sal_Int32 >& _rColTypes,
+ ValueTransfer( std::vector< sal_Int32 > _rColTypes,
const Reference< XRow >& _rxSource, const Reference< XParameters >& _rxDest )
- :m_rSourcePos( _rSourcePos )
- ,m_rDestPos( _rDestPos )
- ,m_rColTypes( _rColTypes )
+ :m_ColTypes( std::move(_rColTypes) )
,m_xSource( _rxSource )
,m_xDest( _rxDest )
{
}
template< typename VALUE_TYPE >
- void transferValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ),
+ void transferValue( sal_Int32 _nSourcePos, sal_Int32 _nDestPos,
+ VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ),
void (SAL_CALL XParameters::*_pSetter)( sal_Int32, VALUE_TYPE ) )
{
- VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) );
+ VALUE_TYPE value( (m_xSource.get()->*_pGetter)( _nSourcePos ) );
if ( m_xSource->wasNull() )
- m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] );
+ m_xDest->setNull( _nDestPos, m_ColTypes[ _nSourcePos ] );
else
- (m_xDest.get()->*_pSetter)( m_rDestPos, value );
+ (m_xDest.get()->*_pSetter)( _nDestPos, value );
}
- template< typename VALUE_TYPE >
- void transferComplexValue( VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ),
+
+ template< typename VALUE_TYPE >
+ void transferComplexValue( sal_Int32 _nSourcePos, sal_Int32 _nDestPos,
+ VALUE_TYPE ( SAL_CALL XRow::*_pGetter )( sal_Int32 ),
void (SAL_CALL XParameters::*_pSetter)( sal_Int32, const VALUE_TYPE& ) )
{
- const VALUE_TYPE value( (m_xSource.get()->*_pGetter)( m_rSourcePos ) );
+ const VALUE_TYPE value( (m_xSource.get()->*_pGetter)( _nSourcePos ) );
if ( m_xSource->wasNull() )
- m_xDest->setNull( m_rDestPos, m_rColTypes[ m_rSourcePos ] );
+ m_xDest->setNull( _nDestPos, m_ColTypes[ _nSourcePos ] );
else
- (m_xDest.get()->*_pSetter)( m_rDestPos, value );
+ (m_xDest.get()->*_pSetter)( _nDestPos, value );
}
private:
- const sal_Int32& m_rSourcePos;
- const sal_Int32& m_rDestPos;
- const std::vector< sal_Int32 > m_rColTypes;
+ const std::vector< sal_Int32 > m_ColTypes;
const Reference< XRow > m_xSource;
const Reference< XParameters > m_xDest;
};
@@ -989,13 +981,12 @@ namespace
bool CopyTableWizard::impl_processCopyError_nothrow( const CopyTableRowEvent& _rEvent )
{
- Reference< XCopyTableListener > xListener;
try
{
- ::comphelper::OInterfaceIteratorHelper2 aIter( m_aCopyTableListeners );
+ ::comphelper::OInterfaceIteratorHelper3 aIter( m_aCopyTableListeners );
while ( aIter.hasMoreElements() )
{
- xListener.set( aIter.next(), UNO_QUERY_THROW );
+ Reference< XCopyTableListener > xListener( aIter.next() );
sal_Int16 nListenerChoice = xListener->copyRowError( _rEvent );
switch ( nListenerChoice )
{
@@ -1020,35 +1011,31 @@ bool CopyTableWizard::impl_processCopyError_nothrow( const CopyTableRowEvent& _r
try
{
- SQLContext aError;
- aError.Context = *this;
- aError.Message = DBA_RES(STR_ERROR_OCCURRED_WHILE_COPYING);
-
+ css::uno::Any next;
::dbtools::SQLExceptionInfo aInfo( _rEvent.Error );
if ( aInfo.isValid() )
- aError.NextException = _rEvent.Error;
+ next = _rEvent.Error;
else
{
// a non-SQL exception happened
Exception aException;
OSL_VERIFY( _rEvent.Error >>= aException );
- SQLContext aContext;
- aContext.Context = aException.Context;
- aContext.Message = aException.Message;
- aContext.Details = _rEvent.Error.getValueTypeName();
- aError.NextException <<= aContext;
+ SQLContext aContext(aException.Message, aException.Context, {}, 0, {},
+ _rEvent.Error.getValueTypeName());
+ next <<= aContext;
}
+ SQLContext aError(DBA_RES(STR_ERROR_OCCURRED_WHILE_COPYING), *this, {}, 0, next, {});
- ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( makeAny( aError ) ) );
+ ::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( Any( aError ) ) );
::rtl::Reference< ::comphelper::OInteractionApprove > xYes = new ::comphelper::OInteractionApprove;
- xRequest->addContinuation( xYes.get() );
+ xRequest->addContinuation( xYes );
xRequest->addContinuation( new ::comphelper::OInteractionDisapprove );
OSL_ENSURE( m_xInteractionHandler.is(),
"CopyTableWizard::impl_processCopyError_nothrow: we always should have an interaction handler!" );
if ( m_xInteractionHandler.is() )
- m_xInteractionHandler->handle( xRequest.get() );
+ m_xInteractionHandler->handle( xRequest );
if ( xYes->wasSelected() )
// continue copying
@@ -1068,12 +1055,13 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
{
OSL_PRECOND( m_xDestConnection.is(), "CopyTableWizard::impl_copyRows_throw: illegal call!" );
if ( !m_xDestConnection.is() )
- throw RuntimeException( "m_xDestConnection is set to null, CopyTableWizard::impl_copyRows_throw: illegal call!", *this );
+ throw RuntimeException( u"m_xDestConnection is set to null, CopyTableWizard::impl_copyRows_throw: illegal call!"_ustr, *this );
Reference< XDatabaseMetaData > xDestMetaData( m_xDestConnection->getMetaData(), UNO_SET_THROW );
const OCopyTableWizard& rWizard = impl_getDialog_throw();
ODatabaseExport::TPositions aColumnPositions = rWizard.GetColumnPositions();
+ const bool bShouldCreatePrimaryKey = rWizard.shouldCreatePrimaryKey();
Reference< XRow > xRow ( _rxSourceResultSet, UNO_QUERY_THROW );
Reference< XRowLocate > xRowLocate ( _rxSourceResultSet, UNO_QUERY_THROW );
@@ -1098,12 +1086,12 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
}
// now create, fill and execute the prepared statement
- Reference< XPreparedStatement > xStatement( ODatabaseExport::createPreparedStatment( xDestMetaData, _rxDestTable, aColumnPositions ), UNO_SET_THROW );
+ Reference< XPreparedStatement > xStatement( ODatabaseExport::createPreparedStatement( xDestMetaData, _rxDestTable, aColumnPositions ), UNO_SET_THROW );
Reference< XParameters > xStatementParams( xStatement, UNO_QUERY_THROW );
const bool bSelectedRecordsOnly = m_aSourceSelection.hasElements();
- const Any* pSelectedRow = m_aSourceSelection.getConstArray();
- const Any* pSelEnd = pSelectedRow + m_aSourceSelection.getLength();
+ const Any* pSelectedRow = m_aSourceSelection.begin();
+ const Any* pSelEnd = m_aSourceSelection.end();
sal_Int32 nRowCount = 0;
bool bContinue = false;
@@ -1145,16 +1133,16 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
aCopyEvent.Error.clear();
try
{
+ bool bInsertedPrimaryKey = false;
// notify listeners
m_aCopyTableListeners.notifyEach( &XCopyTableListener::copyingRow, aCopyEvent );
- sal_Int32 nDestColumn( 0 );
sal_Int32 nSourceColumn( 1 );
- ValueTransfer aTransfer( nSourceColumn, nDestColumn, aSourceColTypes, xRow, xStatementParams );
+ ValueTransfer aTransfer( aSourceColTypes, xRow, xStatementParams );
for ( auto const& rColumnPos : aColumnPositions )
{
- nDestColumn = rColumnPos.first;
+ sal_Int32 nDestColumn = rColumnPos.first;
if ( nDestColumn == COLUMN_POSITION_NOT_FOUND )
{
++nSourceColumn;
@@ -1162,9 +1150,17 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
continue;
}
- if ( ( nSourceColumn < 1 ) || ( nSourceColumn >= static_cast<sal_Int32>(aSourceColTypes.size()) ) )
+ if ( bShouldCreatePrimaryKey && !bInsertedPrimaryKey )
+ {
+ xStatementParams->setInt( 1, nRowCount );
+ ++nSourceColumn;
+ bInsertedPrimaryKey = true;
+ continue;
+ }
+
+ if ( ( nSourceColumn < 1 ) || ( o3tl::make_unsigned(nSourceColumn) >= aSourceColTypes.size() ) )
{ // ( we have to check here against 1 because the parameters are 1 based)
- ::dbtools::throwSQLException("Internal error: invalid column type index.",
+ ::dbtools::throwSQLException(u"Internal error: invalid column type index."_ustr,
::dbtools::StandardSQLState::INVALID_DESCRIPTOR_INDEX, *this);
}
@@ -1172,7 +1168,7 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
{
case DataType::DOUBLE:
case DataType::REAL:
- aTransfer.transferValue( &XRow::getDouble, &XParameters::setDouble );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getDouble, &XParameters::setDouble );
break;
case DataType::CHAR:
@@ -1180,64 +1176,64 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
case DataType::LONGVARCHAR:
case DataType::DECIMAL:
case DataType::NUMERIC:
- aTransfer.transferComplexValue( &XRow::getString, &XParameters::setString );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getString, &XParameters::setString );
break;
case DataType::BIGINT:
- aTransfer.transferValue( &XRow::getLong, &XParameters::setLong );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getLong, &XParameters::setLong );
break;
case DataType::FLOAT:
- aTransfer.transferValue( &XRow::getFloat, &XParameters::setFloat );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getFloat, &XParameters::setFloat );
break;
case DataType::LONGVARBINARY:
case DataType::BINARY:
case DataType::VARBINARY:
- aTransfer.transferComplexValue( &XRow::getBytes, &XParameters::setBytes );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getBytes, &XParameters::setBytes );
break;
case DataType::DATE:
- aTransfer.transferComplexValue( &XRow::getDate, &XParameters::setDate );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getDate, &XParameters::setDate );
break;
case DataType::TIME:
- aTransfer.transferComplexValue( &XRow::getTime, &XParameters::setTime );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getTime, &XParameters::setTime );
break;
case DataType::TIMESTAMP:
- aTransfer.transferComplexValue( &XRow::getTimestamp, &XParameters::setTimestamp );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getTimestamp, &XParameters::setTimestamp );
break;
case DataType::BIT:
if ( aSourcePrec[nSourceColumn] > 1 )
{
- aTransfer.transferComplexValue( &XRow::getBytes, &XParameters::setBytes );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getBytes, &XParameters::setBytes );
break;
}
[[fallthrough]];
case DataType::BOOLEAN:
- aTransfer.transferValue( &XRow::getBoolean, &XParameters::setBoolean );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getBoolean, &XParameters::setBoolean );
break;
case DataType::TINYINT:
- aTransfer.transferValue( &XRow::getByte, &XParameters::setByte );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getByte, &XParameters::setByte );
break;
case DataType::SMALLINT:
- aTransfer.transferValue( &XRow::getShort, &XParameters::setShort );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getShort, &XParameters::setShort );
break;
case DataType::INTEGER:
- aTransfer.transferValue( &XRow::getInt, &XParameters::setInt );
+ aTransfer.transferValue( nSourceColumn, nDestColumn, &XRow::getInt, &XParameters::setInt );
break;
case DataType::BLOB:
- aTransfer.transferComplexValue( &XRow::getBlob, &XParameters::setBlob );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getBlob, &XParameters::setBlob );
break;
case DataType::CLOB:
- aTransfer.transferComplexValue( &XRow::getClob, &XParameters::setClob );
+ aTransfer.transferComplexValue( nSourceColumn, nDestColumn, &XRow::getClob, &XParameters::setClob );
break;
default:
@@ -1263,6 +1259,7 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
}
catch( const Exception& )
{
+ TOOLS_WARN_EXCEPTION("dbaccess", "");
aCopyEvent.Error = ::cppu::getCaughtException();
}
@@ -1354,6 +1351,53 @@ void CopyTableWizard::impl_doCopy_nothrow()
if ( xSourceResultSet.is() )
impl_copyRows_throw( xSourceResultSet, xTable );
+
+ // tdf#119962
+ const Reference< XDatabaseMetaData > xDestMetaData( m_xDestConnection->getMetaData(), UNO_SET_THROW );
+ OUString sDatabaseDest = xDestMetaData->getDatabaseProductName().toAsciiLowerCase();
+ // If we created a new primary key, then it won't necessarily be an IDENTITY column
+ const bool bShouldCreatePrimaryKey = rWizard.shouldCreatePrimaryKey();
+ if ( !bShouldCreatePrimaryKey && (sDatabaseDest.indexOf("firebird") != -1) )
+ {
+ const OUString sComposedTableName = ::dbtools::composeTableName( xDestMetaData, xTable, ::dbtools::EComposeRule::InDataManipulation, true );
+
+ OUString aSchema,aTable;
+ xTable->getPropertyValue(u"SchemaName"_ustr) >>= aSchema;
+ xTable->getPropertyValue(u"Name"_ustr) >>= aTable;
+ Any aCatalog = xTable->getPropertyValue(u"CatalogName"_ustr);
+
+ const Reference< XResultSet > xResultPKCL(xDestMetaData->getPrimaryKeys(aCatalog,aSchema,aTable));
+ Reference< XRow > xRowPKCL(xResultPKCL, UNO_QUERY_THROW);
+ OUString sPKCL;
+ if ( xRowPKCL.is() )
+ {
+ if (xResultPKCL->next())
+ {
+ sPKCL = xRowPKCL->getString(4);
+ }
+ }
+
+ if (!sPKCL.isEmpty())
+ {
+ OUString strSql = "SELECT MAX(\"" + sPKCL + "\") FROM " + sComposedTableName;
+
+ Reference< XResultSet > xResultMAXNUM(m_xDestConnection->createStatement()->executeQuery(strSql));
+ Reference< XRow > xRow(xResultMAXNUM, UNO_QUERY_THROW);
+
+ sal_Int64 maxVal = -1L;
+ if (xResultMAXNUM->next())
+ {
+ maxVal = xRow->getLong(1);
+ }
+
+ if (maxVal > 0L)
+ {
+ strSql = "ALTER TABLE " + sComposedTableName + " ALTER \"" + sPKCL + "\" RESTART WITH " + OUString::number(maxVal + 1);
+
+ m_xDestConnection->createStatement()->execute(strSql);
+ }
+ }
+ }
}
break;
@@ -1369,6 +1413,7 @@ void CopyTableWizard::impl_doCopy_nothrow()
catch( const Exception& )
{
aError = ::cppu::getCaughtException();
+ SAL_WARN("dbaccess", exceptionToString(aError));
// silence the error of the user cancelling the parameter's dialog
SQLException aSQLError;
@@ -1384,7 +1429,7 @@ void CopyTableWizard::impl_doCopy_nothrow()
try
{
::rtl::Reference< ::comphelper::OInteractionRequest > xRequest( new ::comphelper::OInteractionRequest( aError ) );
- m_xInteractionHandler->handle( xRequest.get() );
+ m_xInteractionHandler->handle( xRequest );
}
catch( const Exception& )
{
@@ -1407,11 +1452,11 @@ OUString CopyTableWizard::impl_getServerSideCopyStatement_throw(const Reference<
{
if ( !sColumns.isEmpty() )
sColumns.append(",");
- sColumns.append(sQuote).append(aDestColumnNames[rColumnPositionPair.second - 1]).append(sQuote);
+ sColumns.append(sQuote + aDestColumnNames[rColumnPositionPair.second - 1] + sQuote);
}
}
const OUString sComposedTableName = ::dbtools::composeTableName( xDestMetaData, _xTable, ::dbtools::EComposeRule::InDataManipulation, true );
- OUString sSql("INSERT INTO " + sComposedTableName + " ( " + sColumns.makeStringAndClear() + " ) " + m_pSourceObject->getSelectStatement());
+ OUString sSql("INSERT INTO " + sComposedTableName + " ( " + sColumns + " ) " + m_pSourceObject->getSelectStatement());
return sSql;
}
@@ -1454,12 +1499,12 @@ void SAL_CALL CopyTableWizard::initialize( const Sequence< Any >& _rArguments )
impl_ensureDataAccessDescriptor_throw( _rArguments, 1, m_xDestConnection, xDestDocHandler );
if ( xDestDocHandler.is() && !m_xInteractionHandler.is() )
- m_xInteractionHandler = xDestDocHandler;
+ m_xInteractionHandler = std::move(xDestDocHandler);
Reference< XPropertySet > xInteractionHandler(m_xInteractionHandler, UNO_QUERY);
if (xInteractionHandler.is())
{
- Any aParentWindow(xInteractionHandler->getPropertyValue("ParentWindow"));
+ Any aParentWindow(xInteractionHandler->getPropertyValue(u"ParentWindow"_ustr));
aParentWindow >>= m_xParent;
}
}
diff --git a/dbaccess/source/ui/uno/dbinteraction.cxx b/dbaccess/source/ui/uno/dbinteraction.cxx
index b33c068483e7..f06e03572cc9 100644
--- a/dbaccess/source/ui/uno/dbinteraction.cxx
+++ b/dbaccess/source/ui/uno/dbinteraction.cxx
@@ -18,8 +18,7 @@
*/
#include "dbinteraction.hxx"
-#include <apitools.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <osl/diagnose.h>
#include <connectivity/dbexception.hxx>
#include <sqlmessage.hxx>
@@ -34,7 +33,6 @@
#include <paramdialog.hxx>
#include <vcl/svapp.hxx>
#include <CollectionView.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/sequenceashashmap.hxx>
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
@@ -56,9 +54,7 @@ namespace dbaui
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::sdb;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::task;
- using namespace ::com::sun::star::beans;
using namespace ::dbtools;
// BasicInteractionHandler
@@ -73,7 +69,7 @@ namespace dbaui
void SAL_CALL BasicInteractionHandler::initialize(const Sequence<Any>& rArgs)
{
comphelper::SequenceAsHashMap aMap(rArgs);
- m_xParentWindow.set(aMap.getValue("Parent"), UNO_QUERY);
+ m_xParentWindow.set(aMap.getValue(u"Parent"_ustr), UNO_QUERY);
}
sal_Bool SAL_CALL BasicInteractionHandler::handleInteractionRequest( const Reference< XInteractionRequest >& i_rRequest )
@@ -311,33 +307,32 @@ namespace dbaui
sal_Int32 BasicInteractionHandler::getContinuation(Continuation _eCont, const Sequence< Reference< XInteractionContinuation > >& _rContinuations)
{
- const Reference< XInteractionContinuation >* pContinuations = _rContinuations.getConstArray();
- for (sal_Int32 i=0; i<_rContinuations.getLength(); ++i, ++pContinuations)
+ for (sal_Int32 i = 0; i < _rContinuations.getLength(); ++i)
{
switch (_eCont)
{
case APPROVE:
- if (Reference< XInteractionApprove >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionApprove>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
case DISAPPROVE:
- if (Reference< XInteractionDisapprove >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionDisapprove>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
case RETRY:
- if (Reference< XInteractionRetry >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionRetry>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
case ABORT:
- if (Reference< XInteractionAbort >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionAbort>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
case SUPPLY_PARAMETERS:
- if (Reference< XInteractionSupplyParameters >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionSupplyParameters>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
case SUPPLY_DOCUMENTSAVE:
- if (Reference< XInteractionDocumentSave >(*pContinuations, UNO_QUERY).is())
+ if (Reference<XInteractionDocumentSave>(_rContinuations[i], UNO_QUERY).is())
return i;
break;
}
@@ -349,23 +344,39 @@ namespace dbaui
// SQLExceptionInteractionHandler
OUString SAL_CALL SQLExceptionInteractionHandler::getImplementationName()
{
- return "com.sun.star.comp.dbaccess.DatabaseInteractionHandler";
+ return u"com.sun.star.comp.dbaccess.DatabaseInteractionHandler"_ustr;
+ }
+ sal_Bool SAL_CALL SQLExceptionInteractionHandler::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(SQLExceptionInteractionHandler)
css::uno::Sequence< OUString > SAL_CALL SQLExceptionInteractionHandler::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.DatabaseInteractionHandler" };
+ return { u"com.sun.star.sdb.DatabaseInteractionHandler"_ustr };
}
// LegacyInteractionHandler
OUString SAL_CALL LegacyInteractionHandler::getImplementationName()
{
- return "com.sun.star.comp.dbaccess.LegacyInteractionHandler";
+ return u"com.sun.star.comp.dbaccess.LegacyInteractionHandler"_ustr;
+ }
+ sal_Bool SAL_CALL LegacyInteractionHandler::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(LegacyInteractionHandler)
css::uno::Sequence< OUString > SAL_CALL LegacyInteractionHandler::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.InteractionHandler" };
+ return { u"com.sun.star.sdb.InteractionHandler"_ustr };
}
} // namespace dbaui
diff --git a/dbaccess/source/ui/uno/dbinteraction.hxx b/dbaccess/source/ui/uno/dbinteraction.hxx
index 12037bf4522f..fdb0dbd2c946 100644
--- a/dbaccess/source/ui/uno/dbinteraction.hxx
+++ b/dbaccess/source/ui/uno/dbinteraction.hxx
@@ -26,7 +26,6 @@
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/task/XInteractionHandler2.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/sdb/ParametersRequest.hpp>
#include <com/sun/star/sdb/DocumentSaveRequest.hpp>
diff --git a/dbaccess/source/ui/uno/textconnectionsettings_uno.cxx b/dbaccess/source/ui/uno/textconnectionsettings_uno.cxx
index a846d44b71dd..dbb56c9b6d95 100644
--- a/dbaccess/source/ui/uno/textconnectionsettings_uno.cxx
+++ b/dbaccess/source/ui/uno/textconnectionsettings_uno.cxx
@@ -18,7 +18,6 @@
*/
#include <textconnectionsettings.hxx>
-#include <apitools.hxx>
#include <unoadmin.hxx>
#include <stringconstants.hxx>
#include <propertystorage.hxx>
@@ -27,7 +26,6 @@
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/sdb/XTextConnectionSettings.hpp>
-#include <comphelper/processfactory.hxx>
#include <comphelper/proparrhlp.hxx>
#include <connectivity/CommonTools.hxx>
#include <toolkit/helper/vclunohelper.hxx>
@@ -65,7 +63,6 @@ namespace dbaui
class OTextConnectionSettingsDialog
:public OTextConnectionSettingsDialog_BASE
,public OTextConnectionSettingsDialog_PBASE
- ,public ::cppu::WeakImplHelper< css::sdb::XTextConnectionSettings >
{
PropertyValues m_aPropertyValues;
@@ -75,7 +72,10 @@ namespace dbaui
virtual css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId() override;
DECLARE_SERVICE_INFO();
- DECLARE_PROPERTYCONTAINER_DEFAULTS( );
+ virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override;
+
virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const Any& rValue ) override;
virtual sal_Bool SAL_CALL convertFastPropertyValue( Any& rConvertedValue, Any& rOldValue, sal_Int32 nHandle, const Any& rValue) override;
@@ -122,12 +122,20 @@ namespace dbaui
OUString SAL_CALL OTextConnectionSettingsDialog::getImplementationName()
{
- return "com.sun.star.comp.dbaccess.OTextConnectionSettingsDialog";
+ return u"com.sun.star.comp.dbaccess.OTextConnectionSettingsDialog"_ustr;
+ }
+ sal_Bool SAL_CALL OTextConnectionSettingsDialog::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(OTextConnectionSettingsDialog)
css::uno::Sequence< OUString > SAL_CALL OTextConnectionSettingsDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.TextConnectionSettings" };
+ return { u"com.sun.star.sdb.TextConnectionSettings"_ustr };
}
Reference< XPropertySetInfo > SAL_CALL OTextConnectionSettingsDialog::getPropertySetInfo()
@@ -150,44 +158,45 @@ namespace dbaui
// but whose values are stored in our item set
sal_Int32 nProp = aProps.getLength();
aProps.realloc( nProp + 6 );
+ auto pProps = aProps.getArray();
- aProps[ nProp++ ] = Property(
- "HeaderLine",
+ pProps[ nProp++ ] = Property(
+ u"HeaderLine"_ustr,
PROPERTY_ID_HEADER_LINE,
::cppu::UnoType< sal_Bool >::get(),
PropertyAttribute::TRANSIENT
);
- aProps[ nProp++ ] = Property(
- "FieldDelimiter",
+ pProps[ nProp++ ] = Property(
+ u"FieldDelimiter"_ustr,
PROPERTY_ID_FIELD_DELIMITER,
::cppu::UnoType< OUString >::get(),
PropertyAttribute::TRANSIENT
);
- aProps[ nProp++ ] = Property(
- "StringDelimiter",
+ pProps[ nProp++ ] = Property(
+ u"StringDelimiter"_ustr,
PROPERTY_ID_STRING_DELIMITER,
::cppu::UnoType< OUString >::get(),
PropertyAttribute::TRANSIENT
);
- aProps[ nProp++ ] = Property(
- "DecimalDelimiter",
+ pProps[ nProp++ ] = Property(
+ u"DecimalDelimiter"_ustr,
PROPERTY_ID_DECIMAL_DELIMITER,
::cppu::UnoType< OUString >::get(),
PropertyAttribute::TRANSIENT
);
- aProps[ nProp++ ] = Property(
- "ThousandDelimiter",
+ pProps[ nProp++ ] = Property(
+ u"ThousandDelimiter"_ustr,
PROPERTY_ID_THOUSAND_DELIMITER,
::cppu::UnoType< OUString >::get(),
PropertyAttribute::TRANSIENT
);
- aProps[ nProp++ ] = Property(
- "CharSet",
+ pProps[ nProp++ ] = Property(
+ u"CharSet"_ustr,
PROPERTY_ID_ENCODING,
::cppu::UnoType< OUString >::get(),
PropertyAttribute::TRANSIENT
diff --git a/dbaccess/source/ui/uno/unoDirectSql.cxx b/dbaccess/source/ui/uno/unoDirectSql.cxx
index 494407a117f0..807589689d53 100644
--- a/dbaccess/source/ui/uno/unoDirectSql.cxx
+++ b/dbaccess/source/ui/uno/unoDirectSql.cxx
@@ -25,8 +25,8 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <directsql.hxx>
#include <datasourceconnector.hxx>
-#include <tools/diagnose_ex.h>
-#include <comphelper/processfactory.hxx>
+#include <strings.hxx>
+#include <comphelper/diagnose_ex.hxx>
#include <vcl/svapp.hxx>
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
@@ -40,10 +40,8 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::container;
- using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::sdbc;
// ODirectSQLDialog
@@ -65,15 +63,38 @@ namespace dbaui
OUString SAL_CALL ODirectSQLDialog::getImplementationName()
{
- return "com.sun.star.comp.sdb.DirectSQLDialog";
+ return u"com.sun.star.comp.sdb.DirectSQLDialog"_ustr;
+ }
+ sal_Bool SAL_CALL ODirectSQLDialog::supportsService(const OUString& _rServiceName)
+ {
+ const css::uno::Sequence< OUString > aSupported(getSupportedServiceNames());
+ for (const OUString& s : aSupported)
+ if (s == _rServiceName)
+ return true;
+
+ return false;
}
- IMPLEMENT_SERVICE_INFO_SUPPORTS(ODirectSQLDialog)
css::uno::Sequence< OUString > SAL_CALL ODirectSQLDialog::getSupportedServiceNames( )
{
return { SERVICE_SDB_DIRECTSQLDIALOG };
}
- IMPLEMENT_PROPERTYCONTAINER_DEFAULTS( ODirectSQLDialog )
+ css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL ODirectSQLDialog::getPropertySetInfo()
+ {
+ Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
+ return xInfo;
+ }
+ ::cppu::IPropertyArrayHelper& ODirectSQLDialog::getInfoHelper()
+ {
+ return *ODirectSQLDialog::getArrayHelper();
+ }
+ ::cppu::IPropertyArrayHelper* ODirectSQLDialog::createArrayHelper( ) const
+ {
+ css::uno::Sequence< css::beans::Property > aProps;
+ describeProperties(aProps);
+ return new ::cppu::OPropertyArrayHelper(aProps);
+ }
+
std::unique_ptr<weld::DialogController> ODirectSQLDialog::createDialog(const css::uno::Reference<css::awt::XWindow>& rParent)
{
diff --git a/dbaccess/source/ui/uno/unoDirectSql.hxx b/dbaccess/source/ui/uno/unoDirectSql.hxx
index 3030eabeaae4..c83f975d63dd 100644
--- a/dbaccess/source/ui/uno/unoDirectSql.hxx
+++ b/dbaccess/source/ui/uno/unoDirectSql.hxx
@@ -20,7 +20,6 @@
#pragma once
#include <svtools/genericunodialog.hxx>
-#include <apitools.hxx>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <comphelper/proparrhlp.hxx>
#include <connectivity/CommonTools.hxx>
@@ -47,7 +46,9 @@ namespace dbaui
DECLARE_SERVICE_INFO();
- DECLARE_PROPERTYCONTAINER_DEFAULTS( );
+ virtual css::uno::Reference< css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override;
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override;
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override;
protected:
// OGenericUnoDialog overridables
diff --git a/dbaccess/source/ui/uno/unoadmin.cxx b/dbaccess/source/ui/uno/unoadmin.cxx
index f53df65a9e99..b2c50fc3ab0e 100644
--- a/dbaccess/source/ui/uno/unoadmin.cxx
+++ b/dbaccess/source/ui/uno/unoadmin.cxx
@@ -27,29 +27,21 @@ namespace dbaui
{
using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
ODatabaseAdministrationDialog::ODatabaseAdministrationDialog(const Reference< XComponentContext >& _rxORB)
- :ODatabaseAdministrationDialogBase(_rxORB)
- ,m_pItemPool(nullptr)
- ,m_pItemPoolDefaults(nullptr)
+: ODatabaseAdministrationDialogBase(_rxORB)
{
m_pCollection.reset( new ::dbaccess::ODsnTypeCollection(_rxORB) );
- ODbAdminDialog::createItemSet(m_pDatasourceItems, m_pItemPool, m_pItemPoolDefaults, m_pCollection.get());
+ ODbAdminDialog::createItemSet(m_pDatasourceItems, m_pItemPool, m_pCollection.get());
}
ODatabaseAdministrationDialog::~ODatabaseAdministrationDialog()
{
- if (m_xDialog)
- {
- ::osl::MutexGuard aGuard(m_aMutex);
- if (m_xDialog)
- {
- destroyDialog();
- ODbAdminDialog::destroyItemSet(m_pDatasourceItems, m_pItemPool, m_pItemPoolDefaults);
- }
- }
+ ::osl::MutexGuard aGuard(m_aMutex);
+ if (m_xDialog)
+ destroyDialog();
+ ODbAdminDialog::destroyItemSet(m_pDatasourceItems, m_pItemPool);
}
void ODatabaseAdministrationDialog::implInitialize(const Any& _rValue)
diff --git a/dbaccess/source/ui/uno/unosqlmessage.cxx b/dbaccess/source/ui/uno/unosqlmessage.cxx
index 85e87dbab83f..09e08878b02b 100644
--- a/dbaccess/source/ui/uno/unosqlmessage.cxx
+++ b/dbaccess/source/ui/uno/unosqlmessage.cxx
@@ -21,7 +21,6 @@
#include <unosqlmessage.hxx>
#include <stringconstants.hxx>
#include <strings.hxx>
-#include <comphelper/processfactory.hxx>
#include <comphelper/propertysequence.hxx>
#include <connectivity/dbexception.hxx>
#include <vcl/svapp.hxx>
@@ -65,12 +64,12 @@ Sequence<sal_Int8> SAL_CALL OSQLMessageDialog::getImplementationId( )
OUString SAL_CALL OSQLMessageDialog::getImplementationName()
{
- return "org.openoffice.comp.dbu.OSQLMessageDialog";
+ return u"org.openoffice.comp.dbu.OSQLMessageDialog"_ustr;
}
css::uno::Sequence<OUString> SAL_CALL OSQLMessageDialog::getSupportedServiceNames()
{
- return { "com.sun.star.sdb.ErrorMessageDialog" };
+ return { u"com.sun.star.sdb.ErrorMessageDialog"_ustr };
}
void OSQLMessageDialog::initialize(Sequence<Any> const & args)