1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_connectivity.hxx" 30 31 #include "kfields.hxx" 32 #include "resource/common_res.hrc" 33 #include "resource/sharedresources.hxx" 34 35 using namespace ::connectivity::kab; 36 using namespace ::com::sun::star::sdbc; 37 38 namespace connectivity 39 { 40 namespace kab 41 { 42 // ----------------------------------------------------------------------------- 43 // return the value of a KDE address book field, given an addressee and a field number 44 QString valueOfKabField(const ::KABC::Addressee &aAddressee, sal_Int32 nFieldNumber) 45 { 46 switch (nFieldNumber) 47 { 48 case KAB_FIELD_REVISION: 49 return aAddressee.revision().toString("yyyy-MM-dd hh:mm:ss"); 50 default: 51 ::KABC::Field::List aFields = ::KABC::Field::allFields(); 52 return aFields[nFieldNumber - KAB_DATA_FIELDS]->value(aAddressee); 53 } 54 } 55 // ------------------------------------------------------------------------------ 56 // search the KDE address book field number of a given column name 57 sal_uInt32 findKabField(const ::rtl::OUString& columnName) throw(SQLException) 58 { 59 QString aQtName; 60 ::rtl::OUString aName; 61 62 aQtName = KABC::Addressee::revisionLabel(); 63 aName = ::rtl::OUString((const sal_Unicode *) aQtName.ucs2()); 64 if (columnName == aName) 65 return KAB_FIELD_REVISION; 66 67 ::KABC::Field::List aFields = ::KABC::Field::allFields(); 68 ::KABC::Field::List::iterator aField; 69 sal_uInt32 nResult; 70 71 for ( aField = aFields.begin(), nResult = KAB_DATA_FIELDS; 72 aField != aFields.end(); 73 ++aField, ++nResult) 74 { 75 aQtName = (*aField)->label(); 76 aName = ::rtl::OUString((const sal_Unicode *) aQtName.ucs2()); 77 78 if (columnName == aName) 79 return nResult; 80 } 81 82 ::connectivity::SharedResources aResources; 83 const ::rtl::OUString sError( aResources.getResourceStringWithSubstitution( 84 STR_INVALID_COLUMNNAME, 85 "$columnname$",columnName 86 ) ); 87 ::dbtools::throwGenericSQLException(sError,NULL); 88 // Unreachable: 89 OSL_ASSERT(false); 90 return 0; 91 } 92 // ------------------------------------------------------------------------------ 93 } 94 } 95