chart2/source/controller/dialogs/res_DataLabel.hxx    |    3 
 chart2/source/controller/dialogs/tp_AxisLabel.hxx     |    3 
 chart2/source/controller/dialogs/tp_TitleRotation.hxx |    3 
 chart2/uiconfig/ui/dlg_DataLabel.ui                   |  183 +++++++++---------
 chart2/uiconfig/ui/titlerotationtabpage.ui            |    2 
 chart2/uiconfig/ui/tp_DataLabel.ui                    |    6 
 chart2/uiconfig/ui/tp_PolarOptions.ui                 |    7 
 chart2/uiconfig/ui/tp_axisLabel.ui                    |    6 
 cui/source/inc/align.hxx                              |    3 
 cui/uiconfig/ui/cellalignment.ui                      |    2 
 extras/source/glade/libreoffice-catalog.xml.in        |    3 
 include/svx/wrapfield.hxx                             |   50 ----
 include/vcl/field.hxx                                 |    3 
 svx/Library_svx.mk                                    |    1 
 svx/source/dialog/wrapfield.cxx                       |   51 -----
 vcl/source/control/field.cxx                          |   47 +---
 vcl/source/gdi/cvtsvm.cxx                             |    3 
 vcl/source/window/menu.cxx                            |    2 
 18 files changed, 135 insertions(+), 243 deletions(-)

New commits:
commit 892a7be963f5ffdb5af86a9de1cf8a613fbdc162
Author: Caolán McNamara <caol...@redhat.com>
Date:   Thu Sep 25 15:36:40 2014 +0100

    Resolves: fdo#83010 remove svx::WrapField
    
    in favour of a wrap property on NumericField
    
    Change-Id: I62c6bdb69a16f37ae6018a2fe41070fb18dbe4a0

diff --git a/chart2/source/controller/dialogs/res_DataLabel.hxx 
b/chart2/source/controller/dialogs/res_DataLabel.hxx
index 0044e4a..9d6d0e0 100644
--- a/chart2/source/controller/dialogs/res_DataLabel.hxx
+++ b/chart2/source/controller/dialogs/res_DataLabel.hxx
@@ -26,7 +26,6 @@
 #include <svl/itemset.hxx>
 #include "TextDirectionListBox.hxx"
 #include <svx/dialcontrol.hxx>
-#include <svx/wrapfield.hxx>
 #include <sfx2/tabdlg.hxx>
 
 class SvNumberFormatter;
@@ -64,7 +63,7 @@ private:
     VclHBox*             m_pBxOrientation;
     svx::DialControl*    m_pDC_Dial;
     FixedText*           m_pFT_Dial;
-    svx::WrapField*      m_pNF_Degrees;
+    NumericField*        m_pNF_Degrees;
 
     VclHBox*             m_pBxTextDirection;
     TextDirectionListBox*    m_pLB_TextDirection;
diff --git a/chart2/source/controller/dialogs/tp_AxisLabel.hxx 
b/chart2/source/controller/dialogs/tp_AxisLabel.hxx
index 059215b..8da5eaf 100644
--- a/chart2/source/controller/dialogs/tp_AxisLabel.hxx
+++ b/chart2/source/controller/dialogs/tp_AxisLabel.hxx
@@ -23,7 +23,6 @@
 #include <vcl/button.hxx>
 #include <vcl/fixed.hxx>
 #include <svx/dialcontrol.hxx>
-#include <svx/wrapfield.hxx>
 #include <svx/orienthelper.hxx>
 #include "TextDirectionListBox.hxx"
 
@@ -51,7 +50,7 @@ private:
     FixedText*           m_pFlOrient;
     svx::DialControl*    m_pCtrlDial;
     FixedText*           m_pFtRotate;
-    svx::WrapField*      m_pNfRotate;
+    NumericField*        m_pNfRotate;
     TriStateBox*         m_pCbStacked;
     svx::OrientationHelper* m_pOrientHlp;
 
diff --git a/chart2/source/controller/dialogs/tp_TitleRotation.hxx 
b/chart2/source/controller/dialogs/tp_TitleRotation.hxx
index dd3ceb0..0bd5c97 100644
--- a/chart2/source/controller/dialogs/tp_TitleRotation.hxx
+++ b/chart2/source/controller/dialogs/tp_TitleRotation.hxx
@@ -21,7 +21,6 @@
 
 #include <sfx2/tabdlg.hxx>
 #include <svx/dialcontrol.hxx>
