Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3171

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/71/3171/1

Revert "Revert "reduce some uglyness""

The header guard seems to solve the problem.

This reverts commit df8c41cceeca27ae49e9fa6b5cd64c65c8feb218.

Change-Id: I27869be9c70e79a366a547ce061e71a3743f87da
---
M svl/inc/svl/rngitem.hxx
M svl/source/items/rngitem.cxx
D svl/source/items/rngitem_inc.cxx
3 files changed, 198 insertions(+), 255 deletions(-)



diff --git a/svl/inc/svl/rngitem.hxx b/svl/inc/svl/rngitem.hxx
index 698641d..450e958 100644
--- a/svl/inc/svl/rngitem.hxx
+++ b/svl/inc/svl/rngitem.hxx
@@ -18,20 +18,8 @@
  */
 
 #ifndef _SFXRNGITEM_HXX
-
-#ifndef NUMTYPE
-
-#define NUMTYPE sal_uInt16
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
-#include <svl/rngitem.hxx>
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-
 #define _SFXRNGITEM_HXX
 
-#else
 #include "svl/svldllapi.h"
 #include <svl/poolitem.hxx>
 
@@ -39,16 +27,16 @@
 
 // -----------------------------------------------------------------------
 
-class SVL_DLLPUBLIC SfxXRangeItem : public SfxPoolItem
+class SVL_DLLPUBLIC SfxRangeItem : public SfxPoolItem
 {
 private:
-    NUMTYPE                     nFrom;
-    NUMTYPE                     nTo;
+    sal_uInt16                  nFrom;
+    sal_uInt16                  nTo;
 public:
                                 TYPEINFO();
-                                SfxXRangeItem();
-                                SfxXRangeItem( sal_uInt16 nWID, NUMTYPE nFrom, NUMTYPE nTo );
-                                SfxXRangeItem( const SfxXRangeItem& rItem );
+                                SfxRangeItem();
+                                SfxRangeItem( sal_uInt16 nWID, sal_uInt16 nFrom, sal_uInt16 nTo );
+                                SfxRangeItem( const SfxRangeItem& rItem );
     virtual int                 operator==( const SfxPoolItem& ) const;
     virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
                                     SfxMapUnit eCoreMetric,
@@ -56,28 +44,28 @@
                                     OUString &rText,
                                     const IntlWrapper * = 0 ) const;
     virtual SfxPoolItem*        Clone( SfxItemPool *pPool = 0 ) const;
-    inline NUMTYPE&             From() { return nFrom; }
-    inline NUMTYPE              From() const { return nFrom; }
-    inline NUMTYPE&             To() { return nTo; }
-    inline NUMTYPE              To() const { return nTo; }
-    inline sal_Bool                 HasRange() const { return nTo>nFrom; }
+    inline sal_uInt16&          From() { return nFrom; }
+    inline sal_uInt16           From() const { return nFrom; }
+    inline sal_uInt16&          To() { return nTo; }
+    inline sal_uInt16           To() const { return nTo; }
+    inline sal_Bool             HasRange() const { return nTo>nFrom; }
     virtual SfxPoolItem*        Create( SvStream &, sal_uInt16 nVersion ) const;
     virtual SvStream&           Store( SvStream &, sal_uInt16 nItemVersion ) const;
 };
 
 // -----------------------------------------------------------------------
 
-class SVL_DLLPUBLIC SfxXRangesItem : public SfxPoolItem
+class SVL_DLLPUBLIC SfxUShortRangesItem : public SfxPoolItem
 {
 private:
-    NUMTYPE*                    _pRanges;
+    sal_uInt16*                 _pRanges;
 
 public:
                                 TYPEINFO();
-                                SfxXRangesItem();
-                                SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream );
-                                SfxXRangesItem( const SfxXRangesItem& rItem );
-    virtual                     ~SfxXRangesItem();
+                                SfxUShortRangesItem();
+                                SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream );
+                                SfxUShortRangesItem( const SfxUShortRangesItem& rItem );
+    virtual                     ~SfxUShortRangesItem();
     virtual int                 operator==( const SfxPoolItem& ) const;
     virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
                                     SfxMapUnit eCoreMetric,
