sc/inc/clipcontext.hxx              |   12 ++---
 sc/inc/column.hxx                   |   12 ++---
 sc/inc/document.hxx                 |   34 +++++++-------
 sc/inc/global.hxx                   |   84 +++++++++++++++++++++++++++---------
 sc/inc/scabstdlg.hxx                |    8 +--
 sc/inc/table.hxx                    |   10 ++--
 sc/qa/unit/ucalc.cxx                |    4 -
 sc/source/core/data/clipcontext.cxx |    4 -
 sc/source/core/data/column.cxx      |   42 +++++++++---------
 sc/source/core/data/column3.cxx     |   32 ++++++-------
 sc/source/core/data/column4.cxx     |   14 +++---
 sc/source/core/data/documen3.cxx    |    2 
 sc/source/core/data/document.cxx    |   40 ++++++++---------
 sc/source/core/data/document10.cxx  |   14 +++---
 sc/source/core/data/table2.cxx      |   12 ++---
 sc/source/core/data/table4.cxx      |    2 
 sc/source/ui/attrdlg/scdlgfact.cxx  |    8 +--
 sc/source/ui/attrdlg/scdlgfact.hxx  |    8 +--
 sc/source/ui/docshell/dbdocimp.cxx  |    2 
 sc/source/ui/docshell/docfunc.cxx   |    6 +-
 sc/source/ui/docshell/impex.cxx     |    6 +-
 sc/source/ui/inc/delcodlg.hxx       |    6 +-
 sc/source/ui/inc/docfunc.hxx        |    2 
 sc/source/ui/inc/inscodlg.hxx       |    8 +--
 sc/source/ui/inc/undoblk.hxx        |   16 +++---
 sc/source/ui/inc/undodat.hxx        |    4 -
 sc/source/ui/inc/viewfunc.hxx       |   16 +++---
 sc/source/ui/miscdlgs/delcodlg.cxx  |   10 ++--
 sc/source/ui/miscdlgs/inscodlg.cxx  |   13 +++--
 sc/source/ui/undo/undoblk.cxx       |   10 ++--
 sc/source/ui/undo/undoblk3.cxx      |   12 ++---
 sc/source/ui/undo/undodat.cxx       |    6 +-
 sc/source/ui/unoobj/cellsuno.cxx    |    4 -
 sc/source/ui/vba/excelvbahelper.cxx |    2 
 sc/source/ui/vba/excelvbahelper.hxx |    2 
 sc/source/ui/vba/vbarange.cxx       |    9 +--
 sc/source/ui/view/cellsh1.cxx       |    8 +--
 sc/source/ui/view/cliputil.cxx      |    2 
 sc/source/ui/view/viewfun2.cxx      |    2 
 sc/source/ui/view/viewfun3.cxx      |   24 +++++-----
 sc/source/ui/view/viewfunc.cxx      |    4 -
 41 files changed, 279 insertions(+), 237 deletions(-)

New commits:
commit 8e4dc1d760d85e09bbc3f3bbb5b8be2947db1b63
Author: Noel Grandin <n...@peralex.com>
Date:   Fri Aug 22 15:15:17 2014 +0200

    create type-safe bitfield for sc insert/delete flags
    
    The most important part of the change is in sc/inc/global.hxx
    
    It creates a type-safe struct that prevents the accidental interaction
    between regular integer types and the flags struct.
    It also provides utility methods that make combining and testing the
    flags type-safe.
    
    Change-Id: Ibc5b20058b1655df913490682b679afd1297b36d
    Reviewed-on: https://gerrit.libreoffice.org/11071
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Eike Rathke <er...@redhat.com>

diff --git a/sc/inc/clipcontext.hxx b/sc/inc/clipcontext.hxx
index 7a2eb44..4017dda 100644
--- a/sc/inc/clipcontext.hxx
+++ b/sc/inc/clipcontext.hxx
@@ -52,8 +52,8 @@ class CopyFromClipContext : public ClipContextBase
     SCTAB mnTabEnd;
     ScDocument* mpRefUndoDoc;
     ScDocument* mpClipDoc;
-    sal_uInt16 mnInsertFlag;
-    sal_uInt16 mnDeleteFlag;
+    InsertDeleteFlags mnInsertFlag;
+    InsertDeleteFlags mnDeleteFlag;
     ScCellValue maSingleCell;
     ScConditionalFormatList* mpCondFormatList;
     const ScPatternAttr* mpSinglePattern;
@@ -76,7 +76,7 @@ public:
     };
 
     CopyFromClipContext(ScDocument& rDoc,
-        ScDocument* pRefUndoDoc, ScDocument* pClipDoc, sal_uInt16 nInsertFlag,
+        ScDocument* pRefUndoDoc, ScDocument* pClipDoc, InsertDeleteFlags 
nInsertFlag,
         bool bAsLink, bool bSkipAttrForEmptyCells);
 
     virtual ~CopyFromClipContext();
@@ -91,10 +91,10 @@ public:
 
     ScDocument* getUndoDoc() { return mpRefUndoDoc;}
     ScDocument* getClipDoc() { return mpClipDoc;}
-    sal_uInt16 getInsertFlag() const { return mnInsertFlag;}
+    InsertDeleteFlags getInsertFlag() const { return mnInsertFlag;}
 
-    void setDeleteFlag( sal_uInt16 nFlag );
-    sal_uInt16 getDeleteFlag() const { return mnDeleteFlag;}
+    void setDeleteFlag( InsertDeleteFlags nFlag );
+    InsertDeleteFlags getDeleteFlag() const { return mnDeleteFlag;}
 
     ScCellValue& getSingleCell() { return maSingleCell;}
 
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index a14a43f..893ef13 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -229,8 +229,8 @@ public:
     void        InsertRow( SCROW nStartRow, SCSIZE nSize );
     void        DeleteRow( SCROW nStartRow, SCSIZE nSize );
     void DeleteArea(
-        SCROW nStartRow, SCROW nEndRow, sal_uInt16 nDelFlag, bool bBroadcast = 
true );
-    void DeleteRanges( const std::vector<sc::RowSpan>& rRanges, sal_uInt16 
nDelFlag, bool bBroadcast );
+        SCROW nStartRow, SCROW nEndRow, InsertDeleteFlags nDelFlag, bool 
bBroadcast = true );
+    void DeleteRanges( const std::vector<sc::RowSpan>& rRanges, 
InsertDeleteFlags nDelFlag, bool bBroadcast );
 
     void CopyToClip(
         sc::CopyToClipContext& rCxt, SCROW nRow1, SCROW nRow2, ScColumn& 
rColumn ) const;
@@ -266,11 +266,11 @@ public:
         const ScRangeList& rRanges, ScFunctionData& rData, 
ScFlatBoolRowSegments& rHiddenRows );
 
     void CopyToColumn(
-        sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, sal_uInt16 
nFlags, bool bMarked,
+        sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, 
InsertDeleteFlags nFlags, bool bMarked,
         ScColumn& rColumn, const ScMarkData* pMarkData = NULL, bool bAsLink = 
false) const;
 
     void UndoToColumn(
-        sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, sal_uInt16 
nFlags, bool bMarked,
+        sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, 
InsertDeleteFlags nFlags, bool bMarked,
         ScColumn& rColumn, const ScMarkData* pMarkData = NULL) const;
 
     void        CopyScenarioFrom( const ScColumn& rSrcCol );
@@ -445,7 +445,7 @@ public:
     void        RemoveProtected( SCROW nStartRow, SCROW nEndRow );
 
     SCsROW      ApplySelectionCache( SfxItemPoolCache* pCache, const 
ScMarkData& rMark, ScEditDataArray* pDataArray = NULL );
-    void DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark, bool 
bBroadcast );
+    void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, 
bool bBroadcast );
 
     void        ClearSelectionItems( const sal_uInt16* pWhich, const 
ScMarkData& rMark );
     void        ChangeSelectionIndent( bool bIncrement, const ScMarkData& 
rMark );
@@ -636,7 +636,7 @@ private:
     void CopyCellTextAttrsToDocument(SCROW nRow1, SCROW nRow2, ScColumn& 
rDestCol) const;
 
     void DeleteCells(
-        sc::ColumnBlockPosition& rBlockPos, SCROW nRow1, SCROW nRow2, 
sal_uInt16 nDelFlag,
+        sc::ColumnBlockPosition& rBlockPos, SCROW nRow1, SCROW nRow2, 
InsertDeleteFlags nDelFlag,
         std::vector<SCROW>& rDeleted );
 
     /**
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index ad99322..88e0623 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1203,10 +1203,10 @@ public:
     void            DeleteObjectsInSelection( const ScMarkData& rMark );
 
     void            DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW 
nRow2,
-                            const ScMarkData& rMark, sal_uInt16 nDelFlag);
-    SC_DLLPUBLIC void            DeleteAreaTab(SCCOL nCol1, SCROW nRow1, SCCOL 
nCol2, SCROW nRow2,
-                                SCTAB nTab, sal_uInt16 nDelFlag);
-    void            DeleteAreaTab(const ScRange& rRange, sal_uInt16 nDelFlag);
+                            const ScMarkData& rMark, InsertDeleteFlags 
nDelFlag);
+    SC_DLLPUBLIC void DeleteAreaTab(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, 
SCROW nRow2,
+                                SCTAB nTab, InsertDeleteFlags nDelFlag);
+    void            DeleteAreaTab(const ScRange& rRange, InsertDeleteFlags 
nDelFlag);
 
     void            CopyToClip(const ScClipParam& rClipParam, ScDocument* 
pClipDoc,
                                const ScMarkData* pMarks = NULL, bool bAllTabs 
= false, bool bKeepScenarioFlags = false,
@@ -1250,14 +1250,14 @@ public:
 
     void            StartListeningFromClip( SCCOL nCol1, SCROW nRow1,
                                         SCCOL nCol2, SCROW nRow2,
-                                        const ScMarkData& rMark, sal_uInt16 
nInsFlag );
+                                        const ScMarkData& rMark, 
InsertDeleteFlags nInsFlag );
     void            BroadcastFromClip( SCCOL nCol1, SCROW nRow1,
                                     SCCOL nCol2, SCROW nRow2,
-                                    const ScMarkData& rMark, sal_uInt16 
nInsFlag );
+                                    const ScMarkData& rMark, InsertDeleteFlags 
nInsFlag );
     /** If pDestRanges is given it overrides rDestRange, rDestRange in this
         case is the overall encompassing range. */
     void            CopyFromClip( const ScRange& rDestRange, const ScMarkData& 
rMark,
-                                    sal_uInt16 nInsFlag,
+                                    InsertDeleteFlags nInsFlag,
                                     ScDocument* pRefUndoDoc = NULL,
                                     ScDocument* pClipDoc = NULL,
                                     bool bResetCut = true,
@@ -1267,7 +1267,7 @@ public:
                                     const ScRangeList * pDestRanges = NULL );
 
     void            CopyMultiRangeFromClip(const ScAddress& rDestPos, const 
ScMarkData& rMark,
-                                           sal_uInt16 nInsFlag, ScDocument* 
pClipDoc,
+                                           InsertDeleteFlags nInsFlag, 
ScDocument* pClipDoc,
                                            bool bResetCut = true, bool bAsLink 
= false,
                                            bool bIncludeFiltered = true,
                                            bool bSkipAttrForEmpty = false);
@@ -1279,7 +1279,7 @@ public:
 
     bool            IsClipboardSource() const;
 
-    SC_DLLPUBLIC void           TransposeClip( ScDocument* pTransClip, 
sal_uInt16 nFlags, bool bAsLink );
+    SC_DLLPUBLIC void           TransposeClip( ScDocument* pTransClip, 
InsertDeleteFlags nFlags, bool bAsLink );
 
     ScClipParam&    GetClipParam();
     void            SetClipParam(const ScClipParam& rParam);
@@ -1288,10 +1288,10 @@ public:
                                     ScDocument* pSrcDoc );
 
     void            FillTab( const ScRange& rSrcArea, const ScMarkData& rMark,
-                                sal_uInt16 nFlags, sal_uInt16 nFunction,
+                                InsertDeleteFlags nFlags, sal_uInt16 nFunction,
                                 bool bSkipEmpty, bool bAsLink );
     void            FillTabMarked( SCTAB nSrcTab, const ScMarkData& rMark,
-                                sal_uInt16 nFlags, sal_uInt16 nFunction,
+                                InsertDeleteFlags nFlags, sal_uInt16 nFunction,
                                 bool bSkipEmpty, bool bAsLink );
 
     void            TransliterateText( const ScMarkData& rMultiMark, sal_Int32 
nType );
@@ -1306,18 +1306,18 @@ public:
                     //  don't use anymore:
     void            CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                                 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
-                                sal_uInt16 nFlags, bool bMarked, ScDocument* 
pDestDoc,
+                                InsertDeleteFlags nFlags, bool bMarked, 
ScDocument* pDestDoc,
                                 const ScMarkData* pMarks = NULL, bool 
bColRowFlags = true);
     void            UndoToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                                 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