-#include <svx/wrapfield.hxx>
 #include <svx/orienthelper.hxx>
 #include <vcl/fixed.hxx>
 #include "TextDirectionListBox.hxx"
@@ -34,7 +33,7 @@ class SchAlignmentTabPage : public SfxTabPage
 private:
     svx::DialControl*        m_pCtrlDial;
     FixedText*               m_pFtRotate;
-    svx::WrapField*          m_pNfRotate;
+    NumericField*            m_pNfRotate;
     TriStateBox*             m_pCbStacked;
     svx::OrientationHelper*  m_pOrientHlp;
     FixedText*               m_pFtTextDirection;
diff --git a/chart2/uiconfig/ui/dlg_DataLabel.ui 
b/chart2/uiconfig/ui/dlg_DataLabel.ui
index 2910aba..cd35953 100644
--- a/chart2/uiconfig/ui/dlg_DataLabel.ui
+++ b/chart2/uiconfig/ui/dlg_DataLabel.ui
@@ -1,12 +1,101 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkAdjustment" id="adjustmentDEGREE">
     <property name="upper">359</property>
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
+  <object class="GtkListStore" id="liststorePLACEMENT">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name guint1 -->
+      <column type="guint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Best fit</col>
+        <col id="1">0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Center</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Above</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Top left</col>
+        <col id="1">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Left</col>
+        <col id="1">4</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Bottom left</col>
+        <col id="1">5</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Below</col>
+        <col id="1">6</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Bottom right</col>
+        <col id="1">7</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Right</col>
+        <col id="1">8</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Top right</col>
+        <col id="1">9</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Inside</col>
+        <col id="1">10</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Outside</col>
+        <col id="1">11</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Near origin</col>
+        <col id="1">12</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="liststoreSEPARATOR">
+    <columns>
+      <!-- column-name gchararray1 -->
+      <column type="gchararray"/>
+      <!-- column-name guint1 -->
+      <column type="guint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Space</col>
+        <col id="1">0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Comma</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Semicolon</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">New line</col>
+        <col id="1">3</col>
+      </row>
+    </data>
+  </object>
   <object class="GtkDialog" id="dlg_DataLabels">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
@@ -366,13 +455,13 @@
                               </packing>
                             </child>
                             <child>
-                              <object class="svxlo-WrapField" 
id="NF_LABEL_DEGREES">
+                              <object class="GtkSpinButton" 
id="NF_LABEL_DEGREES">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="valign">center</property>
                                 <property name="invisible_char">•</property>
-                                <property 
name="invisible_char_set">True</property>
                                 <property 
name="adjustment">adjustmentDEGREE</property>
+                                <property name="wrap">True</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
@@ -474,94 +563,6 @@
       <action-widget response="0">help</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkListStore" id="liststorePLACEMENT">
-    <columns>
-      <!-- column-name gchararray1 -->
-      <column type="gchararray"/>
-      <!-- column-name guint1 -->
-      <column type="guint"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Best fit</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Center</col>
-        <col id="1">1</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Above</col>
-        <col id="1">2</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Top left</col>
-        <col id="1">3</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Left</col>
-        <col id="1">4</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Bottom left</col>
-        <col id="1">5</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Below</col>
-        <col id="1">6</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Bottom right</col>
-        <col id="1">7</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Right</col>
-        <col id="1">8</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Top right</col>
-        <col id="1">9</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Inside</col>
-        <col id="1">10</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Outside</col>
-        <col id="1">11</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Near origin</col>
-        <col id="1">12</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkListStore" id="liststoreSEPARATOR">
-    <columns>
-      <!-- column-name gchararray1 -->
-      <column type="gchararray"/>
-      <!-- column-name guint1 -->
-      <column type="guint"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0" translatable="yes">Space</col>
-        <col id="1">0</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Comma</col>
-        <col id="1">1</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">Semicolon</col>
-        <col id="1">2</col>
-      </row>
-      <row>
-        <col id="0" translatable="yes">New line</col>
-        <col id="1">3</col>
-      </row>
-    </data>
-  </object>
   <object class="GtkSizeGroup" id="sizegroup1">
     <widgets>
       <widget name="FT_TEXT_SEPARATOR"/>