@@ -85,12 +73,11 @@
                                     OUString &rText,
                                     const IntlWrapper * = 0 ) const;
     virtual SfxPoolItem*        Clone( SfxItemPool *pPool = 0 ) const;
-    inline const NUMTYPE*       GetRanges() const { return _pRanges; }
+    inline const sal_uInt16*    GetRanges() const { return _pRanges; }
     virtual SfxPoolItem*        Create( SvStream &, sal_uInt16 nVersion ) const;
     virtual SvStream&           Store( SvStream &, sal_uInt16 nItemVersion ) const;
 };
 
-#endif
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/rngitem.cxx b/svl/source/items/rngitem.cxx
index 72f890d..645c543 100644
--- a/svl/source/items/rngitem.cxx
+++ b/svl/source/items/rngitem.cxx
@@ -18,22 +18,190 @@
  */
 
 #include <tools/stream.hxx>
-
-#ifndef NUMTYPE
-
-#define NUMTYPE sal_uInt16
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
 #include <svl/rngitem.hxx>
-#include "rngitem_inc.cxx"
 
-#else
+static inline sal_uInt16 Count_Impl(const sal_uInt16 * pRanges)
+{
+    sal_uInt16 nCount = 0;
+    for (; *pRanges; pRanges += 2) nCount += 2;
+    return nCount;
+}
 
-// We leave this condition just in case NUMTYPE has been defined externally to this
-// file and we are supposed to define the SfxXRangeItem based on that.
+// -----------------------------------------------------------------------
 
-#include "rngitem_inc.cxx"
+TYPEINIT1_AUTOFACTORY(SfxRangeItem, SfxPoolItem);
+TYPEINIT1_AUTOFACTORY(SfxUShortRangesItem, SfxPoolItem);
 