-                                sal_uInt16 nFlags, bool bMarked, ScDocument* 
pDestDoc,
+                                InsertDeleteFlags nFlags, bool bMarked, 
ScDocument* pDestDoc,
                                 const ScMarkData* pMarks = NULL);
 
     void            CopyToDocument(const ScRange& rRange,
-                                sal_uInt16 nFlags, bool bMarked, ScDocument* 
pDestDoc,
+                                InsertDeleteFlags nFlags, bool bMarked, 
ScDocument* pDestDoc,
                                 const ScMarkData* pMarks = NULL, bool 
bColRowFlags = true);
     void            UndoToDocument(const ScRange& rRange,
-                                sal_uInt16 nFlags, bool bMarked, ScDocument* 
pDestDoc,
+                                InsertDeleteFlags nFlags, bool bMarked, 
ScDocument* pDestDoc,
                                 const ScMarkData* pMarks = NULL);
 
     void            CopyScenario( SCTAB nSrcTab, SCTAB nDestTab, bool 
bNewScenario = false );
@@ -1486,8 +1486,8 @@ public:
 
     SC_DLLPUBLIC void            ApplySelectionPattern( const ScPatternAttr& 
rAttr, const ScMarkData& rMark,
                                            ScEditDataArray* pDataArray = NULL 
);
-    void DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark, bool 
bBroadcast = true );
-    void DeleteSelectionTab( SCTAB nTab, sal_uInt16 nDelFlag, const 
ScMarkData& rMark, bool bBroadcast = true );
+    void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, 
bool bBroadcast = true );
+    void DeleteSelectionTab( SCTAB nTab, InsertDeleteFlags nDelFlag, const 
ScMarkData& rMark, bool bBroadcast = true );
 
     SC_DLLPUBLIC void           SetColWidth( SCCOL nCol, SCTAB nTab, 
sal_uInt16 nNewWidth );
     SC_DLLPUBLIC void           SetColWidthOnly( SCCOL nCol, SCTAB nTab, 
sal_uInt16 nNewWidth );
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index fb2e120..b475850 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -154,29 +154,71 @@ const ScBreakType BREAK_NONE   = 0;
 const ScBreakType BREAK_PAGE   = 1;
 const ScBreakType BREAK_MANUAL = 2;
 
-// insert/delete flags
-const sal_uInt16 IDF_NONE       = 0x0000;
-const sal_uInt16 IDF_VALUE      = 0x0001;   /// Numeric values (and numeric 
results if IDF_FORMULA is not set).
-const sal_uInt16 IDF_DATETIME   = 0x0002;   /// Dates, times, datetime values.
-const sal_uInt16 IDF_STRING     = 0x0004;   /// Strings (and string results if 
IDF_FORMULA is not set).
-const sal_uInt16 IDF_NOTE       = 0x0008;   /// Cell notes.
-const sal_uInt16 IDF_FORMULA    = 0x0010;   /// Formula cells.
-const sal_uInt16 IDF_HARDATTR   = 0x0020;   /// Hard cell attributes.
-const sal_uInt16 IDF_STYLES     = 0x0040;   /// Cell styles.
-const sal_uInt16 IDF_OBJECTS    = 0x0080;   /// Drawing objects.
-const sal_uInt16 IDF_EDITATTR   = 0x0100;   /// Rich-text attributes.
-const sal_uInt16 IDF_OUTLINE    = 0x0800;   /// Sheet / outlining (grouping) 
information
-const sal_uInt16 IDF_NOCAPTIONS = 0x0200;   /// Internal use only (undo etc.): 
do not copy/delete caption objects of cell notes.
-const sal_uInt16 IDF_ADDNOTES   = 0x0400;   /// Internal use only (copy from 
clip): do not delete existing cell contents when pasting notes.
-const sal_uInt16 IDF_SPECIAL_BOOLEAN = 0x1000;
-const sal_uInt16 IDF_ATTRIB     = IDF_HARDATTR | IDF_STYLES;
-const sal_uInt16 IDF_CONTENTS   = IDF_VALUE | IDF_DATETIME | IDF_STRING | 
IDF_NOTE | IDF_FORMULA | IDF_OUTLINE;
-const sal_uInt16 IDF_ALL        = IDF_CONTENTS | IDF_ATTRIB | IDF_OBJECTS;
-
-BOOST_STATIC_ASSERT((IDF_ATTRIB & IDF_CONTENTS) == 0);
+// insert/delete flags - typesafe bitfield
+struct InsertDeleteFlags SAL_FINAL {
+private:
+    sal_uInt16 v;
+    // hidden so that it doesn't accidentally get called in constructor 
initialiser lists
+    explicit InsertDeleteFlags(sal_uInt16 _v) : v(_v) {}
+public:
+    static InsertDeleteFlags fromInt(sal_uInt16 v) { return 
InsertDeleteFlags(v); }
+    operator bool() const { return v != 0; }
+    sal_uInt16 val() const { return v; }
+    bool operator ==(const InsertDeleteFlags& other) const { return v == 
other.v; }
+    bool operator !=(const InsertDeleteFlags& other) const { return v != 
other.v; }
+private:
+    // disallow implicit conversion to int
+    operator int() const { return v; }
+};
+// make combining these type-safe
+inline InsertDeleteFlags operator| (const InsertDeleteFlags& lhs, const 
InsertDeleteFlags& rhs)
+{
+    return InsertDeleteFlags::fromInt(lhs.val() | rhs.val());
+}
+inline InsertDeleteFlags operator& (const InsertDeleteFlags& lhs, const 
InsertDeleteFlags& rhs)
+{
+    return InsertDeleteFlags::fromInt(lhs.val() & rhs.val());
+}
+inline InsertDeleteFlags& operator|= (InsertDeleteFlags& lhs, const 
InsertDeleteFlags& rhs)
+{
+    lhs = InsertDeleteFlags::fromInt(lhs.val() | rhs.val());
+    return lhs;
+}
+inline InsertDeleteFlags& operator&= (InsertDeleteFlags& lhs, const 
InsertDeleteFlags& rhs)
+{
+    lhs = InsertDeleteFlags::fromInt(lhs.val() & rhs.val());
+    return lhs;
+}
+
+const InsertDeleteFlags IDF_NONE      = InsertDeleteFlags::fromInt(0x0000);
+const InsertDeleteFlags IDF_VALUE     = InsertDeleteFlags::fromInt(0x0001);   
/// Numeric values (and numeric results if IDF_FORMULA is not set).
+const InsertDeleteFlags IDF_DATETIME  = InsertDeleteFlags::fromInt(0x0002);   
/// Dates, times, datetime values.
+const InsertDeleteFlags IDF_STRING    = InsertDeleteFlags::fromInt(0x0004);   
/// Strings (and string results if IDF_FORMULA is not set).
+const InsertDeleteFlags IDF_NOTE      = InsertDeleteFlags::fromInt(0x0008);   
/// Cell notes.
+const InsertDeleteFlags IDF_FORMULA   = InsertDeleteFlags::fromInt(0x0010);   
/// Formula cells.
+const InsertDeleteFlags IDF_HARDATTR  = InsertDeleteFlags::fromInt(0x0020);   
/// Hard cell attributes.
+const InsertDeleteFlags IDF_STYLES    = InsertDeleteFlags::fromInt(0x0040);   
/// Cell styles.
+const InsertDeleteFlags IDF_OBJECTS   = InsertDeleteFlags::fromInt(0x0080);   
/// Drawing objects.
+const InsertDeleteFlags IDF_EDITATTR  = InsertDeleteFlags::fromInt(0x0100);   
/// Rich-text attributes.
+const InsertDeleteFlags IDF_OUTLINE   = InsertDeleteFlags::fromInt(0x0800);   
/// Sheet / outlining (grouping) information
+const InsertDeleteFlags IDF_NOCAPTIONS  = InsertDeleteFlags::fromInt(0x0200);  
 /// Internal use only (undo etc.): do not copy/delete caption objects of cell 
notes.
+const InsertDeleteFlags IDF_ADDNOTES    = InsertDeleteFlags::fromInt(0x0400);  
 /// Internal use only (copy from clip): do not delete existing cell contents 
when pasting notes.
+const InsertDeleteFlags IDF_SPECIAL_BOOLEAN  = 
InsertDeleteFlags::fromInt(0x1000);
+const InsertDeleteFlags IDF_ATTRIB     = IDF_HARDATTR | IDF_STYLES;
+const InsertDeleteFlags IDF_CONTENTS   = IDF_VALUE | IDF_DATETIME | IDF_STRING 
| IDF_NOTE | IDF_FORMULA | IDF_OUTLINE;
+const InsertDeleteFlags IDF_ALL        = IDF_CONTENTS | IDF_ATTRIB | 
IDF_OBJECTS;
+const InsertDeleteFlags IDF_ALL_USED_BITS = IDF_ALL | IDF_EDITATTR | 
IDF_NOCAPTIONS | IDF_ADDNOTES | IDF_SPECIAL_BOOLEAN;
+
+inline InsertDeleteFlags operator~ (const InsertDeleteFlags& rhs)
+{
+    return IDF_ALL_USED_BITS & InsertDeleteFlags::fromInt(~rhs.val());
+}
+
+// boost can't cope with this at the moment, perhaps when we have constexpr we 
can modify InsertDeleteFlags to make it work.
+//BOOST_STATIC_ASSERT((IDF_ATTRIB & IDF_CONTENTS) == IDF_NONE);
 
 /// Copy flags for auto/series fill functions: do not touch notes and drawing 
objects.
-const sal_uInt16 IDF_AUTOFILL   = IDF_ALL & ~(IDF_NOTE | IDF_OBJECTS);
+const InsertDeleteFlags IDF_AUTOFILL   = IDF_ALL & ~(IDF_NOTE | IDF_OBJECTS);
 
 #define PASTE_NOFUNC        0
 #define PASTE_ADD           1
diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx
index 2028a01..4d7ada8 100644
--- a/sc/inc/scabstdlg.hxx
+++ b/sc/inc/scabstdlg.hxx
@@ -125,7 +125,7 @@ class AbstractScDeleteContentsDlg: public VclAbstractDialog
 {
 public:
     virtual void    DisableObjects() = 0 ;
-    virtual sal_uInt16  GetDelContentsCmdBits() const = 0;
+    virtual InsertDeleteFlags GetDelContentsCmdBits() const = 0;
 };
 
 class AbstractScFillSeriesDlg: public VclAbstractDialog
@@ -156,7 +156,7 @@ public:
 class AbstractScInsertContentsDlg : public VclAbstractDialog
 {
 public:
-    virtual sal_uInt16  GetInsContentsCmdBits() const = 0;
+    virtual InsertDeleteFlags GetInsContentsCmdBits() const = 0;
     virtual sal_uInt16  GetFormulaCmdBits() const = 0 ;
     virtual bool        IsSkipEmptyCells() const = 0;
     virtual bool        IsLink() const = 0;
@@ -361,7 +361,7 @@ public:
         ScTabViewShell* pTabViewShell) = 0;
 
     virtual AbstractScDeleteContentsDlg * CreateScDeleteContentsDlg(Window* 
pParent,
-                                                                    sal_uInt16 
 nCheckDefaults = 0) = 0;
+                                                                    
InsertDeleteFlags nCheckDefaults = IDF_NONE) = 0;
     virtual AbstractScFillSeriesDlg * CreateScFillSeriesDlg( Window*        
pParent,
                                                             ScDocument& 
rDocument,
                                                             FillDir     
eFillDir,
@@ -381,7 +381,7 @@ public:
                                                              bool 
bDisallowCellMove = false ) = 0;
 
     virtual AbstractScInsertContentsDlg * CreateScInsertContentsDlg( Window*   
     pParent,
-                                                                    sal_uInt16 
     nCheckDefaults = 0,
+                                                                    
InsertDeleteFlags nCheckDefaults = IDF_NONE,
                                                                     const 
OUString* pStrTitle = NULL ) = 0;
 
     virtual AbstractScInsertTableDlg * CreateScInsertTableDlg(Window* pParent, 
ScViewData& rViewData,
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 6e581ed..fb5d6f9 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -410,7 +410,7 @@ public:
     void DeleteCol(
         const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, 
SCROW nEndRow, SCSIZE nSize, bool* pUndoOutline = NULL );
 
-    void        DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, 
sal_uInt16 nDelFlag);
+    void        DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, 
InsertDeleteFlags nDelFlag);
     void CopyToClip( sc::CopyToClipContext& rCxt, SCCOL nCol1, SCROW nRow1, 
SCCOL nCol2, SCROW nRow2, ScTable* pTable );
     void CopyToClip( sc::CopyToClipContext& rCxt, const ScRangeList& rRanges, 
ScTable* pTable );
 
@@ -439,17 +439,17 @@ public:
 
     void CopyToTable(
         sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, 
SCROW nRow2,
-        sal_uInt16 nFlags, bool bMarked, ScTable* pDestTab,
+        InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab,
         const ScMarkData* pMarkData = NULL, bool bAsLink = false, bool 
bColRowFlags = true );
 
     void UndoToTable(
         sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, 
SCROW nRow2,
-        sal_uInt16 nFlags, bool bMarked, ScTable* pDestTab, const ScMarkData* 
pMarkData = NULL );
+        InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab, const 
ScMarkData* pMarkData = NULL );
 
     void        CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, 
SCROW nRow2,
                             SCsCOL nDx, SCsROW nDy, ScTable* pTable);
     void        TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW 
nRow2,
-                                ScTable* pTransClip, sal_uInt16 nFlags, bool 
bAsLink );
+                                ScTable* pTransClip, InsertDeleteFlags nFlags, 
bool bAsLink );
 
                 // mark of this document
     void MixMarked(
@@ -642,7 +642,7 @@ public:
     bool        RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, 
SCROW nEndRow, sal_Int16 nFlags );
 
     void        ApplySelectionCache( SfxItemPoolCache* pCache, const 
ScMarkData& rMark, ScEditDataArray* pDataArray = NULL );
-    void DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark, bool 
bBroadcast = true );
+    void        DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& 
rMark, bool bBroadcast = true );
 
     void        ClearSelectionItems( const sal_uInt16* pWhich, const 
ScMarkData& rMark );
     void        ChangeSelectionIndent( bool bIncrement, const ScMarkData& 
rMark );
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index fd11810..f90c544 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -4118,7 +4118,7 @@ void Test::testCopyPasteRelativeFormula()
     m_pDoc->CopyToClip(aClipParam, &aClipDoc, &aMark);
 
     // Paste it to B1:B2.
-    sal_uInt16 nFlags = IDF_ALL;
+    InsertDeleteFlags nFlags = IDF_ALL;
     ScRange aDestRange(1,0,0,1,1,0);
     aMark.SetMarkArea(aDestRange);
     m_pDoc->CopyFromClip(aDestRange, aMark, nFlags, NULL, &aClipDoc);
@@ -4665,7 +4665,7 @@ void Test::testCopyPasteFormulasExternalDoc()
     ScDocument* pClipDoc = new ScDocument(SCDOCMODE_CLIP);
     m_pDoc->CopyToClip(aClipParam, pClipDoc, &aMark);
 