diff --git a/chart2/uiconfig/ui/titlerotationtabpage.ui 
b/chart2/uiconfig/ui/titlerotationtabpage.ui
index 7ee9e7a..6e0eb43 100644
--- a/chart2/uiconfig/ui/titlerotationtabpage.ui
+++ b/chart2/uiconfig/ui/titlerotationtabpage.ui
@@ -33,7 +33,7 @@
                 <property name="row_spacing">6</property>
                 <property name="column_spacing">12</property>
                 <child>
-                  <object class="svxlo-WrapField" id="OrientDegree">
+                  <object class="GtkSpinButton" id="OrientDegree">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="margin_top">40</property>
diff --git a/chart2/uiconfig/ui/tp_DataLabel.ui 
b/chart2/uiconfig/ui/tp_DataLabel.ui
index 798c935..b31bb2e 100644
--- a/chart2/uiconfig/ui/tp_DataLabel.ui
+++ b/chart2/uiconfig/ui/tp_DataLabel.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkAdjustment" id="adjustmentDEGREE">
     <property name="upper">359</property>
@@ -387,12 +388,13 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="svxlo-WrapField" id="NF_LABEL_DEGREES">
+                      <object class="GtkSpinButton" id="NF_LABEL_DEGREES">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="valign">center</property>
                         <property name="invisible_char">•</property>
                         <property name="adjustment">adjustmentDEGREE</property>
+                        <property name="wrap">True</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
diff --git a/chart2/uiconfig/ui/tp_PolarOptions.ui 
b/chart2/uiconfig/ui/tp_PolarOptions.ui
index edf84f0..6f5d8d8 100644
--- a/chart2/uiconfig/ui/tp_PolarOptions.ui
+++ b/chart2/uiconfig/ui/tp_PolarOptions.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkAdjustment" id="adjustmentDEGREE">
     <property name="upper">359</property>
@@ -85,13 +86,13 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="svxlo-WrapField" id="NF_STARTING_ANGLE">
+                  <object class="GtkSpinButton" id="NF_STARTING_ANGLE">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="valign">center</property>
                     <property name="invisible_char">•</property>
-                    <property name="invisible_char_set">True</property>
                     <property name="adjustment">adjustmentDEGREE</property>
+                    <property name="wrap">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
diff --git a/chart2/uiconfig/ui/tp_axisLabel.ui 
b/chart2/uiconfig/ui/tp_axisLabel.ui
index 4727c9d..74d6fa5 100644
--- a/chart2/uiconfig/ui/tp_axisLabel.ui
+++ b/chart2/uiconfig/ui/tp_axisLabel.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkAdjustment" id="adjustmentSpinDegrees">
     <property name="upper">359</property>
@@ -255,12 +256,11 @@
                     <property name="row_spacing">6</property>
                     <property name="column_spacing">12</property>
                     <child>
-                      <object class="svxlo-WrapField" id="OrientDegree">
+                      <object class="GtkSpinButton" id="OrientDegree">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="margin_top">40</property>
                         <property name="invisible_char">•</property>
-                        <property name="invisible_char_set">True</property>
                         <property name="progress_pulse_step">1</property>
                         <property 
name="adjustment">adjustmentSpinDegrees</property>
                         <property name="wrap">True</property>
diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx
index bb249b5..fb5e07e 100644
--- a/cui/source/inc/align.hxx
+++ b/cui/source/inc/align.hxx
@@ -45,7 +45,6 @@
 #include <sfx2/tabdlg.hxx>
 #include <svtools/valueset.hxx>
 #include <svx/dialcontrol.hxx>
