summaryrefslogtreecommitdiff
path: root/sw/source/ui/fldui/fldmgr.cxx
diff options
context:
space:
mode:
authorOliver Specht <os@openoffice.org>2001-06-08 12:47:33 +0000
committerOliver Specht <os@openoffice.org>2001-06-08 12:47:33 +0000
commitec748265324c05a9958e988373e4a98839e44aa9 (patch)
treeb05ccd63c5376ab7639cd028c8f4d8d655f0813d /sw/source/ui/fldui/fldmgr.cxx
parent31abbd0547a84de778ace11190812ee679af27cf (diff)
#84832# #84836# use connection parameter in drag and drop, form letter, merge field and insert db as text
Diffstat (limited to 'sw/source/ui/fldui/fldmgr.cxx')
-rw-r--r--sw/source/ui/fldui/fldmgr.cxx332
1 files changed, 177 insertions, 155 deletions
diff --git a/sw/source/ui/fldui/fldmgr.cxx b/sw/source/ui/fldui/fldmgr.cxx
index 31eb7d19c421..7cf36b6245c0 100644
--- a/sw/source/ui/fldui/fldmgr.cxx
+++ b/sw/source/ui/fldui/fldmgr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fldmgr.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: jp $ $Date: 2001-05-22 08:30:11 $
+ * last change: $Author: os $ $Date: 2001-06-08 13:47:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -91,6 +91,15 @@
#ifndef _COM_SUN_STAR_STYLE_NUMBERINGTYPE_HPP_
#include <com/sun/star/style/NumberingType.hpp>
#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
+#include <com/sun/star/sdbc/XConnection.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_
+#include <com/sun/star/sdbc/XDataSource.hpp>
+#endif
#ifndef _COMPHELPER_PROCESSFACTORY_HXX_
#include <comphelper/processfactory.hxx>
#endif
@@ -225,9 +234,10 @@ using namespace rtl;
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::beans;
using namespace com::sun::star::text;
using namespace com::sun::star::style;
+using namespace com::sun::star::sdbc;
/*--------------------------------------------------------------------
Beschreibung: Gruppen der Felder
@@ -1036,89 +1046,87 @@ USHORT SwFldMgr::GetCurTypeId() const
--------------------------------------------------------------------*/
-BOOL SwFldMgr::InsertFld(USHORT nType,
- USHORT nSubType,
- const String& rPar1,
- const String& rPar2,
- ULONG nFormat,
- SwWrtShell* pSh,
- sal_Unicode cSeparator)
+BOOL SwFldMgr::InsertFld( const SwInsertFld_Data& rData )
{
SwField* pFld = 0;
BOOL bExp = FALSE;
BOOL bTbl = FALSE;
BOOL bPageVar = FALSE;
-
- if (pSh == NULL)
- pSh = pWrtShell ? pWrtShell : ::lcl_GetShell();
-
- switch(nType)
+ ULONG nFormatId = rData.nFormatId;
+ USHORT nSubType = rData.nSubType;
+ sal_Unicode cSeparator = rData.cSeparator;
+ SwWrtShell* pCurShell = rData.pSh;
+ if(!pCurShell)
+ pCurShell = pWrtShell ? pWrtShell : ::lcl_GetShell();
+
+ switch(rData.nTypeId)
{ // ACHTUNG dieses Feld wird ueber einen gesonderten Dialog eingefuegt
case TYP_POSTITFLD:
{
SwPostItFieldType* pType =
- (SwPostItFieldType*)pSh->GetFldType(0, RES_POSTITFLD);
- pFld = new SwPostItField(pType, rPar1, rPar2, Date());
+ (SwPostItFieldType*)pCurShell->GetFldType(0, RES_POSTITFLD);
+ pFld = new SwPostItField(pType, rData.sPar1, rData.sPar2, Date());
break;
}
case TYP_SCRIPTFLD:
{
SwScriptFieldType* pType =
- (SwScriptFieldType*)pSh->GetFldType(0, RES_SCRIPTFLD);
- pFld = new SwScriptField(pType, rPar1, rPar2, (BOOL)nFormat);
+ (SwScriptFieldType*)pCurShell->GetFldType(0, RES_SCRIPTFLD);
+ pFld = new SwScriptField(pType, rData.sPar1, rData.sPar2, (BOOL)nFormatId);
break;
}
case TYP_COMBINED_CHARS:
{
SwCombinedCharFieldType* pType = (SwCombinedCharFieldType*)
- pSh->GetFldType( 0, RES_COMBINED_CHARS );
- pFld = new SwCombinedCharField( pType, rPar1 );
+ pCurShell->GetFldType( 0, RES_COMBINED_CHARS );
+ pFld = new SwCombinedCharField( pType, rData.sPar1 );
}
break;
case TYP_AUTHORITY:
{
SwAuthorityFieldType* pType =
- (SwAuthorityFieldType*)pSh->GetFldType(0, RES_AUTHORITY);
+ (SwAuthorityFieldType*)pCurShell->GetFldType(0, RES_AUTHORITY);
if(!pType)
{
pType =
- (SwAuthorityFieldType*)pSh->InsertFldType(
- SwAuthorityFieldType(pSh->GetDoc()));
+ (SwAuthorityFieldType*)pCurShell->InsertFldType(
+ SwAuthorityFieldType(pCurShell->GetDoc()));
}
- pFld = new SwAuthorityField(pType, rPar1);
+ pFld = new SwAuthorityField(pType, rData.sPar1);
}
break;
case TYP_DATEFLD:
case TYP_TIMEFLD:
{
- USHORT nSub = (nType == TYP_DATEFLD) ? DATEFLD : TIMEFLD;
+ USHORT nSub = (rData.nTypeId == TYP_DATEFLD) ? DATEFLD : TIMEFLD;
nSub |= nSubType == DATE_VAR ? 0 : FIXEDFLD;
SwDateTimeFieldType* pTyp =
- (SwDateTimeFieldType*)pSh->GetFldType(0, RES_DATETIMEFLD);
- pFld = new SwDateTimeField(pTyp, nSub, nFormat);
- pFld->SetPar2(rPar2);
+ (SwDateTimeFieldType*)pCurShell->GetFldType(0, RES_DATETIMEFLD);
+ pFld = new SwDateTimeField(pTyp, nSub, nFormatId);
+ pFld->SetPar2(rData.sPar2);
break;
}
case TYP_FILENAMEFLD:
{
SwFileNameFieldType* pTyp =
- (SwFileNameFieldType*)pSh->GetFldType(0, RES_FILENAMEFLD);
- pFld = new SwFileNameField(pTyp, nFormat);
+ (SwFileNameFieldType*)pCurShell->GetFldType(0, RES_FILENAMEFLD);
+ pFld = new SwFileNameField(pTyp, nFormatId);
break;
}
case TYP_TEMPLNAMEFLD:
{
SwTemplNameFieldType* pTyp =
- (SwTemplNameFieldType*)pSh->GetFldType(0, RES_TEMPLNAMEFLD);
- pFld = new SwTemplNameField(pTyp, nFormat);
+ (SwTemplNameFieldType*)pCurShell->GetFldType(0, RES_TEMPLNAMEFLD);
+ pFld = new SwTemplNameField(pTyp, nFormatId);
break;
}
case TYP_CHAPTERFLD:
- { USHORT nByte = rPar2.ToInt32();
+ {
+ USHORT nByte = (USHORT)rData.sPar2.ToInt32();
SwChapterFieldType* pTyp =
- (SwChapterFieldType*)pSh->GetFldType(0, RES_CHAPTERFLD);
- pFld = new SwChapterField(pTyp, nFormat);
+ (SwChapterFieldType*)pCurShell->GetFldType(0, RES_CHAPTERFLD);
+ pFld = new SwChapterField(pTyp, nFormatId);
nByte = Max(USHORT(1), nByte);
nByte = Min(nByte, USHORT(MAXLEVEL));
nByte -= 1;
@@ -1129,19 +1137,19 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
case TYP_PREVPAGEFLD:
case TYP_PAGENUMBERFLD:
{
- short nOff = rPar2.ToInt32();
+ short nOff = (short)rData.sPar2.ToInt32();
- if(nType == TYP_NEXTPAGEFLD)
+ if(rData.nTypeId == TYP_NEXTPAGEFLD)
{
- if( SVX_NUM_CHAR_SPECIAL == nFormat )
+ if( SVX_NUM_CHAR_SPECIAL == nFormatId )
nOff = 1;
else
nOff += 1;
nSubType = PG_NEXT;
}
- else if(nType == TYP_PREVPAGEFLD)
+ else if(rData.nTypeId == TYP_PREVPAGEFLD)
{
- if( SVX_NUM_CHAR_SPECIAL == nFormat )
+ if( SVX_NUM_CHAR_SPECIAL == nFormatId )
nOff = -1;
else
nOff -= 1;
@@ -1151,48 +1159,48 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
nSubType = PG_RANDOM;
SwPageNumberFieldType* pTyp =
- (SwPageNumberFieldType*)pSh->GetFldType(0, RES_PAGENUMBERFLD);
- pFld = new SwPageNumberField(pTyp, nSubType, nFormat, nOff);
+ (SwPageNumberFieldType*)pCurShell->GetFldType(0, RES_PAGENUMBERFLD);
+ pFld = new SwPageNumberField(pTyp, nSubType, nFormatId, nOff);
- if( SVX_NUM_CHAR_SPECIAL == nFormat &&
+ if( SVX_NUM_CHAR_SPECIAL == nFormatId &&
( PG_PREV == nSubType || PG_NEXT == nSubType ) )
- ((SwPageNumberField*)pFld)->SetUserString( rPar2 );
+ ((SwPageNumberField*)pFld)->SetUserString( rData.sPar2 );
break;
}
case TYP_DOCSTATFLD:
{ SwDocStatFieldType* pTyp =
- (SwDocStatFieldType*)pSh->GetFldType(0, RES_DOCSTATFLD);
- pFld = new SwDocStatField(pTyp, nSubType, nFormat);
+ (SwDocStatFieldType*)pCurShell->GetFldType(0, RES_DOCSTATFLD);
+ pFld = new SwDocStatField(pTyp, nSubType, nFormatId);
break;
}
case TYP_AUTHORFLD:
{ SwAuthorFieldType* pTyp =
- (SwAuthorFieldType*)pSh->GetFldType(0, RES_AUTHORFLD);
- pFld = new SwAuthorField(pTyp, nFormat);
+ (SwAuthorFieldType*)pCurShell->GetFldType(0, RES_AUTHORFLD);
+ pFld = new SwAuthorField(pTyp, nFormatId);
break;
}
case TYP_CONDTXTFLD:
case TYP_HIDDENTXTFLD:
{
SwHiddenTxtFieldType* pTyp =
- (SwHiddenTxtFieldType*)pSh->GetFldType(0, RES_HIDDENTXTFLD);
- pFld = new SwHiddenTxtField(pTyp, TRUE, rPar1, rPar2, FALSE, nType);
+ (SwHiddenTxtFieldType*)pCurShell->GetFldType(0, RES_HIDDENTXTFLD);
+ pFld = new SwHiddenTxtField(pTyp, TRUE, rData.sPar1, rData.sPar2, FALSE, rData.nTypeId);
bExp = TRUE;
break;
}
case TYP_HIDDENPARAFLD:
{
SwHiddenParaFieldType* pTyp =
- (SwHiddenParaFieldType*)pSh->GetFldType(0, RES_HIDDENPARAFLD);
- pFld = new SwHiddenParaField(pTyp, rPar1);
+ (SwHiddenParaFieldType*)pCurShell->GetFldType(0, RES_HIDDENPARAFLD);
+ pFld = new SwHiddenParaField(pTyp, rData.sPar1);
bExp = TRUE;
break;
}
case TYP_SETREFFLD:
{
- if( rPar1.Len() > 0 && CanInsertRefMark( rPar1 ) )
+ if( rData.sPar1.Len() > 0 && CanInsertRefMark( rData.sPar1 ) )
{
- pSh->SetAttr( SwFmtRefMark( rPar1 ) );
+ pCurShell->SetAttr( SwFmtRefMark( rData.sPar1 ) );
return TRUE;
}
return FALSE;
@@ -1200,9 +1208,9 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
case TYP_GETREFFLD:
{
SwGetRefFieldType* pTyp =
- (SwGetRefFieldType*)pSh->GetFldType(0, RES_GETREFFLD);
- USHORT nSeqNo = rPar2.ToInt32();
- pFld = new SwGetRefField(pTyp, rPar1, nSubType, nSeqNo, nFormat);
+ (SwGetRefFieldType*)pCurShell->GetFldType(0, RES_GETREFFLD);
+ USHORT nSeqNo = (USHORT)rData.sPar2.ToInt32();
+ pFld = new SwGetRefField(pTyp, rData.sPar1, nSubType, nSeqNo, nFormatId);
bExp = TRUE;
break;
}
@@ -1210,50 +1218,50 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
{
//JP 28.08.95: DDE-Topics/-Items koennen Blanks in ihren
// Namen haben! Wird hier noch nicht beachtet.
- String sCmd( rPar2 );
+ String sCmd( rData.sPar2 );
USHORT nTmpPos = sCmd.SearchAndReplace( ' ', cTokenSeperator );
sCmd.SearchAndReplace( ' ', cTokenSeperator, nTmpPos );
- SwDDEFieldType* pTyp = (SwDDEFieldType*)pSh->InsertFldType(
- SwDDEFieldType( rPar1, sCmd, (USHORT)nFormat ));
+ SwDDEFieldType* pTyp = (SwDDEFieldType*)pCurShell->InsertFldType(
+ SwDDEFieldType( rData.sPar1, sCmd, (USHORT)nFormatId ));
pFld = new SwDDEField( pTyp );
break;
}
case TYP_MACROFLD:
{
SwMacroFieldType* pTyp =
- (SwMacroFieldType*)pSh->GetFldType(0, RES_MACROFLD);
+ (SwMacroFieldType*)pCurShell->GetFldType(0, RES_MACROFLD);
- pFld = new SwMacroField(pTyp, rPar1, rPar2);
+ pFld = new SwMacroField(pTyp, rData.sPar1, rData.sPar2);
break;
}
case TYP_INTERNETFLD:
{
- SwFmtINetFmt aFmt( rPar1, sCurFrame );
+ SwFmtINetFmt aFmt( rData.sPar1, sCurFrame );
if( pMacroItem )
aFmt.SetMacroTbl( &pMacroItem->GetMacroTable() );
- return pSh->InsertURL( aFmt, rPar2 );
+ return pCurShell->InsertURL( aFmt, rData.sPar2 );
}
case TYP_JUMPEDITFLD:
{
SwJumpEditFieldType* pTyp =
- (SwJumpEditFieldType*)pSh->GetFldType(0, RES_JUMPEDITFLD);
+ (SwJumpEditFieldType*)pCurShell->GetFldType(0, RES_JUMPEDITFLD);
- pFld = new SwJumpEditField(pTyp, nFormat, rPar1, rPar2 );
+ pFld = new SwJumpEditField(pTyp, nFormatId, rData.sPar1, rData.sPar2 );
break;
}
case TYP_DOCINFOFLD:
{
- SwDocInfoFieldType* pTyp = (SwDocInfoFieldType*)pSh->GetFldType(
+ SwDocInfoFieldType* pTyp = (SwDocInfoFieldType*)pCurShell->GetFldType(
0, RES_DOCINFOFLD );
- pFld = new SwDocInfoField(pTyp, nSubType, nFormat);
+ pFld = new SwDocInfoField(pTyp, nSubType, nFormatId);
break;
}
case TYP_EXTUSERFLD:
{
- SwExtUserFieldType* pTyp = (SwExtUserFieldType*)pSh->GetFldType(
+ SwExtUserFieldType* pTyp = (SwExtUserFieldType*)pCurShell->GetFldType(
0, RES_EXTUSERFLD);
- pFld = new SwExtUserField(pTyp, nSubType, nFormat);
+ pFld = new SwExtUserField(pTyp, nSubType, nFormatId);
break;
}
case TYP_DBFLD:
@@ -1261,32 +1269,45 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
SwDBData aDBData;
String sPar1;
- if (rPar1.Search(DB_DELIM) == STRING_NOTFOUND)
+ if (rData.sPar1.Search(DB_DELIM) == STRING_NOTFOUND)
{
- aDBData = pSh->GetDBData();
- sPar1 = rPar1;
+ aDBData = pCurShell->GetDBData();
+ sPar1 = rData.sPar1;
}
else
{
- aDBData.sDataSource = rPar1.GetToken(0, DB_DELIM);
- aDBData.sCommand = rPar1.GetToken(1, DB_DELIM);
- sPar1 = rPar1.GetToken(2, DB_DELIM);
+ aDBData.sDataSource = rData.sPar1.GetToken(0, DB_DELIM);
+ aDBData.sCommand = rData.sPar1.GetToken(1, DB_DELIM);
+ sPar1 = rData.sPar1.GetToken(2, DB_DELIM);
}
- if(aDBData.sDataSource.getLength() && pSh->GetDBData() != aDBData)
- pSh->ChgDBData(aDBData);
+ if(aDBData.sDataSource.getLength() && pCurShell->GetDBData() != aDBData)
+ pCurShell->ChgDBData(aDBData);
- SwDBFieldType* pTyp = (SwDBFieldType*)pSh->InsertFldType(
- SwDBFieldType(pSh->GetDoc(), sPar1, aDBData) );
+ SwDBFieldType* pTyp = (SwDBFieldType*)pCurShell->InsertFldType(
+ SwDBFieldType(pCurShell->GetDoc(), sPar1, aDBData) );
pFld = new SwDBField(pTyp);
pFld->SetSubType(nSubType);
if( !(nSubType & SUB_OWN_FMT) ) // Datenbankformat ermitteln
{
- nFormat = pSh->GetNewDBMgr()->GetColumnFmt( aDBData.sDataSource, aDBData.sCommand, sPar1,
- pSh->GetNumberFormatter(), GetCurrLanguage() );
+ Reference< XDataSource> xSource;
+ rData.aDBDataSource >>= xSource;
+ Reference<XConnection> xConnection;
+ rData.aDBConnection >>= xConnection;
+ Reference<XPropertySet> xColumn;
+ rData.aDBColumn >>= xColumn;
+ if(xColumn.is())
+ {
+ nFormatId = pCurShell->GetNewDBMgr()->GetColumnFmt(xSource, xConnection, xColumn,
+ pCurShell->GetNumberFormatter(), GetCurrLanguage() );
+ }
+ else
+ nFormatId = pCurShell->GetNewDBMgr()->GetColumnFmt(
+ aDBData.sDataSource, aDBData.sCommand, sPar1,
+ pCurShell->GetNumberFormatter(), GetCurrLanguage() );
}
- pFld->ChangeFormat( nFormat );
+ pFld->ChangeFormat( nFormatId );
bExp = TRUE;
break;
@@ -1300,12 +1321,12 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
String sPar1;
SwDBData aDBData;
- // DBName aus rPar1 extrahieren. Format: DBName.TableName.ExpStrg
- if ((nTablePos = rPar1.Search(DB_DELIM)) != STRING_NOTFOUND)
- aDBData.sDataSource = rPar1.Copy(0, nTablePos++);
- if ((nExpPos = rPar1.Search(DB_DELIM, nTablePos)) != STRING_NOTFOUND)
+ // DBName aus rData.sPar1 extrahieren. Format: DBName.TableName.ExpStrg
+ if ((nTablePos = rData.sPar1.Search(DB_DELIM)) != STRING_NOTFOUND)
+ aDBData.sDataSource = rData.sPar1.Copy(0, nTablePos++);
+ if ((nExpPos = rData.sPar1.Search(DB_DELIM, nTablePos)) != STRING_NOTFOUND)
{
- aDBData.sCommand = rPar1.Copy(nTablePos, nExpPos++ - nTablePos);
+ aDBData.sCommand = rData.sPar1.Copy(nTablePos, nExpPos++ - nTablePos);
}
if (nExpPos != STRING_NOTFOUND)
nPos = nExpPos;
@@ -1313,42 +1334,42 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
nPos = nTablePos;
else
nPos = 0;
- sPar1 = rPar1.Copy(nPos);
+ sPar1 = rData.sPar1.Copy(nPos);
- if (aDBData.sDataSource.getLength() && pSh->GetDBData() != aDBData)
- pSh->ChgDBData(aDBData);
+ if (aDBData.sDataSource.getLength() && pCurShell->GetDBData() != aDBData)
+ pCurShell->ChgDBData(aDBData);
- switch(nType)
+ switch(rData.nTypeId)
{
case TYP_DBNAMEFLD:
{
SwDBNameFieldType* pTyp =
- (SwDBNameFieldType*)pSh->GetFldType(0, RES_DBNAMEFLD);
+ (SwDBNameFieldType*)pCurShell->GetFldType(0, RES_DBNAMEFLD);
pFld = new SwDBNameField(pTyp, aDBData);
break;
}
case TYP_DBNEXTSETFLD:
{
- SwDBNextSetFieldType* pTyp = (SwDBNextSetFieldType*)pSh->GetFldType(
+ SwDBNextSetFieldType* pTyp = (SwDBNextSetFieldType*)pCurShell->GetFldType(
0, RES_DBNEXTSETFLD);
- pFld = new SwDBNextSetField(pTyp, sPar1, rPar2, aDBData);
+ pFld = new SwDBNextSetField(pTyp, sPar1, rData.sPar2, aDBData);
bExp = TRUE;
break;
}
case TYP_DBNUMSETFLD:
{
- SwDBNumSetFieldType* pTyp = (SwDBNumSetFieldType*)pSh->GetFldType(
+ SwDBNumSetFieldType* pTyp = (SwDBNumSetFieldType*)pCurShell->GetFldType(
0, RES_DBNUMSETFLD);
- pFld = new SwDBNumSetField( pTyp, sPar1, rPar2, aDBData);
+ pFld = new SwDBNumSetField( pTyp, sPar1, rData.sPar2, aDBData);
bExp = TRUE;
break;
}
case TYP_DBSETNUMBERFLD:
{
SwDBSetNumberFieldType* pTyp = (SwDBSetNumberFieldType*)
- pSh->GetFldType(0, RES_DBSETNUMBERFLD);
- pFld = new SwDBSetNumberField( pTyp, aDBData, nFormat);
+ pCurShell->GetFldType(0, RES_DBSETNUMBERFLD);
+ pFld = new SwDBSetNumberField( pTyp, aDBData, nFormatId);
bExp = TRUE;
break;
}
@@ -1358,17 +1379,17 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
case TYP_USERFLD:
{
SwUserFieldType* pTyp =
- (SwUserFieldType*)pSh->GetFldType(RES_USERFLD, rPar1);
+ (SwUserFieldType*)pCurShell->GetFldType(RES_USERFLD, rData.sPar1);
// nur wenn vorhanden
if(!pTyp)
{
- pTyp = (SwUserFieldType*)pSh->InsertFldType(
- SwUserFieldType(pSh->GetDoc(), rPar1));
+ pTyp = (SwUserFieldType*)pCurShell->InsertFldType(
+ SwUserFieldType(pCurShell->GetDoc(), rData.sPar1));
}
- if (pTyp->GetContent(nFormat) != rPar2)
- pTyp->SetContent(rPar2, nFormat);
- pFld = new SwUserField(pTyp, 0, nFormat);
+ if (pTyp->GetContent(nFormatId) != rData.sPar2)
+ pTyp->SetContent(rData.sPar2, nFormatId);
+ pFld = new SwUserField(pTyp, 0, nFormatId);
if (pFld->GetSubType() != nSubType)
pFld->SetSubType(nSubType);
bTbl = TRUE;
@@ -1379,19 +1400,19 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
if ((nSubType & 0x00ff) == INP_VAR)
{
SwSetExpFieldType* pTyp = (SwSetExpFieldType*)
- pSh->GetFldType(RES_SETEXPFLD, rPar1);
+ pCurShell->GetFldType(RES_SETEXPFLD, rData.sPar1);
// kein Experssion Type mit dem Namen vorhanden -> anlegen
if(pTyp)
{
SwSetExpField* pExpFld =
- new SwSetExpField(pTyp, aEmptyStr, nFormat);
+ new SwSetExpField(pTyp, aEmptyStr, nFormatId);
// Typ vom SwSetExpFieldType nicht veraendern:
USHORT nOldSubType = pExpFld->GetSubType();
pExpFld->SetSubType(nOldSubType | (nSubType & 0xff00));
- pExpFld->SetPromptText(rPar2);
+ pExpFld->SetPromptText(rData.sPar2);
pExpFld->SetInputFlag(TRUE) ;
bExp = TRUE;
pFld = pExpFld;
@@ -1402,37 +1423,37 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
else
{
SwInputFieldType* pTyp =
- (SwInputFieldType*)pSh->GetFldType(0, RES_INPUTFLD);
+ (SwInputFieldType*)pCurShell->GetFldType(0, RES_INPUTFLD);
SwInputField* pInpFld =
- new SwInputField(pTyp, rPar1, rPar2, nSubType|SUB_INVISIBLE, nFormat);
+ new SwInputField(pTyp, rData.sPar1, rData.sPar2, nSubType|SUB_INVISIBLE, nFormatId);
pFld = pInpFld;
}
// Dialog starten
//
- pSh->StartInputFldDlg(pFld, FALSE);
+ pCurShell->StartInputFldDlg(pFld, FALSE);
break;
}
case TYP_SETFLD:
{
- if (!rPar2.Len()) // Leere Variablen sind nicht erlaubt
+ if (!rData.sPar2.Len()) // Leere Variablen sind nicht erlaubt
return FALSE;
- SwSetExpFieldType* pTyp = (SwSetExpFieldType*)pSh->InsertFldType(
- SwSetExpFieldType(pSh->GetDoc(), rPar1) );
+ SwSetExpFieldType* pTyp = (SwSetExpFieldType*)pCurShell->InsertFldType(
+ SwSetExpFieldType(pCurShell->GetDoc(), rData.sPar1) );
- SwSetExpField* pExpFld = new SwSetExpField( pTyp, rPar2, nFormat);
+ SwSetExpField* pExpFld = new SwSetExpField( pTyp, rData.sPar2, nFormatId);
pExpFld->SetSubType(nSubType);
- pExpFld->SetPar2(rPar2);
+ pExpFld->SetPar2(rData.sPar2);
bExp = TRUE;
pFld = pExpFld;
break;
}
case TYP_SEQFLD:
{
- SwSetExpFieldType* pTyp = (SwSetExpFieldType*)pSh->InsertFldType(
- SwSetExpFieldType(pSh->GetDoc(), rPar1, GSE_SEQ));
+ SwSetExpFieldType* pTyp = (SwSetExpFieldType*)pCurShell->InsertFldType(
+ SwSetExpFieldType(pCurShell->GetDoc(), rData.sPar1, GSE_SEQ));
BYTE nLevel = nSubType & 0xff;
@@ -1441,7 +1462,7 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
cSeparator = '.';
pTyp->SetDelimiter(cSeparator);
- SwSetExpField* pExpFld = new SwSetExpField(pTyp, rPar2, nFormat);
+ SwSetExpField* pExpFld = new SwSetExpField(pTyp, rData.sPar2, nFormatId);
bExp = TRUE;
pFld = pExpFld;
nSubType = GSE_SEQ;
@@ -1451,13 +1472,13 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
{
// gibt es ein entprechendes SetField
SwSetExpFieldType* pSetTyp = (SwSetExpFieldType*)
- pSh->GetFldType(RES_SETEXPFLD, rPar1);
+ pCurShell->GetFldType(RES_SETEXPFLD, rData.sPar1);
if(pSetTyp)
{
- SwGetExpFieldType* pTyp = (SwGetExpFieldType*)pSh->GetFldType(
+ SwGetExpFieldType* pTyp = (SwGetExpFieldType*)pCurShell->GetFldType(
0, RES_GETEXPFLD);
- pFld = new SwGetExpField(pTyp, rPar1, pSetTyp->GetType(), nFormat);
+ pFld = new SwGetExpField(pTyp, rData.sPar1, pSetTyp->GetType(), nFormatId);
pFld->SetSubType(nSubType | pSetTyp->GetType());
bExp = TRUE;
}
@@ -1467,46 +1488,46 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
}
case TYP_FORMELFLD:
{
- if(pSh->GetFrmType(0,FALSE) & FRMTYPE_TABLE)
+ if(pCurShell->GetFrmType(0,FALSE) & FRMTYPE_TABLE)
{
- pSh->StartAllAction();
+ pCurShell->StartAllAction();
- SvNumberFormatter* pFormatter = pSh->GetDoc()->GetNumberFormatter();
- const SvNumberformat* pEntry = pFormatter->GetEntry(nFormat);
+ SvNumberFormatter* pFormatter = pCurShell->GetDoc()->GetNumberFormatter();
+ const SvNumberformat* pEntry = pFormatter->GetEntry(nFormatId);
if (pEntry)
{
SfxStringItem aFormat(FN_NUMBER_FORMAT, pEntry->GetFormatstring());
- pSh->GetView().GetViewFrame()->GetDispatcher()->
+ pCurShell->GetView().GetViewFrame()->GetDispatcher()->
Execute(FN_NUMBER_FORMAT, SFX_CALLMODE_SYNCHRON, &aFormat, 0L);
}
- SfxItemSet aBoxSet( pSh->GetAttrPool(),
+ SfxItemSet aBoxSet( pCurShell->GetAttrPool(),
RES_BOXATR_FORMULA, RES_BOXATR_FORMULA );
- String sFml( rPar2 );
+ String sFml( rData.sPar2 );
if( sFml.EraseLeadingChars().Len() &&
'=' == sFml.GetChar( 0 ) )
sFml.Erase( 0, 1 );
aBoxSet.Put( SwTblBoxFormula( sFml ));
- pSh->SetTblBoxFormulaAttrs( aBoxSet );
- pSh->UpdateTable();
+ pCurShell->SetTblBoxFormulaAttrs( aBoxSet );
+ pCurShell->UpdateTable();
- pSh->EndAllAction();
+ pCurShell->EndAllAction();
return TRUE;
/* // In der Tabelle Tabellenformeln einfuegen
- SwTblFieldType* pTyp = (SwTblFieldType*)pSh->GetFldType(
+ SwTblFieldType* pTyp = (SwTblFieldType*)pCurShell->GetFldType(
0, RES_TABLEFLD);
- pFld = new SwTblField(pTyp, rPar2, GSE_EXPR, nFormat);
+ pFld = new SwTblField(pTyp, rData.sPar2, GSE_EXPR, nFormatId);
bTbl = TRUE;*/
}
else
{
SwGetExpFieldType* pTyp = (SwGetExpFieldType*)
- pSh->GetFldType(0, RES_GETEXPFLD);
- pFld = new SwGetExpField(pTyp, rPar2, GSE_FORMULA, nFormat);
+ pCurShell->GetFldType(0, RES_GETEXPFLD);
+ pFld = new SwGetExpField(pTyp, rData.sPar2, GSE_FORMULA, nFormatId);
pFld->SetSubType(nSubType);
bExp = TRUE;
}
@@ -1514,14 +1535,14 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
}
case TYP_SETREFPAGEFLD:
pFld = new SwRefPageSetField( (SwRefPageSetFieldType*)
- pSh->GetFldType( 0, RES_REFPAGESETFLD ),
- rPar2.ToInt32(), 0 != nSubType );
+ pCurShell->GetFldType( 0, RES_REFPAGESETFLD ),
+ (short)rData.sPar2.ToInt32(), 0 != nSubType );
bPageVar = TRUE;
break;
case TYP_GETREFPAGEFLD:
pFld = new SwRefPageGetField( (SwRefPageGetFieldType*)
- pSh->GetFldType( 0, RES_REFPAGEGETFLD ), nFormat );
+ pCurShell->GetFldType( 0, RES_REFPAGEGETFLD ), nFormatId );
bPageVar = TRUE;
break;
@@ -1538,28 +1559,28 @@ BOOL SwFldMgr::InsertFld(USHORT nType,
pFld->SetLanguage(nLang);
// Einfuegen
- pSh->StartAllAction();
+ pCurShell->StartAllAction();
- pSh->Insert(*pFld);
+ pCurShell->Insert(*pFld);
if(bExp && bEvalExp)
- pSh->UpdateExpFlds(TRUE);
+ pCurShell->UpdateExpFlds(TRUE);
if(bTbl)
{
- pSh->Left();
- pSh->UpdateFlds(*pFld);
- pSh->Right();
+ pCurShell->Left();
+ pCurShell->UpdateFlds(*pFld);
+ pCurShell->Right();
}
else if( bPageVar )
- ((SwRefPageGetFieldType*)pSh->GetFldType( 0, RES_REFPAGEGETFLD ))->UpdateFlds();
- else if( TYP_GETREFFLD == nType )
+ ((SwRefPageGetFieldType*)pCurShell->GetFldType( 0, RES_REFPAGEGETFLD ))->UpdateFlds();
+ else if( TYP_GETREFFLD == rData.nTypeId )
pFld->GetTyp()->Modify( 0, 0 );
// temporaeres Feld loeschen
delete pFld;
- pSh->EndAllAction();
+ pCurShell->EndAllAction();
return TRUE;
}
@@ -1599,7 +1620,7 @@ void SwFldMgr::UpdateCurFld(ULONG nFormat,
case TYP_CHAPTERFLD:
{
- USHORT nByte = rPar2.ToInt32();
+ USHORT nByte = (USHORT)rPar2.ToInt32();
nByte = Max(USHORT(1), nByte);
nByte = Min(nByte, USHORT(MAXLEVEL));
nByte -= 1;
@@ -1622,7 +1643,7 @@ void SwFldMgr::UpdateCurFld(ULONG nFormat,
{
if( nFormat + 2 == SVX_NUM_PAGEDESC )
nFormat = SVX_NUM_PAGEDESC;
- short nOff = sPar2.ToInt32();
+ short nOff = (short)sPar2.ToInt32();
nOff += 1;
sPar2 = nOff;
}
@@ -1638,7 +1659,7 @@ void SwFldMgr::UpdateCurFld(ULONG nFormat,
{
if( nFormat + 2 == SVX_NUM_PAGEDESC )
nFormat = SVX_NUM_PAGEDESC;
- short nOff = sPar2.ToInt32();
+ short nOff = (short)sPar2.ToInt32();
nOff -= 1;
sPar2 = nOff;
}
@@ -1653,10 +1674,10 @@ void SwFldMgr::UpdateCurFld(ULONG nFormat,
case TYP_GETREFFLD:
{
bSetPar2 = FALSE;
- ((SwGetRefField*)pCurFld)->SetSubType( rPar2.ToInt32() );
+ ((SwGetRefField*)pCurFld)->SetSubType( (USHORT)rPar2.ToInt32() );
USHORT nPos = rPar2.Search( '|' );
if( STRING_NOTFOUND != nPos )
- ((SwGetRefField*)pCurFld)->SetSeqNo( rPar2.Copy( nPos + 1 ).ToInt32());
+ ((SwGetRefField*)pCurFld)->SetSeqNo( (USHORT)rPar2.Copy( nPos + 1 ).ToInt32());
}
break;
}
@@ -1838,7 +1859,8 @@ BOOL SwFldMgr::InsertURL( const String& rName,
{
sCurFrame = rFrame;
pMacroItem = pItem;
- BOOL bRet = InsertFld(TYP_INTERNETFLD, 0, rName, rVal, 0);
+ SwInsertFld_Data aData(TYP_INTERNETFLD, 0, rName, rVal, 0);
+ BOOL bRet = InsertFld(aData);
sCurFrame = aEmptyStr;
pMacroItem = 0;
return bRet;