[Libreoffice-commits] core.git: sw/source
Jochen Nitschke
j.nitschke+logerrit at ok.de
Thu Apr 28 18:32:01 UTC 2016
sw/source/ui/dbui/dbinsdlg.cxx | 71 +++++++++++++++++++----------------------
1 file changed, 33 insertions(+), 38 deletions(-)
New commits:
commit f8eb7f9c7db6c3dd460868d00758733318cdc266
Author: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Date: Thu Apr 28 01:35:05 2016 +0200
use initialization list
use anonymous union to make initialization and
access easier
prevent overwriting type and use scoped enum
Change-Id: I76037ec666c5740096849b0c58fd9a187ada1d54
Reviewed-on: https://gerrit.libreoffice.org/24455
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: jan iversen <jani at documentfoundation.org>
Tested-by: jan iversen <jani at documentfoundation.org>
Reviewed-by: Noel Grandin <noelgrandin at gmail.com>
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index 3fe8b9a..af78932 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -110,49 +110,44 @@ const char cDBFieldEnd = '>';
// Helper structure for adding database rows as fields or text
struct DB_Column
{
- enum ColType { DB_FILLTEXT, DB_COL_FIELD, DB_COL_TEXT, DB_SPLITPARA } eColType;
+ const enum class Type { FILLTEXT, COL_FIELD, COL_TEXT, SPLITPARA } eColType;
union {
OUString* pText;
SwField* pField;
sal_uLong nFormat;
- } DB_ColumnData;
+ };
const SwInsDBColumn* pColInfo;
- DB_Column()
- {
- pColInfo = nullptr;
- DB_ColumnData.pText = nullptr;
- eColType = DB_SPLITPARA;
- }
+ DB_Column() : eColType(Type::SPLITPARA),
+ pText(nullptr),
+ pColInfo(nullptr)
+ {}
explicit DB_Column( const OUString& rText )
- {
- pColInfo = nullptr;
- DB_ColumnData.pText = new OUString( rText );
- eColType = DB_FILLTEXT;
- }
+ : eColType(Type::FILLTEXT),
+ pText(new OUString(rText)),
+ pColInfo(nullptr)
+ {}
- DB_Column( const SwInsDBColumn& rInfo, sal_uLong nFormat )
- {
- pColInfo = &rInfo;
- DB_ColumnData.nFormat = nFormat;
- eColType = DB_COL_TEXT;
- }
+ DB_Column( const SwInsDBColumn& rInfo, sal_uLong nFormat_ )
+ : eColType(Type::COL_TEXT),
+ nFormat(nFormat_),
+ pColInfo(&rInfo)
+ {}
DB_Column( const SwInsDBColumn& rInfo, SwDBField& rField )
- {
- pColInfo = &rInfo;
- DB_ColumnData.pField = &rField;
- eColType = DB_COL_FIELD;
- }
+ : eColType(Type::COL_FIELD),
+ pField(&rField),
+ pColInfo(&rInfo)
+ {}
~DB_Column()
{
- if( DB_COL_FIELD == eColType )
- delete DB_ColumnData.pField;
- else if( DB_FILLTEXT == eColType )
- delete DB_ColumnData.pText;
+ if( Type::COL_FIELD == eColType )
+ delete pField;
+ else if( Type::FILLTEXT == eColType )
+ delete pText;
}
};
@@ -936,7 +931,7 @@ bool SwInsertDBColAutoPilot::SplitTextToColArr( const OUString& rText,
static_cast<SwDBFieldType*>(rSh.InsertFieldType( aFieldType )),
nFormat ) );
if( nSubType )
- pNew->DB_ColumnData.pField->SetSubType( nSubType );
+ pNew->pField->SetSubType( nSubType );
}
else
pNew = new DB_Column( rFndCol, nFormat );
@@ -1281,11 +1276,11 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
OUString sIns;
switch( pDBCol->eColType )
{
- case DB_Column::DB_FILLTEXT:
- sIns = *pDBCol->DB_ColumnData.pText;
+ case DB_Column::Type::FILLTEXT:
+ sIns = *pDBCol->pText;
break;
- case DB_Column::DB_SPLITPARA:
+ case DB_Column::Type::SPLITPARA:
rSh.SplitNode();
// when the template is not the same as the follow template,
// the selected has to be set newly
@@ -1293,10 +1288,10 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
rSh.SetTextFormatColl( pColl );
break;
- case DB_Column::DB_COL_FIELD:
+ case DB_Column::Type::COL_FIELD:
{
std::unique_ptr<SwDBField> pField(static_cast<SwDBField *>(
- pDBCol->DB_ColumnData.pField->CopyField()));
+ pDBCol->pField->CopyField()));
double nValue = DBL_MAX;
Reference< XPropertySet > xColumnProps;
@@ -1330,7 +1325,7 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
}
break;
- case DB_Column::DB_COL_TEXT:
+ case DB_Column::Type::COL_TEXT:
{
double nValue = DBL_MAX;
Reference< XPropertySet > xColumnProps;
@@ -1339,18 +1334,18 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
xColumnProps,
aDBFormatData,
&nValue );
- if( pDBCol->DB_ColumnData.nFormat &&
+ if( pDBCol->nFormat &&
DBL_MAX != nValue )
{
Color* pCol;
- if(rNumFormatr.GetType(pDBCol->DB_ColumnData.nFormat) & css::util::NumberFormat::DATE)
+ if(rNumFormatr.GetType(pDBCol->nFormat) & css::util::NumberFormat::DATE)
{
::Date aStandard(1,1,1900);
if (*rNumFormatr.GetNullDate() != aStandard)
nValue += (aStandard - *rNumFormatr.GetNullDate());
}
rNumFormatr.GetOutputString( nValue,
- pDBCol->DB_ColumnData.nFormat,
+ pDBCol->nFormat,
sIns, &pCol );
}
}
More information about the Libreoffice-commits
mailing list