-    sal_uInt16 nFlags = IDF_ALL;
+    InsertDeleteFlags nFlags = IDF_ALL;
     aRange = ScRange(1,1,1,1,6,1);
     ScMarkData aMarkData2;
     aMarkData2.SetMarkArea(aRange);
diff --git a/sc/source/core/data/clipcontext.cxx 
b/sc/source/core/data/clipcontext.cxx
index 1afe1f5..6c1e1ea 100644
--- a/sc/source/core/data/clipcontext.cxx
+++ b/sc/source/core/data/clipcontext.cxx
@@ -28,7 +28,7 @@ ColumnBlockPosition* ClipContextBase::getBlockPosition(SCTAB 
nTab, SCCOL nCol)
 }
 
 CopyFromClipContext::CopyFromClipContext(ScDocument& rDoc,
-    ScDocument* pRefUndoDoc, ScDocument* pClipDoc, sal_uInt16 nInsertFlag,
+    ScDocument* pRefUndoDoc, ScDocument* pClipDoc, InsertDeleteFlags 
nInsertFlag,
     bool bAsLink, bool bSkipAttrForEmptyCells) :
     ClipContextBase(rDoc),
     mnDestCol1(-1), mnDestCol2(-1),
@@ -71,7 +71,7 @@ CopyFromClipContext::Range 
CopyFromClipContext::getDestRange() const
     return aRet;
 }
 
-void CopyFromClipContext::setDeleteFlag( sal_uInt16 nFlag )
+void CopyFromClipContext::setDeleteFlag( InsertDeleteFlags nFlag )
 {
     mnDeleteFlag = nFlag;
 }
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index e2cfc74..d6152dd 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -471,7 +471,7 @@ void ScColumn::ClearSelectionItems( const sal_uInt16* 
pWhich,const ScMarkData& r
     }
 }
 