-#endif
+sal_uInt16 Count_Impl( const sal_uInt16 *pRanges );
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem()
+{
+    nFrom = 0;
+    nTo = 0;
+}
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem( sal_uInt16 which, sal_uInt16 from, sal_uInt16 to ):
+    SfxPoolItem( which ),
+    nFrom( from ),
+    nTo( to )
+{
+}
+
+// -----------------------------------------------------------------------
+
+SfxRangeItem::SfxRangeItem( const SfxRangeItem& rItem ) :
+    SfxPoolItem( rItem )
+{
+    nFrom = rItem.nFrom;
+    nTo = rItem.nTo;
+}
+
+// -----------------------------------------------------------------------
+
+SfxItemPresentation SfxRangeItem::GetPresentation
+(
+    SfxItemPresentation     /*ePresentation*/,
+    SfxMapUnit              /*eCoreMetric*/,
+    SfxMapUnit              /*ePresentationMetric*/,
+    OUString&               rText,
+    const IntlWrapper *
+)   const
+{
+    rText = OUString::number(nFrom) + ":" + OUString::number(nTo);
+    return SFX_ITEM_PRESENTATION_NAMELESS;
+}
+
+// -----------------------------------------------------------------------
+
+int SfxRangeItem::operator==( const SfxPoolItem& rItem ) const
+{
+    DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
+    SfxRangeItem* pT = (SfxRangeItem*)&rItem;
+    if( nFrom==pT->nFrom && nTo==pT->nTo )
+        return 1;
+    return 0;
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SfxRangeItem::Clone(SfxItemPool *) const
+{
+    return new SfxRangeItem( Which(), nFrom, nTo );
+}
+
+// -----------------------------------------------------------------------
+
+SfxPoolItem* SfxRangeItem::Create(SvStream &rStream, sal_uInt16) const
+{
+    sal_uInt16 nVon(0), nBis(0);
+    rStream >> nVon;
+    rStream >> nBis;
+    return new SfxRangeItem( Which(), nVon, nBis );
+}
+
+// -----------------------------------------------------------------------
+
+SvStream& SfxRangeItem::Store(SvStream &rStream, sal_uInt16) const
+{
+    rStream << nFrom;
+    rStream << nTo;
+    return rStream;
+}
+
+//=========================================================================
+
+SfxUShortRangesItem::SfxUShortRangesItem()
+:   _pRanges(0)
+{
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream )
+:   SfxPoolItem( nWID )
+{
+    sal_uInt16 nCount(0);
+    rStream >> nCount;
+    _pRanges = new sal_uInt16[nCount + 1];
+    for ( sal_uInt16 n = 0; n < nCount; ++n )
+        rStream >> _pRanges[n];
+    _pRanges[nCount] = 0;
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::SfxUShortRangesItem( const SfxUShortRangesItem& rItem )
+:   SfxPoolItem( rItem )
+{
+    sal_uInt16 nCount = Count_Impl(rItem._pRanges) + 1;
+    _pRanges = new sal_uInt16[nCount];
+    memcpy( _pRanges, rItem._pRanges, sizeof(sal_uInt16) * nCount );
+}
+
+//-------------------------------------------------------------------------
+
+SfxUShortRangesItem::~SfxUShortRangesItem()
+{
+    delete _pRanges;
+}
+
+//-------------------------------------------------------------------------
+
+int SfxUShortRangesItem::operator==( const SfxPoolItem &rItem ) const
+{
+    const SfxUShortRangesItem &rOther = (const SfxUShortRangesItem&) rItem;
+    if ( !_pRanges && !rOther._pRanges )
+        return sal_True;
+    if ( _pRanges || rOther._pRanges )
+        return sal_False;
+
+    sal_uInt16 n;
+    for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n )
+        if ( *_pRanges != rOther._pRanges[n] )
+            return 0;
+
+    return !_pRanges[n] && !rOther._pRanges[n];
+}
+
+//-------------------------------------------------------------------------
+
+SfxItemPresentation SfxUShortRangesItem::GetPresentation( SfxItemPresentation /*ePres*/,
+                                    SfxMapUnit /*eCoreMetric*/,
+                                    SfxMapUnit /*ePresMetric*/,
+                                    OUString & /*rText*/,
+                                    const IntlWrapper * ) const
+{
+    // not implemented
+    return SFX_ITEM_PRESENTATION_NONE;
+}
+
+//-------------------------------------------------------------------------
+
+SfxPoolItem* SfxUShortRangesItem::Clone( SfxItemPool * ) const
+{
+    return new SfxUShortRangesItem( *this );
+}
+
+//-------------------------------------------------------------------------
+
+SfxPoolItem* SfxUShortRangesItem::Create( SvStream &rStream, sal_uInt16 ) const
+{
+    return new SfxUShortRangesItem( Which(), rStream );
+}
+
+//-------------------------------------------------------------------------
+
+SvStream& SfxUShortRangesItem::Store( SvStream &rStream, sal_uInt16 ) const
+{
+    sal_uInt16 nCount = Count_Impl( _pRanges );
+    rStream >> nCount;
+    for ( sal_uInt16 n = 0; _pRanges[n]; ++n )
+        rStream >> _pRanges[n];
+    return rStream;
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/rngitem_inc.cxx b/svl/source/items/rngitem_inc.cxx
deleted file mode 100644
index 572c89e..0000000
--- a/svl/source/items/rngitem_inc.cxx
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-// This snippet of code is included by rngitem.cxx but not compiled directly.
-// Ugly hack, probably due to lack of templates in the 20th century.
-
-static inline NUMTYPE Count_Impl(const NUMTYPE * pRanges)
-{
-    NUMTYPE nCount = 0;
-    for (; *pRanges; pRanges += 2) nCount += 2;
-    return nCount;
-}
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxXRangeItem, SfxPoolItem);
-TYPEINIT1_AUTOFACTORY(SfxXRangesItem, SfxPoolItem);
-
-NUMTYPE Count_Impl( const NUMTYPE *pRanges );
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem()
-{
-    nFrom = 0;
-    nTo = 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( sal_uInt16 which, NUMTYPE from, NUMTYPE to ):
-    SfxPoolItem( which ),
-    nFrom( from ),
-    nTo( to )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( const SfxXRangeItem& rItem ) :
-    SfxPoolItem( rItem )
-{
-    nFrom = rItem.nFrom;
-    nTo = rItem.nTo;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangeItem::GetPresentation
-(
-    SfxItemPresentation     /*ePresentation*/,
-    SfxMapUnit              /*eCoreMetric*/,
-    SfxMapUnit              /*ePresentationMetric*/,
-    OUString&               rText,
-    const IntlWrapper *
-)   const
-{
-    rText = OUString::number(nFrom) + ":" + OUString::number(nTo);
-    return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxXRangeItem::operator==( const SfxPoolItem& rItem ) const
-{
-    DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-    SfxXRangeItem* pT = (SfxXRangeItem*)&rItem;
-    if( nFrom==pT->nFrom && nTo==pT->nTo )
-        return 1;
-    return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Clone(SfxItemPool *) const
-{
-    return new SfxXRangeItem( Which(), nFrom, nTo );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Create(SvStream &rStream, sal_uInt16) const
-{
-    NUMTYPE nVon(0), nBis(0);
-    rStream >> nVon;
-    rStream >> nBis;
-    return new SfxXRangeItem( Which(), nVon, nBis );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxXRangeItem::Store(SvStream &rStream, sal_uInt16) const
-{
-    rStream << nFrom;
-    rStream << nTo;
-    return rStream;
-}
-
-//=========================================================================
-
-SfxXRangesItem::SfxXRangesItem()
-:   _pRanges(0)
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream )
-:   SfxPoolItem( nWID )
-{
-    NUMTYPE nCount(0);
-    rStream >> nCount;
-    _pRanges = new NUMTYPE[nCount + 1];
-    for ( NUMTYPE n = 0; n < nCount; ++n )
-        rStream >> _pRanges[n];
-    _pRanges[nCount] = 0;
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( const SfxXRangesItem& rItem )
-:   SfxPoolItem( rItem )
-{
-    NUMTYPE nCount = Count_Impl(rItem._pRanges) + 1;
-    _pRanges = new NUMTYPE[nCount];
-    memcpy( _pRanges, rItem._pRanges, sizeof(NUMTYPE) * nCount );
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::~SfxXRangesItem()
-{
-    delete _pRanges;
-}
-
-//-------------------------------------------------------------------------
-
-int SfxXRangesItem::operator==( const SfxPoolItem &rItem ) const
-{
-    const SfxXRangesItem &rOther = (const SfxXRangesItem&) rItem;
-    if ( !_pRanges && !rOther._pRanges )
-        return sal_True;
-    if ( _pRanges || rOther._pRanges )
-        return sal_False;
-
-    NUMTYPE n;
-    for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n )
-        if ( *_pRanges != rOther._pRanges[n] )
-            return 0;
-
-    return !_pRanges[n] && !rOther._pRanges[n];
-}
-
-//-------------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangesItem::GetPresentation( SfxItemPresentation /*ePres*/,
-                                    SfxMapUnit /*eCoreMetric*/,
-                                    SfxMapUnit /*ePresMetric*/,
-                                    OUString & /*rText*/,
-                                    const IntlWrapper * ) const
-{
-    // not implemented
-    return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Clone( SfxItemPool * ) const
-{
-    return new SfxXRangesItem( *this );
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Create( SvStream &rStream, sal_uInt16 ) const
-{
-    return new SfxXRangesItem( Which(), rStream );
-}
-
-//-------------------------------------------------------------------------
-
-SvStream& SfxXRangesItem::Store( SvStream &rStream, sal_uInt16 ) const
-{
-    NUMTYPE nCount = Count_Impl( _pRanges );
-    rStream >> nCount;
-    for ( NUMTYPE n = 0; _pRanges[n]; ++n )
-        rStream >> _pRanges[n];
-    return rStream;
-}
-
-
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

-- 
To view, visit https://gerrit.libreoffice.org/3171
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I27869be9c70e79a366a547ce061e71a3743f87da
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Thomas Arnhold <thomas@arnhold.org>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.