-#include <svx/wrapfield.hxx>
 #include <svx/frmdirlbox.hxx>
 
 namespace svx {
@@ -86,7 +85,7 @@ private:
 
     DialControl*         m_pCtrlDial;
     FixedText*           m_pFtRotate;
-    WrapField*           m_pNfRotate;
+    NumericField*        m_pNfRotate;
     FixedText*           m_pFtRefEdge;
     ValueSet*            m_pVsRefEdge;
     TriStateBox*         m_pCbStacked;
diff --git a/cui/uiconfig/ui/cellalignment.ui b/cui/uiconfig/ui/cellalignment.ui
index c455728..9e754e3 100644
--- a/cui/uiconfig/ui/cellalignment.ui
+++ b/cui/uiconfig/ui/cellalignment.ui
@@ -79,7 +79,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="svxlo-WrapField" id="spinDegrees">
+                      <object class="GtkSpinButton" id="spinDegrees">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="invisible_char">•</property>
diff --git a/extras/source/glade/libreoffice-catalog.xml.in 
b/extras/source/glade/libreoffice-catalog.xml.in
index 98e5e26..2d1bb24 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -591,9 +591,6 @@
     <glade-widget-class title="Sidebar Dial Control" 
name="svxlo-SidebarDialControl"
                         generic-name="Sidebar Dial Control" parent="GtkSpinner"
                         icon-name="widget-gtk-spinner"/>
-    <glade-widget-class title="Wrap Field" name="svxlo-WrapField"
-                        generic-name="Wrap Field" parent="GtkSpinButton"
-                        icon-name="widget-gtk-spinbutton"/>
     <glade-widget-class title="Relative Numeric Field" 
name="svxlo-SvxRelativeField"
                         generic-name="Relative Numeric Field" 
parent="GtkSpinButton"
                         icon-name="widget-gtk-spinbutton"/>
diff --git a/include/svx/wrapfield.hxx b/include/svx/wrapfield.hxx
deleted file mode 100644
index ff7cf3a..0000000
--- a/include/svx/wrapfield.hxx
+++ /dev/null
@@ -1,50 +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 .
- */
-
-#ifndef INCLUDED_SVX_WRAPFIELD_HXX
-#define INCLUDED_SVX_WRAPFIELD_HXX
-
-#include <vcl/field.hxx>
-#include <svx/svxdllapi.h>
-
-namespace svx {
-
-
-
-/** A numeric spin field that wraps around the value on limits.
-    @descr  Note: Use type "NumericField" in resources. */
-class SVX_DLLPUBLIC WrapField : public NumericField
-{
-public:
-    explicit            WrapField( vcl::Window* pParent, WinBits nBits );
-
-protected:
-    /** Up event with wrap-around functionality. */
-    virtual void        Up() SAL_OVERRIDE;
-    /** Down event with wrap-around functionality. */
-    virtual void        Down() SAL_OVERRIDE;
-};
-
-
-
-} // namespace svx
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index ccea64f..f5e5ded 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -150,7 +150,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
     svx/source/dialog/swframeposstrings \
     svx/source/dialog/txencbox \
     svx/source/dialog/txenctab \
-    svx/source/dialog/wrapfield \
     svx/source/engine3d/float3d \
     svx/source/items/algitem \
     svx/source/items/hlnkitem \
diff --git a/svx/source/dialog/wrapfield.cxx b/svx/source/dialog/wrapfield.cxx
deleted file mode 100644
index c33ca31..0000000
--- a/svx/source/dialog/wrapfield.cxx
+++ /dev/null
@@ -1,51 +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 .
- */
-
-#include "svx/wrapfield.hxx"
-#include <vcl/builder.hxx>
-
-namespace svx {
-
-WrapField::WrapField( vcl::Window* pParent, WinBits nBits ) :
-    NumericField( pParent, nBits )
-{
-}
-
-extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL 
makeWrapField(vcl::Window *pParent, VclBuilder::stringmap &)
-{
-    return new WrapField(pParent, WB_SPIN|WB_REPEAT|WB_BORDER|WB_TABSTOP);
-}
-
-void WrapField::Up()
-{
-    SetValue( ((GetValue() + GetSpinSize() - GetMin()) % (GetMax() + 1)) + 
GetMin() );
-    GetUpHdl().Call( this );
-}
-
-void WrapField::Down()
-{
-    SetValue( ((GetValue() - GetSpinSize() + GetMax() + 1 - GetMin()) % 
(GetMax() + 1)) + GetMin() );
-    GetDownHdl().Call( this );
-}
-
-
-
-} // namespace svx
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit d61fc0b8946eba921d6b9c6d5fcd76fca83c85d7
Author: Caolán McNamara <caol...@redhat.com>
Date:   Thu Sep 25 15:01:41 2014 +0100

    Related: fdo#83010 implement wrapping on reaching NumericFormatter limits
    
    Change-Id: Ia88671cb71a0bcf8cb55ae0d88625b0f28092615

diff --git a/include/vcl/field.hxx b/include/vcl/field.hxx
index 546b1c9..35648a8 100644
--- a/include/vcl/field.hxx
+++ b/include/vcl/field.hxx
@@ -154,6 +154,7 @@ protected:
     sal_uInt16                  mnDecimalDigits;
     bool                    mbThousandSep;
     bool                    mbShowTrailingZeros;
+    bool                    mbWrapOnLimits;
 
     // the members below are used in all derivatives of NumericFormatter
     // not in NumericFormatter itself.
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 6972381..c475bd2 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -447,6 +447,7 @@ void NumericFormatter::ImplInit()
     mnType              = FORMAT_NUMERIC;
     mbThousandSep       = true;
     mbShowTrailingZeros = true;
+    mbWrapOnLimits      = false;
 
     // for fields
     mnSpinSize          = 1;
@@ -655,7 +656,7 @@ void NumericFormatter::FieldDown()
     else
         nValue = (nRemainder == 0) ? nValue - mnSpinSize : nValue - mnSpinSize 
- nRemainder;
 
-    nValue = ClipAgainstMinMax(mnMin);
+    nValue = ClipAgainstMinMax(nValue);
 
     ImplNewFieldValue( nValue );
 }