-void ScColumn::DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark, 
bool bBroadcast )
+void ScColumn::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& 
rMark, bool bBroadcast )
 {
     SCROW nTop;
     SCROW nBottom;
@@ -1186,14 +1186,14 @@ void ScColumn::CopyCellToDocument( SCROW nSrcRow, SCROW 
nDestRow, ScColumn& rDes
 
 namespace {
 
-bool canCopyValue(const ScDocument& rDoc, const ScAddress& rPos, sal_uInt16 
nFlags)
+bool canCopyValue(const ScDocument& rDoc, const ScAddress& rPos, 
InsertDeleteFlags nFlags)
 {
     sal_uInt32 nNumIndex = static_cast<const 
SfxUInt32Item*>(rDoc.GetAttr(rPos, ATTR_VALUE_FORMAT))->GetValue();
     short nType = rDoc.GetFormatTable()->GetType(nNumIndex);
     if ((nType == NUMBERFORMAT_DATE) || (nType == NUMBERFORMAT_TIME) || (nType 
== NUMBERFORMAT_DATETIME))
-        return ((nFlags & IDF_DATETIME) != 0);
+        return ((nFlags & IDF_DATETIME) != IDF_NONE);
 
-    return ((nFlags & IDF_VALUE) != 0);
+    return (nFlags & IDF_VALUE) != IDF_NONE;
 }
 
 class CopyAsLinkHandler
@@ -1202,7 +1202,7 @@ class CopyAsLinkHandler
     ScColumn& mrDestCol;
     sc::ColumnBlockPosition maDestPos;
     sc::ColumnBlockPosition* mpDestPos;
-    sal_uInt16 mnCopyFlags;
+    InsertDeleteFlags mnCopyFlags;
 
     void setDefaultAttrToDest(size_t nRow)
     {
@@ -1247,7 +1247,7 @@ class CopyAsLinkHandler
     }
 
 public:
-    CopyAsLinkHandler(const ScColumn& rSrcCol, ScColumn& rDestCol, 
sc::ColumnBlockPosition* pDestPos, sal_uInt16 nCopyFlags) :
+    CopyAsLinkHandler(const ScColumn& rSrcCol, ScColumn& rDestCol, 
sc::ColumnBlockPosition* pDestPos, InsertDeleteFlags nCopyFlags) :
         mrSrcCol(rSrcCol), mrDestCol(rDestCol), mpDestPos(pDestPos), 
mnCopyFlags(nCopyFlags)
     {
         if (mpDestPos)
@@ -1266,7 +1266,7 @@ public:
 
         if (mnCopyFlags & (IDF_NOTE|IDF_ADDNOTES))
         {
-            bool bCloneCaption = (mnCopyFlags & IDF_NOCAPTIONS) == 0;
+            bool bCloneCaption = (mnCopyFlags & IDF_NOCAPTIONS) == IDF_NONE;
             duplicateNotes(nRow, nDataSize, bCloneCaption );
         }
 
@@ -1274,7 +1274,7 @@ public:
         {
             case sc::element_type_numeric:
             {
-                if ((mnCopyFlags & (IDF_DATETIME|IDF_VALUE)) == 0)
+                if ((mnCopyFlags & (IDF_DATETIME|IDF_VALUE)) == IDF_NONE)
                     return;
 
                 sc::numeric_block::const_iterator it = 
sc::numeric_block::begin(*aNode.data);
@@ -1323,7 +1323,7 @@ class CopyByCloneHandler
     sc::ColumnBlockPosition maDestPos;
     sc::ColumnBlockPosition* mpDestPos;
     svl::SharedStringPool* mpSharedStringPool;
-    sal_uInt16 mnCopyFlags;
+    InsertDeleteFlags mnCopyFlags;
 
     void setDefaultAttrToDest(size_t nRow)
     {
@@ -1342,11 +1342,11 @@ class CopyByCloneHandler
     {
         ScAddress aDestPos(mrDestCol.GetCol(), nRow, mrDestCol.GetTab());
 
-        bool bCloneValue          = (mnCopyFlags & IDF_VALUE) != 0;
-        bool bCloneDateTime       = (mnCopyFlags & IDF_DATETIME) != 0;
-        bool bCloneString         = (mnCopyFlags & IDF_STRING) != 0;
-        bool bCloneSpecialBoolean = (mnCopyFlags & IDF_SPECIAL_BOOLEAN) != 0;
-        bool bCloneFormula        = (mnCopyFlags & IDF_FORMULA) != 0;
+        bool bCloneValue          = (mnCopyFlags & IDF_VALUE) != IDF_NONE;
+        bool bCloneDateTime       = (mnCopyFlags & IDF_DATETIME) != IDF_NONE;
+        bool bCloneString         = (mnCopyFlags & IDF_STRING) != IDF_NONE;
+        bool bCloneSpecialBoolean = (mnCopyFlags & IDF_SPECIAL_BOOLEAN) != 
IDF_NONE;
+        bool bCloneFormula        = (mnCopyFlags & IDF_FORMULA) != IDF_NONE;
 
         bool bForceFormula = false;
 
@@ -1437,7 +1437,7 @@ class CopyByCloneHandler
 
 public:
     CopyByCloneHandler(const ScColumn& rSrcCol, ScColumn& rDestCol, 
sc::ColumnBlockPosition* pDestPos,
-            sal_uInt16 nCopyFlags, svl::SharedStringPool* pSharedStringPool) :
+            InsertDeleteFlags nCopyFlags, svl::SharedStringPool* 
pSharedStringPool) :
         mrSrcCol(rSrcCol), mrDestCol(rDestCol), mpDestPos(pDestPos), 
mpSharedStringPool(pSharedStringPool),
         mnCopyFlags(nCopyFlags)
     {
@@ -1457,7 +1457,7 @@ public:
 
         if (mnCopyFlags & (IDF_NOTE|IDF_ADDNOTES))
         {
-            bool bCloneCaption = (mnCopyFlags & IDF_NOCAPTIONS) == 0;
+            bool bCloneCaption = (mnCopyFlags & IDF_NOCAPTIONS) == IDF_NONE;
             duplicateNotes(nRow, nDataSize, bCloneCaption );
         }
 
@@ -1465,7 +1465,7 @@ public:
         {
             case sc::element_type_numeric:
             {
-                if ((mnCopyFlags & (IDF_DATETIME|IDF_VALUE)) == 0)
+                if ((mnCopyFlags & (IDF_DATETIME|IDF_VALUE)) == IDF_NONE)
                     return;
 
                 sc::numeric_block::const_iterator it = 
sc::numeric_block::begin(*aNode.data);
@@ -1566,7 +1566,7 @@ public:
 
 void ScColumn::CopyToColumn(
     sc::CopyToDocContext& rCxt,
-    SCROW nRow1, SCROW nRow2, sal_uInt16 nFlags, bool bMarked, ScColumn& 
rColumn,
+    SCROW nRow1, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, 
ScColumn& rColumn,
     const ScMarkData* pMarkData, bool bAsLink) const
 {
     if (bMarked)
@@ -1590,7 +1590,7 @@ void ScColumn::CopyToColumn(
         return;
     }
 
-    if ( (nFlags & IDF_ATTRIB) != 0 )
+    if ( (nFlags & IDF_ATTRIB) != IDF_NONE )
     {
         if ( (nFlags & IDF_STYLES) != IDF_STYLES )
         {   // keep the StyleSheets in the target document
@@ -1609,7 +1609,7 @@ void ScColumn::CopyToColumn(
             pAttrArray->CopyArea( nRow1, nRow2, 0, *rColumn.pAttrArray);
     }
 
-    if ((nFlags & IDF_CONTENTS) != 0)
+    if ((nFlags & IDF_CONTENTS) != IDF_NONE)
     {
         if (bAsLink)
         {
@@ -1633,7 +1633,7 @@ void ScColumn::CopyToColumn(
 }
 
 void ScColumn::UndoToColumn(
-    sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, sal_uInt16 nFlags, 
bool bMarked,
+    sc::CopyToDocContext& rCxt, SCROW nRow1, SCROW nRow2, InsertDeleteFlags 
nFlags, bool bMarked,
     ScColumn& rColumn, const ScMarkData* pMarkData ) const
 {
     if (nRow1 > 0)
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 4947d9f..5723b73 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -500,7 +500,7 @@ class DeleteAreaHandler
     bool mbFormula:1;
 
 public:
-    DeleteAreaHandler(ScDocument& rDoc, sal_uInt16 nDelFlag) :
+    DeleteAreaHandler(ScDocument& rDoc, InsertDeleteFlags nDelFlag) :
         mrDoc(rDoc),
         mbNumeric(nDelFlag & IDF_VALUE),
         mbString(nDelFlag & IDF_STRING),
@@ -592,7 +592,7 @@ public:
 }
 
 void ScColumn::DeleteCells(
-    sc::ColumnBlockPosition& rBlockPos, SCROW nRow1, SCROW nRow2, sal_uInt16 
nDelFlag,
+    sc::ColumnBlockPosition& rBlockPos, SCROW nRow1, SCROW nRow2, 
InsertDeleteFlags nDelFlag,
     std::vector<SCROW>& rDeleted )
 {
     // Determine which cells to delete based on the deletion flags.
@@ -615,13 +615,13 @@ void ScColumn::DeleteCells(
 }
 
 void ScColumn::DeleteArea(
-    SCROW nStartRow, SCROW nEndRow, sal_uInt16 nDelFlag, bool bBroadcast )
+    SCROW nStartRow, SCROW nEndRow, InsertDeleteFlags nDelFlag, bool 
bBroadcast )
 {
-    sal_uInt16 nContMask = IDF_CONTENTS;
+    InsertDeleteFlags nContMask = IDF_CONTENTS;
     // IDF_NOCAPTIONS needs to be passed too, if IDF_NOTE is set
     if( nDelFlag & IDF_NOTE )
         nContMask |= IDF_NOCAPTIONS;
-    sal_uInt16 nContFlag = nDelFlag & nContMask;
+    InsertDeleteFlags nContFlag = nDelFlag & nContMask;
 
     std::vector<SCROW> aDeletedRows;
 
@@ -636,7 +636,7 @@ void ScColumn::DeleteArea(
 
     if ( nDelFlag & IDF_EDITATTR )
     {
-        OSL_ENSURE( nContFlag == 0, "DeleteArea: Wrong Flags" );
+        OSL_ENSURE( nContFlag == IDF_NONE, "DeleteArea: Wrong Flags" );
         RemoveEditAttribs( nStartRow, nEndRow );
     }
 
@@ -755,23 +755,23 @@ public:
         SCROW nSrcRow1 = node.position + nOffset;
         bool bCopyCellNotes = mrCxt.isCloneNotes();
 
-        sal_uInt16 nFlags = mrCxt.getInsertFlag();
+        InsertDeleteFlags nFlags = mrCxt.getInsertFlag();
 
         if (node.type == sc::element_type_empty)
         {
             if (bCopyCellNotes && !mrCxt.isSkipAttrForEmptyCells())
             {
-                bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == 0;
+                bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == IDF_NONE;
                 duplicateNotes(nSrcRow1, nDataSize, bCloneCaption );
             }
             return;
         }
 
-        bool bNumeric = (nFlags & IDF_VALUE) != 0;
-        bool bDateTime = (nFlags & IDF_DATETIME) != 0;
-        bool bString   = (nFlags & IDF_STRING) != 0;
-        bool bBoolean  = (nFlags & IDF_SPECIAL_BOOLEAN) != 0;
-        bool bFormula  = (nFlags & IDF_FORMULA) != 0;
+        bool bNumeric = (nFlags & IDF_VALUE) != IDF_NONE;
+        bool bDateTime = (nFlags & IDF_DATETIME) != IDF_NONE;
+        bool bString   = (nFlags & IDF_STRING) != IDF_NONE;
+        bool bBoolean  = (nFlags & IDF_SPECIAL_BOOLEAN) != IDF_NONE;
+        bool bFormula  = (nFlags & IDF_FORMULA) != IDF_NONE;
 
         bool bAsLink = mrCxt.isAsLink();
 
@@ -944,7 +944,7 @@ public:
         }
         if (bCopyCellNotes)
         {
-            bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == 0;
+            bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == IDF_NONE;
             duplicateNotes(nSrcRow1, nDataSize, bCloneCaption );
         }
     }
@@ -958,7 +958,7 @@ public:
 void ScColumn::CopyFromClip(
     sc::CopyFromClipContext& rCxt, SCROW nRow1, SCROW nRow2, long nDy, 
ScColumn& rColumn )
 {
-    if ((rCxt.getInsertFlag() & IDF_ATTRIB) != 0)
+    if ((rCxt.getInsertFlag() & IDF_ATTRIB) != IDF_NONE)
     {
         if (rCxt.isSkipAttrForEmptyCells())
         {
@@ -973,7 +973,7 @@ void ScColumn::CopyFromClip(
         else
             rColumn.pAttrArray->CopyAreaSafe( nRow1, nRow2, nDy, *pAttrArray );
     }
-    if ((rCxt.getInsertFlag() & IDF_CONTENTS) == 0)
+    if ((rCxt.getInsertFlag() & IDF_CONTENTS) == IDF_NONE)
         return;
 
     if (rCxt.isAsLink() && rCxt.getInsertFlag() == IDF_ALL)
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 3f26db1..e66df70 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -97,7 +97,7 @@ void ScColumn::DeleteBeforeCopyFromClip( 
sc::CopyFromClipContext& rCxt, const Sc
     }
 
     std::vector<SCROW> aDeletedRows;
-    sal_uInt16 nDelFlag = rCxt.getDeleteFlag();
+    InsertDeleteFlags nDelFlag = rCxt.getDeleteFlag();
     sc::ColumnBlockPosition aBlockPos;
     InitBlockPosition(aBlockPos);
 
@@ -150,9 +150,9 @@ void ScColumn::CopyOneCellFromClip( 
sc::CopyFromClipContext& rCxt, SCROW nRow1,
 
     ScCellValue& rSrcCell = rCxt.getSingleCell();
 
-    sal_uInt16 nFlags = rCxt.getInsertFlag();
+    InsertDeleteFlags nFlags = rCxt.getInsertFlag();
 
-    if ((nFlags & IDF_ATTRIB) != 0)
+    if ((nFlags & IDF_ATTRIB) != IDF_NONE)
     {
         if (!rCxt.isSkipAttrForEmptyCells() || rSrcCell.meType != 
CELLTYPE_NONE)
         {
@@ -161,7 +161,7 @@ void ScColumn::CopyOneCellFromClip( 
sc::CopyFromClipContext& rCxt, SCROW nRow1,
         }
     }
 
-    if ((nFlags & IDF_CONTENTS) != 0)
+    if ((nFlags & IDF_CONTENTS) != IDF_NONE)
     {
         std::vector<sc::CellTextAttr> aTextAttrs(nDestSize);
 
@@ -223,7 +223,7 @@ void ScColumn::CopyOneCellFromClip( 
sc::CopyFromClipContext& rCxt, SCROW nRow1,
     }
 
     const ScPostIt* pNote = rCxt.getSingleCellNote();
-    if (pNote && (nFlags & (IDF_NOTE | IDF_ADDNOTES)) != 0)
+    if (pNote && (nFlags & (IDF_NOTE | IDF_ADDNOTES)) != IDF_NONE)
     {
         // Duplicate the cell note over the whole pasted range.
 
@@ -234,7 +234,7 @@ void ScColumn::CopyOneCellFromClip( 
sc::CopyFromClipContext& rCxt, SCROW nRow1,
         aNotes.reserve(nDestSize);
         for (size_t i = 0; i < nDestSize; ++i)
         {
-            bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == 0;
+            bool bCloneCaption = (nFlags & IDF_NOCAPTIONS) == IDF_NONE;
             aNotes.push_back(pNote->Clone(rSrcPos, *pDocument, aDestPos, 
bCloneCaption));
             aDestPos.IncRow();
         }
@@ -322,7 +322,7 @@ void ScColumn::CopyCellValuesFrom( SCROW nRow, const 
sc::CellValues& rSrc )
     BroadcastCells(aRows, SC_HINT_DATACHANGED);
 }
 
-void ScColumn::DeleteRanges( const std::vector<sc::RowSpan>& rRanges, 
sal_uInt16 nDelFlag, bool bBroadcast )
+void ScColumn::DeleteRanges( const std::vector<sc::RowSpan>& rRanges, 
InsertDeleteFlags nDelFlag, bool bBroadcast )
 {
     std::vector<sc::RowSpan>::const_iterator itSpan = rRanges.begin(), 
itSpanEnd = rRanges.end();
     for (; itSpan != itSpanEnd; ++itSpan)
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 1838d13..5b86ed9 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -1963,7 +1963,7 @@ void ScDocument::DoMerge( SCTAB nTab, SCCOL nStartCol, 
SCROW nStartRow,
         ApplyFlagsTab( nStartCol+1, nStartRow+1, nEndCol, nEndRow, nTab, 
SC_MF_HOR | SC_MF_VER );
 
     // Remove all covered notes (removed captions are collected by drawing 
undo if active)
-    sal_uInt16 nDelFlag = IDF_NOTE | (bDeleteCaptions ? 0 : IDF_NOCAPTIONS);
+    InsertDeleteFlags nDelFlag = IDF_NOTE | (bDeleteCaptions ? IDF_NONE : 
IDF_NOCAPTIONS);
     if( nStartCol < nEndCol )
         DeleteAreaTab( nStartCol + 1, nStartRow, nEndCol, nStartRow, nTab, 
nDelFlag );
     if( nStartRow < nEndRow )
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 3887f91..406f0f1 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -1763,7 +1763,7 @@ void ScDocument::FitBlock( const ScRange& rOld, const 
ScRange& rNew, bool bClear
 
 void ScDocument::DeleteArea(SCCOL nCol1, SCROW nRow1,
                             SCCOL nCol2, SCROW nRow2,
-                            const ScMarkData& rMark, sal_uInt16 nDelFlag)
+                            const ScMarkData& rMark, InsertDeleteFlags 
nDelFlag)
 {
     PutInOrder( nCol1, nCol2 );
     PutInOrder( nRow1, nRow2 );
@@ -1778,7 +1778,7 @@ void ScDocument::DeleteArea(SCCOL nCol1, SCROW nRow1,
 
 void ScDocument::DeleteAreaTab(SCCOL nCol1, SCROW nRow1,
                                 SCCOL nCol2, SCROW nRow2,
-                                SCTAB nTab, sal_uInt16 nDelFlag)
+                                SCTAB nTab, InsertDeleteFlags nDelFlag)
 {
     PutInOrder( nCol1, nCol2 );
     PutInOrder( nRow1, nRow2 );
@@ -1791,7 +1791,7 @@ void ScDocument::DeleteAreaTab(SCCOL nCol1, SCROW nRow1,
     }
 }
 
-void ScDocument::DeleteAreaTab( const ScRange& rRange, sal_uInt16 nDelFlag )
+void ScDocument::DeleteAreaTab( const ScRange& rRange, InsertDeleteFlags 
nDelFlag )
 {
     for ( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); nTab++ )
         DeleteAreaTab( rRange.aStart.Col(), rRange.aStart.Row(),
@@ -1903,7 +1903,7 @@ bool ScDocument::IsCutMode()
 
 void ScDocument::CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                             SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
-                            sal_uInt16 nFlags, bool bOnlyMarked, ScDocument* 
pDestDoc,
+                            InsertDeleteFlags nFlags, bool bOnlyMarked, 
ScDocument* pDestDoc,
                             const ScMarkData* pMarks, bool bColRowFlags )
 {
     PutInOrder( nCol1, nCol2 );
@@ -1930,7 +1930,7 @@ void ScDocument::CopyToDocument(SCCOL nCol1, SCROW nRow1, 
SCTAB nTab1,
 
 void ScDocument::UndoToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                             SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
-                            sal_uInt16 nFlags, bool bOnlyMarked, ScDocument* 
pDestDoc,
+                            InsertDeleteFlags nFlags, bool bOnlyMarked, 
ScDocument* pDestDoc,
                             const ScMarkData* pMarks)
 {
     PutInOrder( nCol1, nCol2 );
@@ -1959,7 +1959,7 @@ void ScDocument::UndoToDocument(SCCOL nCol1, SCROW nRow1, 
SCTAB nTab1,
 }
 
 void ScDocument::CopyToDocument(const ScRange& rRange,
-                            sal_uInt16 nFlags, bool bOnlyMarked, ScDocument* 
pDestDoc,
+                            InsertDeleteFlags nFlags, bool bOnlyMarked, 
ScDocument* pDestDoc,
                             const ScMarkData* pMarks, bool bColRowFlags)
 {
     ScRange aNewRange = rRange;
@@ -1985,7 +1985,7 @@ void ScDocument::CopyToDocument(const ScRange& rRange,
 }
 
 void ScDocument::UndoToDocument(const ScRange& rRange,
-                            sal_uInt16 nFlags, bool bOnlyMarked, ScDocument* 
pDestDoc,
+                            InsertDeleteFlags nFlags, bool bOnlyMarked, 
ScDocument* pDestDoc,
                             const ScMarkData* pMarks)
 {
     sc::AutoCalcSwitch aAutoCalcSwitch(*this, false);
@@ -2182,7 +2182,7 @@ void ScDocument::CopyTabToClip(SCCOL nCol1, SCROW nRow1,
     }
 }
 
-void ScDocument::TransposeClip( ScDocument* pTransClip, sal_uInt16 nFlags, 
bool bAsLink )
+void ScDocument::TransposeClip( ScDocument* pTransClip, InsertDeleteFlags 
nFlags, bool bAsLink )
 {
     OSL_ENSURE( bIsClip && pTransClip && pTransClip->bIsClip,
                     "TransposeClip with wrong Document" );
@@ -2408,7 +2408,7 @@ bool ScDocument::IsClipboardSource() const
 
 void ScDocument::StartListeningFromClip( SCCOL nCol1, SCROW nRow1,
                                         SCCOL nCol2, SCROW nRow2,
-                                        const ScMarkData& rMark, sal_uInt16 
nInsFlag )
+                                        const ScMarkData& rMark, 
InsertDeleteFlags nInsFlag )
 {
     if (nInsFlag & IDF_CONTENTS)
     {
@@ -2423,7 +2423,7 @@ void ScDocument::StartListeningFromClip( SCCOL nCol1, 
SCROW nRow1,
 
 void ScDocument::BroadcastFromClip( SCCOL nCol1, SCROW nRow1,
                                     SCCOL nCol2, SCROW nRow2,
-                                    const ScMarkData& rMark, sal_uInt16 
nInsFlag )
+                                    const ScMarkData& rMark, InsertDeleteFlags 
nInsFlag )
 {
     if (nInsFlag & IDF_CONTENTS)
     {
@@ -2577,7 +2577,7 @@ void ScDocument::CopyNonFilteredFromClip(
 }
 
 void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& 
rMark,
-                                sal_uInt16 nInsFlag,
+                                InsertDeleteFlags nInsFlag,
                                 ScDocument* pRefUndoDoc, ScDocument* pClipDoc, 
bool bResetCut,
                                 bool bAsLink, bool bIncludeFiltered, bool 
bSkipAttrForEmpty,
                                 const ScRangeList * pDestRanges )
@@ -2636,7 +2636,7 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, 
const ScMarkData& rMar
         overwrite/delete existing cells but to insert the notes into
         these cells. In this case, just delete old notes from the
         destination area. */
-    sal_uInt16 nDelFlag = IDF_NONE;
+    InsertDeleteFlags nDelFlag = IDF_NONE;
     if ( (nInsFlag & (IDF_CONTENTS | IDF_ADDNOTES)) == (IDF_NOTE | 
IDF_ADDNOTES) )
         nDelFlag |= IDF_NOTE;
     else if ( nInsFlag & IDF_CONTENTS )
@@ -2783,7 +2783,7 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, 
const ScMarkData& rMar
 }
 
 void ScDocument::CopyMultiRangeFromClip(
-    const ScAddress& rDestPos, const ScMarkData& rMark, sal_uInt16 nInsFlag, 
ScDocument* pClipDoc,
+    const ScAddress& rDestPos, const ScMarkData& rMark, InsertDeleteFlags 
nInsFlag, ScDocument* pClipDoc,
     bool bResetCut, bool bAsLink, bool /*bIncludeFiltered*/, bool 
bSkipAttrForEmpty)
 {
     if (bIsClip)
@@ -2810,7 +2810,7 @@ void ScDocument::CopyMultiRangeFromClip(
     if (!bSkipAttrForEmpty)
     {
         // Do the deletion first.
-        sal_uInt16 nDelFlag = IDF_CONTENTS;
+        InsertDeleteFlags nDelFlag = IDF_CONTENTS;
         SCCOL nColSize = rClipParam.getPasteColSize();
         SCROW nRowSize = rClipParam.getPasteRowSize();
 
@@ -2986,10 +2986,10 @@ void ScDocument::MixDocument( const ScRange& rRange, 
sal_uInt16 nFunction, bool
 }
 
 void ScDocument::FillTab( const ScRange& rSrcArea, const ScMarkData& rMark,
-                                sal_uInt16 nFlags, sal_uInt16 nFunction,
+                                InsertDeleteFlags nFlags, sal_uInt16 nFunction,
                                 bool bSkipEmpty, bool bAsLink )
 {
-    sal_uInt16 nDelFlags = nFlags;
+    InsertDeleteFlags nDelFlags = nFlags;
     if (nDelFlags & IDF_CONTENTS)
         nDelFlags |= IDF_CONTENTS;          // immer alle Inhalte oder keine 
loeschen!
 
@@ -3049,10 +3049,10 @@ void ScDocument::FillTab( const ScRange& rSrcArea, 
const ScMarkData& rMark,
 }
 
 void ScDocument::FillTabMarked( SCTAB nSrcTab, const ScMarkData& rMark,
-                                sal_uInt16 nFlags, sal_uInt16 nFunction,
+                                InsertDeleteFlags nFlags, sal_uInt16 nFunction,
                                 bool bSkipEmpty, bool bAsLink )
 {
-    sal_uInt16 nDelFlags = nFlags;
+    InsertDeleteFlags nDelFlags = nFlags;
     if (nDelFlags & IDF_CONTENTS)
         nDelFlags |= IDF_CONTENTS;          // immer alle Inhalte oder keine 
loeschen!
 
@@ -5461,7 +5461,7 @@ void ScDocument::ClearSelectionItems( const sal_uInt16* 
pWhich, const ScMarkData
             maTabs[*itr]->ClearSelectionItems( pWhich, rMark );
 }
 
-void ScDocument::DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& 
rMark, bool bBroadcast )
+void ScDocument::DeleteSelection( InsertDeleteFlags nDelFlag, const 
ScMarkData& rMark, bool bBroadcast )
 {
     SCTAB nMax = static_cast<SCTAB>(maTabs.size());
     ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
@@ -5471,7 +5471,7 @@ void ScDocument::DeleteSelection( sal_uInt16 nDelFlag, 
const ScMarkData& rMark,
 }
 
 void ScDocument::DeleteSelectionTab(
-    SCTAB nTab, sal_uInt16 nDelFlag, const ScMarkData& rMark, bool bBroadcast )
+    SCTAB nTab, InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool 
bBroadcast )
 {
     if (ValidTab(nTab) && nTab < static_cast<SCTAB>(maTabs.size()) && 
maTabs[nTab])
         maTabs[nTab]->DeleteSelection(nDelFlag, rMark, bBroadcast);
diff --git a/sc/source/core/data/document10.cxx 
b/sc/source/core/data/document10.cxx
index 983e794..90856d2 100644
--- a/sc/source/core/data/document10.cxx
+++ b/sc/source/core/data/document10.cxx
@@ -95,12 +95,12 @@ bool ScDocument::CopyOneCellFromClip(
 
         // Check the paste flag to see whether we want to paste this cell.  If 
the
         // flag says we don't want to paste this cell, we'll return with true.
-        sal_uInt16 nFlags = rCxt.getInsertFlag();
-        bool bNumeric  = (nFlags & IDF_VALUE) != 0;
-        bool bDateTime = (nFlags & IDF_DATETIME) != 0;
-        bool bString   = (nFlags & IDF_STRING) != 0;
-        bool bBoolean  = (nFlags & IDF_SPECIAL_BOOLEAN) != 0;
-        bool bFormula  = (nFlags & IDF_FORMULA) != 0;
+        InsertDeleteFlags nFlags = rCxt.getInsertFlag();
+        bool bNumeric  = (nFlags & IDF_VALUE) != IDF_NONE;
+        bool bDateTime = (nFlags & IDF_DATETIME) != IDF_NONE;
+        bool bString   = (nFlags & IDF_STRING) != IDF_NONE;
+        bool bBoolean  = (nFlags & IDF_SPECIAL_BOOLEAN) != IDF_NONE;
+        bool bFormula  = (nFlags & IDF_FORMULA) != IDF_NONE;
 
         switch (rSrcCell.meType)
         {
@@ -196,7 +196,7 @@ bool ScDocument::CopyOneCellFromClip(
         }
     }
 
-    if ((rCxt.getInsertFlag() & (IDF_NOTE | IDF_ADDNOTES)) != 0)
+    if ((rCxt.getInsertFlag() & (IDF_NOTE | IDF_ADDNOTES)) != IDF_NONE)
         rCxt.setSingleCellNote(pClipDoc->GetNote(aSrcPos));
 
     // All good. Proceed with the pasting.
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 657ab6f..22aef02 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -412,7 +412,7 @@ void ScTable::DeleteCol(
         SetStreamValid(false);
 }
 
-void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, 
sal_uInt16 nDelFlag)
+void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, 
InsertDeleteFlags nDelFlag)
 {
     if (nCol2 > MAXCOL) nCol2 = MAXCOL;
     if (nRow2 > MAXROW) nRow2 = MAXROW;
@@ -443,7 +443,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL 
nCol2, SCROW nRow2, sal
         SetStreamValid(false);
 }
 
-void ScTable::DeleteSelection( sal_uInt16 nDelFlag, const ScMarkData& rMark, 
bool bBroadcast )
+void ScTable::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& 
rMark, bool bBroadcast )
 {
     {   // scope for bulk broadcast
         ScBulkBroadcast aBulkBroadcast( pDocument->GetBASM());
@@ -659,7 +659,7 @@ void ScTable::CopyFromClip(
                 aCol[i].ClearItems(nRow1, nRow2, nWhichArray);
         }
 
-        if ((rCxt.getInsertFlag() & IDF_ATTRIB) != 0)
+        if ((rCxt.getInsertFlag() & IDF_ATTRIB) != IDF_NONE)
         {
             if (nRow1==0 && nRow2==MAXROW && pColWidth && pTable->pColWidth)
                 for (SCCOL i=nCol1; i<=nCol2; i++)
@@ -812,7 +812,7 @@ public:
 }
 
 void ScTable::TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW 
nRow2,
-                                ScTable* pTransClip, sal_uInt16 nFlags, bool 
bAsLink )
+                                ScTable* pTransClip, InsertDeleteFlags nFlags, 
bool bAsLink )
 {
     bool bWasCut = pDocument->IsCutMode();
 
@@ -1055,7 +1055,7 @@ void ScTable::StartListeningInArea(
 
 void ScTable::CopyToTable(
     sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW 
nRow2,
-    sal_uInt16 nFlags, bool bMarked, ScTable* pDestTab, const ScMarkData* 
pMarkData,
+    InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab, const 
ScMarkData* pMarkData,
     bool bAsLink, bool bColRowFlags )
 {
     if (!ValidColRow(nCol1, nRow1) || !ValidColRow(nCol2, nRow2))
@@ -1175,7 +1175,7 @@ void ScTable::CopyToTable(
 
 void ScTable::UndoToTable(
     sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW 
nRow2,
-    sal_uInt16 nFlags, bool bMarked, ScTable* pDestTab, const ScMarkData* 
pMarkData )
+    InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab, const 
ScMarkData* pMarkData )
 {
     if (ValidColRow(nCol1, nRow1) && ValidColRow(nCol2, nRow2))
     {
diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
index 0a90209..5b96603 100644
--- a/sc/source/core/data/table4.cxx
+++ b/sc/source/core/data/table4.cxx
@@ -1487,7 +1487,7 @@ void ScTable::FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL 
nCol2, SCROW nRow2,
     SCCOLROW nIMin = nIStart;
     SCCOLROW nIMax = nIEnd;
     PutInOrder(nIMin,nIMax);
-    sal_uInt16 nDel = bAttribs ? IDF_AUTOFILL : (IDF_AUTOFILL & IDF_CONTENTS);
+    InsertDeleteFlags nDel = bAttribs ? IDF_AUTOFILL : (IDF_AUTOFILL & 
IDF_CONTENTS);
 
     bool bIsFiltered = IsDataFiltered(aFillRange);
     if (!bIsFiltered)
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx 
b/sc/source/ui/attrdlg/scdlgfact.cxx
index 807863c..85667ea 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -242,7 +242,7 @@ void AbstractScDeleteContentsDlg_Impl::DisableObjects()
     pDlg->DisableObjects();
 }
 
-sal_uInt16   AbstractScDeleteContentsDlg_Impl::GetDelContentsCmdBits() const
+InsertDeleteFlags AbstractScDeleteContentsDlg_Impl::GetDelContentsCmdBits() 
const
 {
     return pDlg->GetDelContentsCmdBits();
 }
@@ -297,7 +297,7 @@ InsCellCmd  AbstractScInsertCellDlg_Impl::GetInsCellCmd() 
const
     return pDlg->GetInsCellCmd();
 }
 
-sal_uInt16 AbstractScInsertContentsDlg_Impl::GetInsContentsCmdBits() const
+InsertDeleteFlags AbstractScInsertContentsDlg_Impl::GetInsContentsCmdBits() 
const
 {
     return pDlg->GetInsContentsCmdBits();
 }
@@ -701,7 +701,7 @@ AbstractScDataFormDlg* 
ScAbstractDialogFactory_Impl::CreateScDataFormDlg(Window*
 }
 
 AbstractScDeleteContentsDlg* 
ScAbstractDialogFactory_Impl::CreateScDeleteContentsDlg(Window* pParent,
-                                                                               
      sal_uInt16  nCheckDefaults)
+                                                                               
      InsertDeleteFlags nCheckDefaults)
 {
     ScDeleteContentsDlg* pDlg = new ScDeleteContentsDlg(pParent, 
nCheckDefaults);
     return new AbstractScDeleteContentsDlg_Impl( pDlg );
@@ -749,7 +749,7 @@ AbstractScInsertCellDlg * 
ScAbstractDialogFactory_Impl::CreateScInsertCellDlg( W
 }
 
 AbstractScInsertContentsDlg * 
ScAbstractDialogFactory_Impl::CreateScInsertContentsDlg( Window*      pParent,
-                                                                               
     sal_uInt16      nCheckDefaults,
+                                                                               
     InsertDeleteFlags nCheckDefaults,
                                                                                
     const OUString* pStrTitle )
 {
     ScInsertContentsDlg * pDlg = new ScInsertContentsDlg(pParent, 
nCheckDefaults, pStrTitle);
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx 
b/sc/source/ui/attrdlg/scdlgfact.hxx
index 70c9000..a0c8be1 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -177,7 +177,7 @@ class AbstractScDeleteContentsDlg_Impl : public 
AbstractScDeleteContentsDlg
 {
     DECL_ABSTDLG_BASE( AbstractScDeleteContentsDlg_Impl,ScDeleteContentsDlg)
     virtual void    DisableObjects() SAL_OVERRIDE;
-    virtual sal_uInt16  GetDelContentsCmdBits() const SAL_OVERRIDE;
+    virtual InsertDeleteFlags GetDelContentsCmdBits() const SAL_OVERRIDE;
 };
 
 class AbstractScFillSeriesDlg_Impl:public AbstractScFillSeriesDlg
@@ -208,7 +208,7 @@ class AbstractScInsertCellDlg_Impl : public 
AbstractScInsertCellDlg
 class AbstractScInsertContentsDlg_Impl : public AbstractScInsertContentsDlg
 {
     DECL_ABSTDLG_BASE(AbstractScInsertContentsDlg_Impl, ScInsertContentsDlg)
-    virtual sal_uInt16  GetInsContentsCmdBits() const SAL_OVERRIDE;
+    virtual InsertDeleteFlags GetInsContentsCmdBits() const SAL_OVERRIDE;
     virtual sal_uInt16  GetFormulaCmdBits() const SAL_OVERRIDE;
     virtual bool        IsSkipEmptyCells() const SAL_OVERRIDE;
     virtual bool        IsLink() const SAL_OVERRIDE;
@@ -428,7 +428,7 @@ public:
         ScTabViewShell* pTabViewShell) SAL_OVERRIDE;
 
     virtual AbstractScDeleteContentsDlg * CreateScDeleteContentsDlg(Window* 
pParent,
-                                                                    sal_uInt16 
 nCheckDefaults = 0) SAL_OVERRIDE;
+                                                                    
InsertDeleteFlags nCheckDefaults = IDF_NONE) SAL_OVERRIDE;
 
     virtual AbstractScFillSeriesDlg * CreateScFillSeriesDlg( Window*        
pParent,
                                                             ScDocument&     
rDocument,
@@ -448,7 +448,7 @@ public:
                                                              bool 
bDisallowCellMove = false ) SAL_OVERRIDE;
 
     virtual AbstractScInsertContentsDlg * CreateScInsertContentsDlg( Window*   
     pParent,
-                                                                    sal_uInt16 
     nCheckDefaults = 0,
+                                                                    
InsertDeleteFlags nCheckDefaults = IDF_NONE,
                                                                     const 
OUString* pStrTitle = NULL ) SAL_OVERRIDE;
 
     virtual AbstractScInsertTableDlg * CreateScInsertTableDlg(Window* pParent, 
ScViewData& rViewData,
diff --git a/sc/source/ui/docshell/dbdocimp.cxx 
b/sc/source/ui/docshell/dbdocimp.cxx
index 702b239..ea6e52a 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -499,7 +499,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const 
ScImportParam& rParam,
         if (bRecord)
         {
             // do not touch notes (ScUndoImportData does not support drawing 
undo)
-            sal_uInt16 nCopyFlags = IDF_ALL & ~IDF_NOTE;
+            InsertDeleteFlags nCopyFlags = IDF_ALL & ~IDF_NOTE;
 
             //  nFormulaCols is set only if column count is unchanged
             rDoc.CopyToDocument( rParam.nCol1, rParam.nRow1, nTab,
diff --git a/sc/source/ui/docshell/docfunc.cxx 
b/sc/source/ui/docshell/docfunc.cxx
index 6e8dcf5..90cc95d 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -555,7 +555,7 @@ void ScDocFunc::DetectiveCollectAllSuccs(const ScRangeList& 
rSrcRanges, vector<S
     lcl_collectAllPredOrSuccRanges(rSrcRanges, rRefTokens, rDocShell, false);
 }
 
-bool ScDocFunc::DeleteContents( const ScMarkData& rMark, sal_uInt16 nFlags,
+bool ScDocFunc::DeleteContents( const ScMarkData& rMark, InsertDeleteFlags 
nFlags,
                                     bool bRecord, bool bApi )
 {
     ScDocShellModificator aModificator( rDocShell );
@@ -638,7 +638,7 @@ bool ScDocFunc::DeleteContents( const ScMarkData& rMark, 
sal_uInt16 nFlags,
 
         //  bei "Format/Standard" alle Attribute kopieren, weil CopyToDocument
         //  nur mit IDF_HARDATTR zu langsam ist:
-        sal_uInt16 nUndoDocFlags = nFlags;
+        InsertDeleteFlags nUndoDocFlags = nFlags;
         if (nFlags & IDF_ATTRIB)
             nUndoDocFlags |= IDF_ATTRIB;
         if (nFlags & IDF_EDITATTR)          // Edit-Engine-Attribute
@@ -2669,7 +2669,7 @@ bool ScDocFunc::MoveBlock( const ScRange& rSource, const 
ScAddress& rDestPos,
     {
         bool bWholeCols = ( nStartRow == 0 && nEndRow == MAXROW );
         bool bWholeRows = ( nStartCol == 0 && nEndCol == MAXCOL );
-        sal_uInt16 nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
+        InsertDeleteFlags nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | 
IDF_NOCAPTIONS;
 
         pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
         pUndoDoc->InitUndo( &rDoc, nStartTab, nEndTab, bWholeCols, bWholeRows 
);
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 5aec94e..f1960a1 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -2108,7 +2108,7 @@ bool ScImportExport::Dif2Doc( SvStream& rStrm )
     bool bOk = StartPaste();
     if (bOk)
     {
-        sal_uInt16 nFlags = IDF_ALL & ~IDF_STYLES;
+        InsertDeleteFlags nFlags = IDF_ALL & ~IDF_STYLES;
         pDoc->DeleteAreaTab( aRange, nFlags );
         pImportDoc->CopyToDocument( aRange, nFlags, false, pDoc );
         EndPaste();
@@ -2130,7 +2130,7 @@ bool ScImportExport::RTF2Doc( SvStream& rStrm, const 
OUString& rBaseURL )
     bool bOk = StartPaste();
     if (bOk)
     {
-        sal_uInt16 nFlags = IDF_ALL & ~IDF_STYLES;
+        InsertDeleteFlags nFlags = IDF_ALL & ~IDF_STYLES;
         pDoc->DeleteAreaTab( aRange, nFlags );
         pImp->WriteToDocument();
         EndPaste();
@@ -2155,7 +2155,7 @@ bool ScImportExport::HTML2Doc( SvStream& rStrm, const 
OUString& rBaseURL )
         if (pDocSh)
             pDocSh->MakeDrawLayer();
 
-        sal_uInt16 nFlags = IDF_ALL & ~IDF_STYLES;
+        InsertDeleteFlags nFlags = IDF_ALL & ~IDF_STYLES;
         pDoc->DeleteAreaTab( aRange, nFlags );
 
         if (pExtOptions)
diff --git a/sc/source/ui/inc/delcodlg.hxx b/sc/source/ui/inc/delcodlg.hxx
index fcc4acb..c119b49 100644
--- a/sc/source/ui/inc/delcodlg.hxx
+++ b/sc/source/ui/inc/delcodlg.hxx
@@ -40,18 +40,18 @@ private:
     bool             bObjectsDisabled;
 
     static bool         bPreviousAllCheck;
-    static sal_uInt16   nPreviousChecks;
+    static InsertDeleteFlags nPreviousChecks;
 
     void DisableChecks( bool bDelAllChecked = true );
     DECL_LINK( DelAllHdl, void * );
 
 public:
             ScDeleteContentsDlg( Window* pParent,
-                                 sal_uInt16  nCheckDefaults = 0 );
+                                 InsertDeleteFlags nCheckDefaults = IDF_NONE );
             virtual ~ScDeleteContentsDlg();
     void    DisableObjects();
 
-    sal_uInt16  GetDelContentsCmdBits() const;
+    InsertDeleteFlags GetDelContentsCmdBits() const;
 };
 
 #endif // INCLUDED_SC_SOURCE_UI_INC_DELCODLG_HXX
diff --git a/sc/source/ui/inc/docfunc.hxx b/sc/source/ui/inc/docfunc.hxx
index 5dc4d06..37bf4aa 100644
--- a/sc/source/ui/inc/docfunc.hxx
+++ b/sc/source/ui/inc/docfunc.hxx
@@ -86,7 +86,7 @@ public:
     void            DetectiveCollectAllSuccs(const ScRangeList& rSrcRanges, 
::std::vector<ScTokenRef>& rRefTokens);
 
     SC_DLLPUBLIC bool
-                    DeleteContents( const ScMarkData& rMark, sal_uInt16 nFlags,
+                    DeleteContents( const ScMarkData& rMark, InsertDeleteFlags 
nFlags,
                                             bool bRecord, bool bApi );
 
     bool            TransliterateText( const ScMarkData& rMark, sal_Int32 
nType,
diff --git a/sc/source/ui/inc/inscodlg.hxx b/sc/source/ui/inc/inscodlg.hxx
index 1130daa..92bcfbd 100644
--- a/sc/source/ui/inc/inscodlg.hxx
+++ b/sc/source/ui/inc/inscodlg.hxx
@@ -31,11 +31,11 @@ class ScInsertContentsDlg : public ModalDialog
 {
 public:
             ScInsertContentsDlg( Window*          pParent,
-                                 sal_uInt16       nCheckDefaults = 0,
+                                 InsertDeleteFlags nCheckDefaults = IDF_NONE,
                                  const OUString*  pStrTitle = NULL );
             virtual ~ScInsertContentsDlg();
 
-    sal_uInt16      GetInsContentsCmdBits() const;
+    InsertDeleteFlags GetInsContentsCmdBits() const;
     sal_uInt16      GetFormulaCmdBits() const;
     bool            IsSkipEmptyCells() const;
     bool            IsTranspose() const;
@@ -82,7 +82,7 @@ private:
     bool              bMoveRightDisabled;
     bool              bUsedShortCut;
 
-    sal_uInt16        nShortCutInsContentsCmdBits;
+    InsertDeleteFlags nShortCutInsContentsCmdBits;
     sal_uInt16        nShortCutFormulaCmdBits;
     bool              bShortCutSkipEmptyCells;
     bool              bShortCutTranspose;
@@ -90,7 +90,7 @@ private:
     InsCellCmd        nShortCutMoveMode;
 
     static bool         bPreviousAllCheck;
-    static sal_uInt16   nPreviousChecks;
+    static InsertDeleteFlags nPreviousChecks;
     static sal_uInt16   nPreviousChecks2;
     static sal_uInt16   nPreviousFormulaChecks;
     static sal_uInt16   nPreviousMoveMode;          // enum InsCellCmd
diff --git a/sc/source/ui/inc/undoblk.hxx b/sc/source/ui/inc/undoblk.hxx
index 3444eb8..e19ade3 100644
--- a/sc/source/ui/inc/undoblk.hxx
+++ b/sc/source/ui/inc/undoblk.hxx
@@ -186,7 +186,7 @@ public:
     ScUndoPaste(ScDocShell* pNewDocShell, const ScRangeList& rRanges,
                 const ScMarkData& rMark,
                 ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
-                sal_uInt16 nNewFlags,
+                InsertDeleteFlags nNewFlags,
                 ScRefUndoData* pRefData,
                 bool bRedoIsFilled = true,
                 const ScUndoPasteOptions* pOptions = NULL);
@@ -203,7 +203,7 @@ private:
     ScMarkData      aMarkData;
     ScDocument*     pUndoDoc;
     ScDocument*     pRedoDoc;
-    sal_uInt16      nFlags;
+    InsertDeleteFlags nFlags;
     ScRefUndoData*  pRefUndoData;
     ScRefUndoData*  pRefRedoData;
     sal_uLong       nStartChangeAction;
@@ -257,7 +257,7 @@ public:
                                           const ScMarkData& rMark,
                                           const ScRange& rRange,
                                           ScDocument* pNewUndoDoc, bool 
bNewMulti,
-                                          sal_uInt16 nNewFlags, bool bObjects 
);
+                                          InsertDeleteFlags nNewFlags, bool 
bObjects );
     virtual         ~ScUndoDeleteContents();
 
     virtual void    Undo() SAL_OVERRIDE;
@@ -278,7 +278,7 @@ private:
     SdrUndoAction*  pDrawUndo;      // Deleted objects
     sal_uLong       nStartChangeAction;
     sal_uLong       nEndChangeAction;
-    sal_uInt16      nFlags;
+    InsertDeleteFlags nFlags;
     bool            bMulti;         // Multi selection
 
     void            DoChange( const bool bUndo );
@@ -294,7 +294,7 @@ public:
                                      SCCOL nStartX, SCROW nStartY, SCTAB 
nStartZ,
                                      SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
                                      ScDocument* pNewUndoDoc, bool bNewMulti, 
SCTAB nSrc,
-                                     sal_uInt16 nFlg, sal_uInt16 nFunc, bool 
bSkip, bool bLink );
+                                     InsertDeleteFlags nFlg, sal_uInt16 nFunc, 
bool bSkip, bool bLink );
     virtual         ~ScUndoFillTable();
 
     virtual void    Undo() SAL_OVERRIDE;
@@ -310,7 +310,7 @@ private:
     ScDocument*     pUndoDoc;       // Block mark and deleted data
     sal_uLong       nStartChangeAction;
     sal_uLong       nEndChangeAction;
-    sal_uInt16      nFlags;
+    InsertDeleteFlags nFlags;
     sal_uInt16      nFunction;
     SCTAB           nSrcTab;
     bool            bMulti;         // Multi selection
@@ -577,7 +577,7 @@ public:
                     TYPEINFO_OVERRIDE();
                     ScUndoRefConversion( ScDocShell* pNewDocShell,
                                          const ScRange& aMarkRange, const 
ScMarkData& rMark,
-                                         ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc, bool bNewMulti, sal_uInt16 nNewFlag);
+                                         ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc, bool bNewMulti, InsertDeleteFlags nNewFlag);
     virtual         ~ScUndoRefConversion();
 
     virtual void    Undo() SAL_OVERRIDE;
@@ -593,7 +593,7 @@ private:
     ScDocument*         pRedoDoc;
     ScRange             aRange;
     bool                bMulti;
-    sal_uInt16          nFlags;
+    InsertDeleteFlags   nFlags;
     sal_uLong           nStartChangeAction;
     sal_uLong           nEndChangeAction;
 
diff --git a/sc/source/ui/inc/undodat.hxx b/sc/source/ui/inc/undodat.hxx
index b564c33..c9c3060 100644
--- a/sc/source/ui/inc/undodat.hxx
+++ b/sc/source/ui/inc/undodat.hxx
@@ -455,7 +455,7 @@ public:
                                 SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
                                 const ScMarkData& rMark,
                                 ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc,
-                                sal_uInt16 nNewFlags,
+                                InsertDeleteFlags nNewFlags,
                                 ScRefUndoData* pRefData, void* pFill1, void* 
pFill2, void* pFill3,
                                 bool bRedoIsFilled = true
                                  );
@@ -472,7 +472,7 @@ private:
     boost::scoped_ptr<ScMarkData> mpMarkData;
     ScDocument*     pUndoDoc;
     ScDocument*     pRedoDoc;
-    sal_uInt16      nFlags;
+    InsertDeleteFlags nFlags;
     ScRefUndoData*  pRefUndoData;
     ScRefUndoData*  pRefRedoData;
     sal_uLong       nStartChangeAction;
diff --git a/sc/source/ui/inc/viewfunc.hxx b/sc/source/ui/inc/viewfunc.hxx
index 28b7a2e..17ae3d6 100644
--- a/sc/source/ui/inc/viewfunc.hxx
+++ b/sc/source/ui/inc/viewfunc.hxx
@@ -104,14 +104,14 @@ public:
     SC_DLLPUBLIC bool           CopyToClip( ScDocument* pClipDoc, const 
ScRangeList& rRange, bool bCut = false,
                                             bool bApi = false, bool 
bIncludeObjects = false, bool bStopEdit = true, bool bUseRangeForVBA = true );
     ScTransferObj*              CopyToTransferable();
-    SC_DLLPUBLIC bool           PasteFromClip( sal_uInt16 nFlags, ScDocument* 
pClipDoc,
+    SC_DLLPUBLIC bool           PasteFromClip( InsertDeleteFlags nFlags, 
ScDocument* pClipDoc,
                                     sal_uInt16 nFunction = PASTE_NOFUNC, bool 
bSkipEmpty = false,
                                     bool bTranspose = false, bool bAsLink = 
false,
                                     InsCellCmd eMoveMode = INS_NONE,
-                                    sal_uInt16 nUndoExtraFlags = IDF_NONE,
+                                    InsertDeleteFlags nUndoExtraFlags = 
IDF_NONE,
                                     bool bAllowDialogs = false );
 
-    void            FillTab( sal_uInt16 nFlags, sal_uInt16 nFunction, bool 
bSkipEmpty, bool bAsLink );
+    void            FillTab( InsertDeleteFlags nFlags, sal_uInt16 nFunction, 
bool bSkipEmpty, bool bAsLink );
 
     SC_DLLPUBLIC void           PasteFromSystem();
     SC_DLLPUBLIC bool           PasteFromSystem( sal_uLong nFormatId, bool 
bApi = false );
@@ -198,7 +198,7 @@ public:
     bool            InsertCells( InsCellCmd eCmd, bool bRecord = true, bool 
bPartOfPaste = false );
     void            DeleteMulti( bool bRows, bool bRecord = true );
 
-    void            DeleteContents( sal_uInt16 nFlags, bool bRecord = true );
+    void            DeleteContents( InsertDeleteFlags nFlags, bool bRecord = 
true );
 
     void SetWidthOrHeight(
         bool bWidth, const std::vector<sc::ColRowSpan>& rRanges, ScSizeMode 
eMode,
@@ -349,13 +349,13 @@ private:
                                 const ::com::sun::star::uno::Reference<
                                         
::com::sun::star::datatransfer::XTransferable >& rxTransferable );
 
-    bool             PasteMultiRangesFromClip( sal_uInt16 nFlags, ScDocument* 
pClipDoc, sal_uInt16 nFunction,
+    bool             PasteMultiRangesFromClip( InsertDeleteFlags nFlags, 
ScDocument* pClipDoc, sal_uInt16 nFunction,
                                    bool bSkipEmpty, bool bTranspose, bool 
bAsLink, bool bAllowDialogs,
-                                   InsCellCmd eMoveMode, sal_uInt16 nUndoFlags 
);
+                                   InsCellCmd eMoveMode, InsertDeleteFlags 
nUndoFlags );
 
-    bool             PasteFromClipToMultiRanges( sal_uInt16 nFlags, 
ScDocument* pClipDoc, sal_uInt16 nFunction,
+    bool             PasteFromClipToMultiRanges( InsertDeleteFlags nFlags, 
ScDocument* pClipDoc, sal_uInt16 nFunction,
                                      bool bSkipEmpty, bool bTranspose, bool 
bAsLink, bool bAllowDialogs,
-                                     InsCellCmd eMoveMode, sal_uInt16 
nUndoFlags );
+                                     InsCellCmd eMoveMode, InsertDeleteFlags 
nUndoFlags );
 
     void            PostPasteFromClip(const ScRangeList& rPasteRanges, const 
ScMarkData& rMark);
 
diff --git a/sc/source/ui/miscdlgs/delcodlg.cxx 
b/sc/source/ui/miscdlgs/delcodlg.cxx
index d0da98a..52a4871 100644
--- a/sc/source/ui/miscdlgs/delcodlg.cxx
+++ b/sc/source/ui/miscdlgs/delcodlg.cxx
@@ -24,12 +24,12 @@
 #include "miscdlgs.hrc"
 
 bool       ScDeleteContentsDlg::bPreviousAllCheck = false;
-sal_uInt16 ScDeleteContentsDlg::nPreviousChecks   = (IDF_DATETIME | IDF_STRING 
 |
+InsertDeleteFlags ScDeleteContentsDlg::nPreviousChecks   = (IDF_DATETIME | 
IDF_STRING  |
                                                  IDF_NOTE     | IDF_FORMULA |
                                                  IDF_VALUE);
 
 ScDeleteContentsDlg::ScDeleteContentsDlg( Window* pParent,
-                                          sal_uInt16  nCheckDefaults ) :
+                                          InsertDeleteFlags nCheckDefaults ) :
     ModalDialog     ( pParent, "DeleteContentsDialog", 
"modules/scalc/ui/deletecontents.ui" ),
 
     bObjectsDisabled( false )
@@ -44,7 +44,7 @@ ScDeleteContentsDlg::ScDeleteContentsDlg( Window* pParent,
     get( aBtnDelObjects, "objects" );
     get( aBtnOk, "ok" );
 
-    if ( nCheckDefaults != 0 )
+    if ( nCheckDefaults != IDF_NONE )
     {
         ScDeleteContentsDlg::nPreviousChecks = nCheckDefaults;
         ScDeleteContentsDlg::bPreviousAllCheck = false;
@@ -71,9 +71,9 @@ ScDeleteContentsDlg::ScDeleteContentsDlg( Window* pParent,
     aBtnDelAll->SetClickHdl( LINK( this, ScDeleteContentsDlg, DelAllHdl ) );
 }
 
-sal_uInt16 ScDeleteContentsDlg::GetDelContentsCmdBits() const
+InsertDeleteFlags ScDeleteContentsDlg::GetDelContentsCmdBits() const
 {
-    ScDeleteContentsDlg::nPreviousChecks = 0;
+    ScDeleteContentsDlg::nPreviousChecks = IDF_NONE;
 
     if ( aBtnDelStrings->IsChecked() )
         ScDeleteContentsDlg::nPreviousChecks  = IDF_STRING;
diff --git a/sc/source/ui/miscdlgs/inscodlg.cxx 
b/sc/source/ui/miscdlgs/inscodlg.cxx
index efd40b0..13ad6a4 100644
--- a/sc/source/ui/miscdlgs/inscodlg.cxx
+++ b/sc/source/ui/miscdlgs/inscodlg.cxx
@@ -24,13 +24,13 @@
 #include "miscdlgs.hrc"
 
 bool       ScInsertContentsDlg::bPreviousAllCheck = false;
-sal_uInt16 ScInsertContentsDlg::nPreviousChecks   = (IDF_VALUE | IDF_DATETIME 
| IDF_STRING);
+InsertDeleteFlags ScInsertContentsDlg::nPreviousChecks   = (IDF_VALUE | 
IDF_DATETIME | IDF_STRING);
 sal_uInt16 ScInsertContentsDlg::nPreviousFormulaChecks = PASTE_NOFUNC;
 sal_uInt16 ScInsertContentsDlg::nPreviousChecks2 = 0;
 sal_uInt16 ScInsertContentsDlg::nPreviousMoveMode = INS_NONE;   // enum 
InsCellCmd
 
 ScInsertContentsDlg::ScInsertContentsDlg( Window*       pParent,
-                                          sal_uInt16        nCheckDefaults,
+                                          InsertDeleteFlags nCheckDefaults,
                                           const OUString* pStrTitle )
 
  :  ModalDialog     ( pParent, "PasteSpecial", 
"modules/scalc/ui/pastespecial.ui" ),
@@ -39,7 +39,8 @@ ScInsertContentsDlg::ScInsertContentsDlg( Window*       
pParent,
     bChangeTrack    ( false ),
     bMoveDownDisabled( false ),
     bMoveRightDisabled( false ),
-    bUsedShortCut   ( false )
+    bUsedShortCut   ( false ),
+    nShortCutInsContentsCmdBits( IDF_NONE )
 {
     get( mpBtnInsAll, "paste_all" );
     get( mpBtnInsStrings, "text" );
@@ -67,7 +68,7 @@ ScInsertContentsDlg::ScInsertContentsDlg( Window*       
pParent,
     if ( pStrTitle )
         SetText( *pStrTitle );
 
-    if ( nCheckDefaults != 0 )
+    if ( nCheckDefaults != IDF_NONE )
     {
         ScInsertContentsDlg::nPreviousChecks = nCheckDefaults;
         ScInsertContentsDlg::bPreviousAllCheck = false;
@@ -120,9 +121,9 @@ ScInsertContentsDlg::ScInsertContentsDlg( Window*       
pParent,
     mpBtnShortCutPasteTranspose->SetClickHdl( LINK( this, ScInsertContentsDlg, 
ShortCutHdl ) );
 }
 
-sal_uInt16 ScInsertContentsDlg::GetInsContentsCmdBits() const
+InsertDeleteFlags ScInsertContentsDlg::GetInsContentsCmdBits() const
 {
-    ScInsertContentsDlg::nPreviousChecks = 0;
+    ScInsertContentsDlg::nPreviousChecks = IDF_NONE;
 
     if ( mpBtnInsStrings->IsChecked() )
         ScInsertContentsDlg::nPreviousChecks = IDF_STRING;
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index be6895f..a23e390 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -775,7 +775,7 @@ void ScUndoCut::DoChange( const bool bUndo )
     sal_uInt16 nExtFlags = 0;
 
     // do not undo/redo objects and note captions, they are handled via 
drawing undo
-    sal_uInt16 nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
+    InsertDeleteFlags nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
 
     if (bUndo)  // only for Undo
     {
@@ -842,7 +842,7 @@ bool ScUndoCut::CanRepeat(SfxRepeatTarget& rTarget) const
 ScUndoPaste::ScUndoPaste( ScDocShell* pNewDocShell, const ScRangeList& rRanges,
                 const ScMarkData& rMark,
                 ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
-                sal_uInt16 nNewFlags,
+                InsertDeleteFlags nNewFlags,
                 ScRefUndoData* pRefData,
                 bool bRedoIsFilled, const ScUndoPasteOptions* pOptions ) :
     ScMultiBlockUndo( pNewDocShell, rRanges, SC_UNDO_SIMPLE ),
@@ -904,7 +904,7 @@ void ScUndoPaste::DoChange(bool bUndo)
     ScRefUndoData* pWorkRefData = bUndo ? pRefUndoData : pRefRedoData;
 
     // Always back-up either all or none of the content for Undo
-    sal_uInt16 nUndoFlags = IDF_NONE;
+    InsertDeleteFlags nUndoFlags = IDF_NONE;
     if (nFlags & IDF_CONTENTS)
         nUndoFlags |= IDF_CONTENTS;
     if (nFlags & IDF_ATTRIB)
@@ -1236,7 +1236,7 @@ void ScUndoDragDrop::DoUndo( ScRange aRange )
     pDocShell->UpdatePaintExt(mnPaintExtFlags, aPaintRange);
 
     // do not undo objects and note captions, they are handled via drawing undo
-    sal_uInt16 nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
+    InsertDeleteFlags nUndoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
 
     rDoc.DeleteAreaTab( aRange, nUndoFlags );
     pRefUndoDoc->CopyToDocument( aRange, nUndoFlags, false, &rDoc );
@@ -1353,7 +1353,7 @@ void ScUndoDragDrop::Redo()
     EnableDrawAdjust( &rDoc, false );                //! include in 
ScBlockUndo?
 
     // do not undo/redo objects and note captions, they are handled via 
drawing undo
-    sal_uInt16 nRedoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
+    InsertDeleteFlags nRedoFlags = (IDF_ALL & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
 
     /*  TODO: Redoing note captions is quite tricky due to the fact that a
         helper clip document is used. While (re-)pasting the contents to the
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index 661f3e9..6b8c8cf 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -77,7 +77,7 @@ ScUndoDeleteContents::ScUndoDeleteContents(
                 ScDocShell* pNewDocShell,
                 const ScMarkData& rMark, const ScRange& rRange,
                 ScDocument* pNewUndoDoc, bool bNewMulti,
-                sal_uInt16 nNewFlags, bool bObjects )
+                InsertDeleteFlags nNewFlags, bool bObjects )
     :   ScSimpleUndo( pNewDocShell ),
         aRange      ( rRange ),
         aMarkData   ( rMark ),
@@ -131,7 +131,7 @@ void ScUndoDeleteContents::DoChange( const bool bUndo )
 
     if (bUndo)  // only Undo
     {
-        sal_uInt16 nUndoFlags = IDF_NONE; // copy either all or none of the 
content
+        InsertDeleteFlags nUndoFlags = IDF_NONE; // copy either all or none of 
the content
         if (nFlags & IDF_CONTENTS)        // (Only the correct ones have been 
copied into UndoDoc)
             nUndoFlags |= IDF_CONTENTS;
         if (nFlags & IDF_ATTRIB)
@@ -163,7 +163,7 @@ void ScUndoDeleteContents::DoChange( const bool bUndo )
         aMarkData.MarkToMulti();
         RedoSdrUndoAction( pDrawUndo );
         // do not delete objects and note captions, they have been removed via 
drawing undo
-        sal_uInt16 nRedoFlags = (nFlags & ~IDF_OBJECTS) | IDF_NOCAPTIONS;
+        InsertDeleteFlags nRedoFlags = (nFlags & ~IDF_OBJECTS) | 
IDF_NOCAPTIONS;
         rDoc.DeleteSelection( nRedoFlags, aMarkData );
         aMarkData.MarkToSimple();
 
@@ -229,7 +229,7 @@ ScUndoFillTable::ScUndoFillTable( ScDocShell* pNewDocShell,
                 SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
                 SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
                 ScDocument* pNewUndoDoc, bool bNewMulti, SCTAB nSrc,
-                sal_uInt16 nFlg, sal_uInt16 nFunc, bool bSkip, bool bLink )
+                InsertDeleteFlags nFlg, sal_uInt16 nFunc, bool bSkip, bool 
bLink )
     :   ScSimpleUndo( pNewDocShell ),
         aRange      ( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ),
         aMarkData   ( rMark ),
@@ -995,7 +995,7 @@ void ScUndoReplace::Undo()
         // Undo document has no row/column information, thus copy with
         // bColRowFlags = FALSE to not destroy Outline groups
 
-        sal_uInt16 nUndoFlags = (pSearchItem->GetPattern()) ? IDF_ATTRIB : 
IDF_CONTENTS;
+        InsertDeleteFlags nUndoFlags = (pSearchItem->GetPattern()) ? 
IDF_ATTRIB : IDF_CONTENTS;
         pUndoDoc->CopyToDocument( 0,      0,      0,
                                   MAXCOL, MAXROW, MAXTAB,
                                   nUndoFlags, false, &rDoc, NULL, false );   
// without row flags
@@ -1282,7 +1282,7 @@ bool ScUndoConversion::CanRepeat(SfxRepeatTarget& 
rTarget) const
 
 ScUndoRefConversion::ScUndoRefConversion( ScDocShell* pNewDocShell,
                                          const ScRange& aMarkRange, const 
ScMarkData& rMark,
-                                         ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc, bool bNewMulti, sal_uInt16 nNewFlag) :
+                                         ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc, bool bNewMulti, InsertDeleteFlags nNewFlag) :
 ScSimpleUndo( pNewDocShell ),
 aMarkData   ( rMark ),
 pUndoDoc    ( pNewUndoDoc ),
diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
index ac1b8fd..e2baf7d 100644
--- a/sc/source/ui/undo/undodat.cxx
+++ b/sc/source/ui/undo/undodat.cxx
@@ -1802,7 +1802,7 @@ ScUndoDataForm::ScUndoDataForm( ScDocShell* pNewDocShell,
                                 SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
                                 const ScMarkData& rMark,
                                 ScDocument* pNewUndoDoc, ScDocument* 
pNewRedoDoc,
-                                sal_uInt16 nNewFlags,
+                                InsertDeleteFlags nNewFlags,
                                 ScRefUndoData* pRefData,
                                 void* /*pFill1*/, void* /*pFill2*/, void* 
/*pFill3*/,
                                 bool bRedoIsFilled ) :
@@ -1893,7 +1893,7 @@ void ScUndoDataForm::DoChange( const bool bUndo )
     ScRefUndoData* pWorkRefData = bUndo ? pRefUndoData : pRefRedoData;
 
     // Always back-up either all or none of the content for Undo
-    sal_uInt16 nUndoFlags = IDF_NONE;
+    InsertDeleteFlags nUndoFlags = IDF_NONE;
     if (nFlags & IDF_CONTENTS)
             nUndoFlags |= IDF_CONTENTS;
     if (nFlags & IDF_ATTRIB)
@@ -1919,7 +1919,7 @@ void ScUndoDataForm::DoChange( const bool bUndo )
         ScRange aCopyRange = aBlockRange;
         aCopyRange.aStart.SetTab(0);
         aCopyRange.aEnd.SetTab(nTabCount-1);
-        rDoc.CopyToDocument( aCopyRange, 1, false, pRedoDoc );
+        rDoc.CopyToDocument( aCopyRange, IDF_VALUE, false, pRedoDoc );
         bRedoFilled = true;
     }
 
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 7ad0202..5e859a8 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1815,8 +1815,8 @@ void SAL_CALL ScCellRangesBase::clearContents( sal_Int32 
nContentFlags ) throw(u
     if ( !aRanges.empty() )
     {
         // only for clearContents: EDITATTR is only used if no contents are 
deleted
-        sal_uInt16 nDelFlags = static_cast< sal_uInt16 >( nContentFlags & 
IDF_ALL );
-        if ( ( nContentFlags & IDF_EDITATTR ) && ( nContentFlags & 
IDF_CONTENTS ) == 0 )
+        InsertDeleteFlags nDelFlags = 
InsertDeleteFlags::fromInt(nContentFlags) & IDF_ALL;
+        if ( ( nDelFlags & IDF_EDITATTR ) && ( nDelFlags & IDF_CONTENTS ) == 
IDF_NONE )
             nDelFlags |= IDF_EDITATTR;
 
         pDocShell->GetDocFunc().DeleteContents( *GetMarkData(), nDelFlags, 
true, true );
diff --git a/sc/source/ui/vba/excelvbahelper.cxx 
b/sc/source/ui/vba/excelvbahelper.cxx
index 5c37929..2e18439 100644
--- a/sc/source/ui/vba/excelvbahelper.cxx
+++ b/sc/source/ui/vba/excelvbahelper.cxx
@@ -186,7 +186,7 @@ implnCut( const uno::Reference< frame::XModel>& xModel )
     }
 }
 
-void implnPasteSpecial( const uno::Reference< frame::XModel>& xModel, 
sal_uInt16 nFlags, sal_uInt16 nFunction, bool bSkipEmpty, bool bTranspose)
+void implnPasteSpecial( const uno::Reference< frame::XModel>& xModel, 
InsertDeleteFlags nFlags, sal_uInt16 nFunction, bool bSkipEmpty, bool 
bTranspose)
 {
     PasteCellsWarningReseter resetWarningBox;
     InsCellCmd eMoveMode = INS_NONE;
diff --git a/sc/source/ui/vba/excelvbahelper.hxx 
b/sc/source/ui/vba/excelvbahelper.hxx
index cd6590c..9de833c 100644
--- a/sc/source/ui/vba/excelvbahelper.hxx
+++ b/sc/source/ui/vba/excelvbahelper.hxx
@@ -41,7 +41,7 @@ void implSetZoom( const css::uno::Reference< 
css::frame::XModel >& xModel, sal_I
 void implnCopy( const css::uno::Reference< css::frame::XModel>& xModel );
 void implnPaste ( const css::uno::Reference< css::frame::XModel>& xModel );
 void implnCut( const css::uno::Reference< css::frame::XModel>& xModel );
-void implnPasteSpecial( const css::uno::Reference< css::frame::XModel>& 
xModel, sal_uInt16 nFlags, sal_uInt16 nFunction, bool bSkipEmpty, bool 
bTranspose);
+void implnPasteSpecial( const css::uno::Reference< css::frame::XModel>& 
xModel, InsertDeleteFlags nFlags, sal_uInt16 nFunction, bool bSkipEmpty, bool 
bTranspose);
 ScTabViewShell* getBestViewShell( const css::uno::Reference< 
css::frame::XModel>& xModel ) ;
 ScDocShell* getDocShell( const css::uno::Reference< css::frame::XModel>& 
xModel ) ;
 ScTabViewShell* getCurrentBestViewShell( const css::uno::Reference< 
css::uno::XComponentContext >& xContext );
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index 7e33235..523db87 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -2797,10 +2797,9 @@ uno::Any ScVbaRange::getCellRange( const uno::Reference< 
excel::XRange >& rxRang
     throw uno::RuntimeException();
 }
 
-static sal_uInt16
-getPasteFlags (sal_Int32 Paste)
+static InsertDeleteFlags getPasteFlags (sal_Int32 Paste)
 {
-    sal_uInt16 nFlags = IDF_NONE;
+    InsertDeleteFlags nFlags = IDF_NONE;
     switch (Paste) {
         case excel::XlPasteType::xlPasteComments:
         nFlags = IDF_NOTE;break;
@@ -2821,7 +2820,7 @@ getPasteFlags (sal_Int32 Paste)
     default:
         nFlags = IDF_ALL;break;
     }
-return nFlags;
+    return nFlags;
 }
 
 static sal_uInt16
@@ -2875,7 +2874,7 @@ ScVbaRange::PasteSpecial( const uno::Any& Paste, const 
uno::Any& Operation, cons
     if ( Transpose.hasValue() )
         Transpose >>= bTranspose;
 
-    sal_uInt16 nFlags = getPasteFlags(nPaste);
+    InsertDeleteFlags nFlags = getPasteFlags(nPaste);
     sal_uInt16 nFormulaBits = getPasteFormulaBits(nOperation);
     excel::implnPasteSpecial(pShell->GetModel(), 
nFlags,nFormulaBits,bSkipBlanks,bTranspose);
 }
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 3d682b4..c5f509b 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -320,7 +320,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
         case SID_DELETE:
             {
-                sal_uInt16  nFlags = IDF_NONE;
+                InsertDeleteFlags nFlags = IDF_NONE;
 
                 if ( pReqArgs!=NULL && pTabViewShell->SelectionEditable() )
                 {
@@ -428,7 +428,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
         case FID_FILL_TAB:
             {
-                sal_uInt16 nFlags = IDF_NONE;
+                InsertDeleteFlags nFlags = IDF_NONE;
                 sal_uInt16 nFunction = PASTE_NOFUNC;
                 bool bSkipEmpty = false;
                 bool bAsLink    = false;
@@ -467,7 +467,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                     OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
 
                     boost::scoped_ptr<AbstractScInsertContentsDlg> 
pDlg(pFact->CreateScInsertContentsDlg( pTabViewShell->GetDialogParent(),
-                                                                               
             0, /* nCheckDefaults */
+                                                                               
             IDF_NONE, /* nCheckDefaults */
                                                                                
             &ScGlobal::GetRscString(STR_FILL_TAB)));
                     OSL_ENSURE(pDlg, "Dialog create fail!");
                     pDlg->SetFillMode(true);
@@ -1280,7 +1280,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
         case FID_INS_CELL_CONTENTS:
             {
-                sal_uInt16 nFlags = IDF_NONE;
+                InsertDeleteFlags nFlags = IDF_NONE;
                 sal_uInt16 nFunction = PASTE_NOFUNC;
                 bool bSkipEmpty = false;
                 bool bTranspose = false;
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx
index 7c37d61..2c3171c 100644
--- a/sc/source/ui/view/cliputil.cxx
+++ b/sc/source/ui/view/cliputil.cxx
@@ -59,7 +59,7 @@ void ScClipUtil::PasteFromClipboard( ScViewData* pViewData, 
ScTabViewShell* pTab
         else
         {
             ScDocument* pClipDoc = pOwnClip->GetDocument();
-            sal_uInt16 nFlags = IDF_ALL;
+            InsertDeleteFlags nFlags = IDF_ALL;
             if (pClipDoc->GetClipParam().isMultiRange())
                 // For multi-range paste, we paste values by default.
                 nFlags &= ~IDF_FORMULA;
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 6f92ac9..410eae9 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -1274,7 +1274,7 @@ void ScViewFunc::FillAuto( FillDir eDir, SCCOL nStartCol, 
SCROW nStartRow,
     }
 }
 
-void ScViewFunc::FillTab( sal_uInt16 nFlags, sal_uInt16 nFunction, bool 
bSkipEmpty, bool bAsLink )
+void ScViewFunc::FillTab( InsertDeleteFlags nFlags, sal_uInt16 nFunction, bool 
bSkipEmpty, bool bAsLink )
 {
     //! allow source sheet to be protected
     ScEditableTester aTester( this );
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index b00ab73..8b0ace1 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -798,10 +798,10 @@ bool checkDestRangeForOverwrite(const ScRangeList& 
rDestRanges, const ScDocument
 
 }
 
-bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, ScDocument* pClipDoc,
+bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
                                 sal_uInt16 nFunction, bool bSkipEmpty,
                                 bool bTranspose, bool bAsLink,
-                                InsCellCmd eMoveMode, sal_uInt16 
nUndoExtraFlags,
+                                InsCellCmd eMoveMode, InsertDeleteFlags 
nUndoExtraFlags,
                                 bool bAllowDialogs )
 {
     if (!pClipDoc)
@@ -811,13 +811,13 @@ bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, 
ScDocument* pClipDoc,
     }
 
     //  fuer Undo etc. immer alle oder keine Inhalte sichern
-    sal_uInt16 nContFlags = IDF_NONE;
+    InsertDeleteFlags nContFlags = IDF_NONE;
     if (nFlags & IDF_CONTENTS)
         nContFlags |= IDF_CONTENTS;
     if (nFlags & IDF_ATTRIB)
         nContFlags |= IDF_ATTRIB;
     // evtl. Attribute ins Undo ohne sie vom Clip ins Doc zu kopieren
-    sal_uInt16 nUndoFlags = nContFlags;
+    InsertDeleteFlags nUndoFlags = nContFlags;
     if (nUndoExtraFlags & IDF_ATTRIB)
         nUndoFlags |= IDF_ATTRIB;
     // do not copy note captions into undo document
@@ -1228,7 +1228,7 @@ bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, 
ScDocument* pClipDoc,
     if ( bRecord )
         pDoc->BeginDrawUndo();
 
-    sal_uInt16 nNoObjFlags = nFlags & ~IDF_OBJECTS;
+    InsertDeleteFlags nNoObjFlags = nFlags & ~IDF_OBJECTS;
     if (!bAsLink)
     {
         //  copy normally (original range)
@@ -1391,9 +1391,9 @@ bool ScViewFunc::PasteFromClip( sal_uInt16 nFlags, 
ScDocument* pClipDoc,
 }
 
 bool ScViewFunc::PasteMultiRangesFromClip(
-    sal_uInt16 nFlags, ScDocument* pClipDoc, sal_uInt16 nFunction,
+    InsertDeleteFlags nFlags, ScDocument* pClipDoc, sal_uInt16 nFunction,
     bool bSkipEmpty, bool bTranspose, bool bAsLink, bool bAllowDialogs,
-    InsCellCmd eMoveMode, sal_uInt16 nUndoFlags)
+    InsCellCmd eMoveMode, InsertDeleteFlags nUndoFlags)
 {
     ScViewData& rViewData = GetViewData();
     ScDocument* pDoc = rViewData.GetDocument();
@@ -1502,7 +1502,7 @@ bool ScViewFunc::PasteMultiRangesFromClip(
     if (pDoc->IsUndoEnabled())
         pDoc->BeginDrawUndo();
 
-    sal_uInt16 nNoObjFlags = nFlags & ~IDF_OBJECTS;
+    InsertDeleteFlags nNoObjFlags = nFlags & ~IDF_OBJECTS;
     pDoc->CopyMultiRangeFromClip(rCurPos, aMark, nNoObjFlags, pClipDoc,
                                  true, bAsLink, false, bSkipEmpty);
 
@@ -1555,9 +1555,9 @@ bool ScViewFunc::PasteMultiRangesFromClip(
 }
 
 bool ScViewFunc::PasteFromClipToMultiRanges(
-    sal_uInt16 nFlags, ScDocument* pClipDoc, sal_uInt16 nFunction,
+    InsertDeleteFlags nFlags, ScDocument* pClipDoc, sal_uInt16 nFunction,
     bool bSkipEmpty, bool bTranspose, bool bAsLink, bool bAllowDialogs,
-    InsCellCmd eMoveMode, sal_uInt16 nUndoFlags )
+    InsCellCmd eMoveMode, InsertDeleteFlags nUndoFlags )
 {
     if (bTranspose)
     {
@@ -1904,13 +1904,13 @@ void ScViewFunc::DataFormPutData( SCROW nCurrentRow ,
         bool bRowInfo = ( nStartCol==0 && nEndCol==MAXCOL );
         SCCOL nUndoEndCol = nStartCol+aColLength-1;
         SCROW nUndoEndRow = nCurrentRow;
-        sal_uInt16 nUndoFlags = IDF_NONE;
+        InsertDeleteFlags nUndoFlags = IDF_NONE;
 
         if ( bRecord )
         {
             pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
             pUndoDoc->InitUndoSelected( pDoc , rMark , bColInfo , bRowInfo );
-            pDoc->CopyToDocument( aUserRange , 1 , false , pUndoDoc );
+            pDoc->CopyToDocument( aUserRange , IDF_VALUE , false , pUndoDoc );
         }
         sal_uInt16 nExtFlags = 0;
         pDocSh->UpdatePaintExt( nExtFlags, nStartCol, nStartRow, nStartTab , 
nEndCol, nEndRow, nEndTab ); // content before the change
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index c3359a0..1993cca 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -1734,7 +1734,7 @@ void ScViewFunc::DeleteMulti( bool bRows, bool bRecord )
 
 //  delete contents
 
-void ScViewFunc::DeleteContents( sal_uInt16 nFlags, bool bRecord )
+void ScViewFunc::DeleteContents( InsertDeleteFlags nFlags, bool bRecord )
 {
     ScViewData& rViewData = GetViewData();
     rViewData.SetPasteMode( SC_PASTE_NONE );
@@ -1854,7 +1854,7 @@ void ScViewFunc::DeleteContents( sal_uInt16 nFlags, bool 
bRecord )
 
         //  in case of "Format/Standard" copy all attributes, because 
CopyToDocument
         //  with IDF_HARDATTR only is too time-consuming:
-        sal_uInt16 nUndoDocFlags = nFlags;
+        InsertDeleteFlags nUndoDocFlags = nFlags;
         if (nFlags & IDF_ATTRIB)
             nUndoDocFlags |= IDF_ATTRIB;
         if (nFlags & IDF_EDITATTR)          // Edit-Engine-Attribute
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to