@@ -706,9 +707,9 @@ void NumericFormatter::ImplNewFieldValue( sal_Int64 
nNewValue )
 sal_Int64 NumericFormatter::ClipAgainstMinMax(sal_Int64 nValue) const
 {
     if (nValue > mnMax)
-        nValue = mnMax;
+        nValue = mbWrapOnLimits ? mnMin : mnMax;
     else if (nValue < mnMin)
-        nValue = mnMin;
+        nValue = mbWrapOnLimits ? mnMax : mnMin;
     return nValue;
 }
 
@@ -739,6 +740,8 @@ bool NumericField::set_property(const OString &rKey, const 
OString &rValue)
         SetDecimalDigits(rValue.toInt32());
     else if (rKey == "spin-size")
         SetSpinSize(rValue.toInt32());
+    else if (rKey == "wrap")
+        mbWrapOnLimits = toBool(rValue);
     else
         return SpinField::set_property(rKey, rValue);
     return true;
commit e1a5ae3975dfa42003772f8afd98dde387d82653
Author: Caolán McNamara <caol...@redhat.com>
Date:   Thu Sep 25 14:47:20 2014 +0100

    Related: fdo#83010 move NumericFormatter clipping to min/max into one place
    
    Change-Id: I60cfe651a6ec25fc7e482192d908acca25c1ad8b

diff --git a/include/vcl/field.hxx b/include/vcl/field.hxx
index 1bf15e1..546b1c9 100644
--- a/include/vcl/field.hxx
+++ b/include/vcl/field.hxx
@@ -184,6 +184,8 @@ public:
     void                    SetMax( sal_Int64 nNewMax );
     sal_Int64               GetMax() const { return mnMax; }
 
+    sal_Int64               ClipAgainstMinMax(sal_Int64 nValue) const;
+
     void                    SetFirst( sal_Int64 nNewFirst )   { mnFirst = 
nNewFirst; }
     sal_Int64               GetFirst() const                  { return 
mnFirst; }
     void                    SetLast( sal_Int64 nNewLast )     { mnLast = 
nNewLast; }
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index e57c7f6..6972381 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -417,11 +417,7 @@ bool NumericFormatter::ImplNumericReformat( const 
OUString& rStr, sal_Int64& rVa
         return true;
     else
     {
-        sal_Int64 nTempVal = rValue;
-        if ( nTempVal > mnMax )
-            nTempVal = mnMax;
-        else if ( nTempVal < mnMin )
-            nTempVal = mnMin;
+        sal_Int64 nTempVal = ClipAgainstMinMax(rValue);
 
         if ( GetErrorHdl().IsSet() && (rValue != nTempVal) )
         {
@@ -487,11 +483,7 @@ void NumericFormatter::ImplLoadRes( const ResId& rResId )
 
         if ( NUMERICFORMATTER_VALUE & nMask )
         {
-            mnFieldValue = pMgr->ReadLong();
-            if ( mnFieldValue > mnMax )
-                mnFieldValue = mnMax;
-            else if ( mnFieldValue < mnMin )
-                mnFieldValue = mnMin;
+            mnFieldValue = ClipAgainstMinMax(pMgr->ReadLong());
             mnLastValue = mnFieldValue;
         }
 
@@ -554,10 +546,7 @@ OUString NumericFormatter::CreateFieldText( sal_Int64 
nValue ) const
 
 void NumericFormatter::ImplSetUserValue( sal_Int64 nNewValue, Selection* 
pNewSelection )
 {
-    if ( nNewValue > mnMax )
-        nNewValue = mnMax;
-    else if ( nNewValue < mnMin )
-        nNewValue = mnMin;
+    nNewValue = ClipAgainstMinMax(nNewValue);
     mnLastValue = nNewValue;
 
     if ( GetField() )
@@ -579,11 +568,7 @@ sal_Int64 NumericFormatter::GetValue() const
     if ( ImplNumericGetValue( GetField()->GetText(), nTempValue,
                               GetDecimalDigits(), ImplGetLocaleDataWrapper() ) 
)
     {
-        if ( nTempValue > mnMax )
-            nTempValue = mnMax;
-        else if ( nTempValue < mnMin )
-            nTempValue = mnMin;
-        return nTempValue;
+        return ClipAgainstMinMax(nTempValue);
     }
     else
         return mnLastValue;
@@ -656,8 +641,7 @@ void NumericFormatter::FieldUp()
     else
         nValue = (nRemainder == 0) ? nValue + mnSpinSize : nValue - nRemainder;
 
-    if ( nValue > mnMax )
-        nValue = mnMax;
+    nValue = ClipAgainstMinMax(nValue);
 
     ImplNewFieldValue( nValue );
 }
@@ -671,8 +655,7 @@ void NumericFormatter::FieldDown()
     else
         nValue = (nRemainder == 0) ? nValue - mnSpinSize : nValue - mnSpinSize 
- nRemainder;
 
-    if ( nValue < mnMin )
-        nValue = mnMin;
+    nValue = ClipAgainstMinMax(mnMin);
 
     ImplNewFieldValue( nValue );
 }
@@ -720,6 +703,15 @@ void NumericFormatter::ImplNewFieldValue( sal_Int64 
nNewValue )
     }
 }
 
+sal_Int64 NumericFormatter::ClipAgainstMinMax(sal_Int64 nValue) const
+{
+    if (nValue > mnMax)
+        nValue = mnMax;
+    else if (nValue < mnMin)
+        nValue = mnMin;
+    return nValue;
+}
+
 NumericField::NumericField( vcl::Window* pParent, WinBits nWinStyle ) :
     SpinField( pParent, nWinStyle )
 {
@@ -1944,11 +1936,7 @@ sal_Int64 CurrencyFormatter::GetValue() const
     sal_Int64 nTempValue;
     if ( ImplCurrencyGetValue( GetField()->GetText(), nTempValue, 
GetDecimalDigits(), ImplGetLocaleDataWrapper() ) )
     {
-        if ( nTempValue > mnMax )
-            nTempValue = mnMax;
-        else if ( nTempValue < mnMin )
-            nTempValue = mnMin;
-        return nTempValue;
+        return ClipAgainstMinMax(nTempValue);
     }
     else
         return mnLastValue;
commit 259ab763f236778b1c9c4a9707c0b9e0b565c24f
Author: Caolán McNamara <caol...@redhat.com>
Date:   Thu Sep 25 11:23:52 2014 +0100

    coverity#1240250 Buffer not null terminated
    
    doesn't matter in practice
    
    Change-Id: I410022a395d25827217b9c542d79718f6f5b333d

diff --git a/vcl/source/gdi/cvtsvm.cxx b/vcl/source/gdi/cvtsvm.cxx
index efab97e..8a3454e 100644
--- a/vcl/source/gdi/cvtsvm.cxx
+++ b/vcl/source/gdi/cvtsvm.cxx
@@ -202,12 +202,13 @@ void ImplWriteFillColor( SvStream& rOStm, const Color& 
rColor, sal_Int16 nStyle
 void ImplWriteFont( SvStream& rOStm, const vcl::Font& rFont,
                     rtl_TextEncoding& rActualCharSet )
 {
-    char    aName[32];
+    char    aName[33];
     short   nWeight;
 
     OString aByteName(OUStringToOString(rFont.GetName(),
         rOStm.GetStreamCharSet()));
     strncpy( aName, aByteName.getStr(), 32 );
+    aName[32] = 0;
 
     switch ( rFont.GetWeight() )
     {
commit 53644ab43236f19fbba5e61e499e0c4d3b9e7f1f
Author: Caolán McNamara <caol...@redhat.com>
Date:   Thu Sep 25 11:18:39 2014 +0100

    coverity#1147661 Uninitialized scalar value
    
    Change-Id: I7a225287c9ca2f14d2e8da15380c541148d1a15f

diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 8809231..21e16d3 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -121,6 +121,8 @@ Menu::Menu()
       nMenuFlags(0),
       nDefaultItem(0),
       nSelectedId(0),
+      nImgOrChkPos(0),
+      nTextPos(0),
       bCanceled(false),
       bInCallback(false),
       bKilled(false),
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to