split the HexString template class out of qstylehelper
authorLars Knoll <lars.knoll@nokia.com>
Tue, 3 May 2011 08:40:58 +0000 (10:40 +0200)
committerLars Knoll <lars.knoll@nokia.com>
Tue, 3 May 2011 11:19:29 +0000 (13:19 +0200)
The class is used in quite a few places and has no relation
to styles. Split it out into it's own file to remove a dependency
between Gui and Widgets.

src/gui/image/qicon.cpp
src/gui/image/qiconloader.cpp
src/gui/image/qpixmap.cpp
src/gui/kernel/kernel.pri
src/gui/kernel/qhexstring_p.h [new file with mode: 0644]
src/gui/painting/qbrush.cpp
src/gui/painting/qdrawutil.cpp
src/gui/painting/qpaintengine_x11.cpp
src/gui/painting/qpainter.cpp
src/gui/styles/qstylehelper_p.h

index 7182062..ffe7e30 100644 (file)
@@ -66,7 +66,7 @@
 #include "private/qkde_p.h"
 #endif
 
-#include "private/qstylehelper_p.h"
+#include "private/qhexstring_p.h"
 
 #ifndef QT_NO_ICON
 QT_BEGIN_NAMESPACE
index 0a42f0a..c423397 100644 (file)
@@ -63,7 +63,7 @@
 #include <private/qt_x11_p.h>
 #endif
 
-#include <private/qstylehelper_p.h>
+#include <private/qhexstring_p.h>
 
 QT_BEGIN_NAMESPACE
 
index 34804e5..ee16e1b 100644 (file)
@@ -86,7 +86,7 @@
 #endif
 
 #include "qpixmap_raster_p.h"
-#include "private/qstylehelper_p.h"
+#include "private/qhexstring_p.h"
 
 QT_BEGIN_NAMESPACE
 
index 8547009..e02230c 100644 (file)
@@ -49,6 +49,7 @@ HEADERS += \
        kernel/qsoftkeymanager_p.h \
     kernel/qsoftkeymanager_common_p.h \
        kernel/qguiplatformplugin_p.h \
+        kernel/qhexstring_p.h
 
 SOURCES += \
        kernel/qaction.cpp \
diff --git a/src/gui/kernel/qhexstring_p.h b/src/gui/kernel/qhexstring_p.h
new file mode 100644 (file)
index 0000000..3c8d562
--- /dev/null
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights.  These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/qglobal.h>
+#include <QtCore/qpoint.h>
+#include <QtCore/qstring.h>
+#include <QtGui/qpolygon.h>
+#include <QtCore/qstringbuilder.h>
+
+#ifndef QHEXSTRING_P_H
+#define QHEXSTRING_P_H
+
+//
+//  W A R N I N G
+//  -------------
+//
+// This file is not part of the Qt API.  It exists purely as an
+// implementation detail.  This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+QT_BEGIN_NAMESPACE
+
+// internal helper. Converts an integer value to an unique string token
+template <typename T>
+        struct HexString
+{
+    inline HexString(const T t)
+        : val(t)
+    {}
+
+    inline void write(QChar *&dest) const
+    {
+        const ushort hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
+        const char *c = reinterpret_cast<const char *>(&val);
+        for (uint i = 0; i < sizeof(T); ++i) {
+            *dest++ = hexChars[*c & 0xf];
+            *dest++ = hexChars[(*c & 0xf0) >> 4];
+            ++c;
+        }
+    }
+    const T val;
+};
+
+// specialization to enable fast concatenating of our string tokens to a string
+template <typename T>
+        struct QConcatenable<HexString<T> >
+{
+    typedef HexString<T> type;
+    enum { ExactSize = true };
+    static int size(const HexString<T> &) { return sizeof(T) * 2; }
+    static inline void appendTo(const HexString<T> &str, QChar *&out) { str.write(out); }
+    typedef QString ConvertTo;
+};
+
+QT_END_NAMESPACE
+
+#endif // QHEXSTRING_P_H
index bf5764a..538128c 100644 (file)
@@ -48,7 +48,7 @@
 #include "qline.h"
 #include "qdebug.h"
 #include <QtCore/qcoreapplication.h>
-#include "private/qstylehelper_p.h"
+#include "private/qhexstring_p.h"
 #include <QtCore/qnumeric.h>
 
 QT_BEGIN_NAMESPACE
index 89474d9..e4094a8 100644 (file)
@@ -48,7 +48,7 @@
 #include <private/qpaintengineex_p.h>
 #include <qvarlengtharray.h>
 #include <qmath.h>
-#include <private/qstylehelper_p.h>
+#include <private/qhexstring_p.h>
 
 QT_BEGIN_NAMESPACE
 
index 94828fb..1256996 100644 (file)
@@ -79,7 +79,7 @@
 #include <private/qtessellator_p.h>
 #endif
 
-#include <private/qstylehelper_p.h>
+#include <private/qhexstring_p.h>
 
 QT_BEGIN_NAMESPACE
 
index 9fafba5..785d561 100644 (file)
@@ -74,7 +74,7 @@
 #include <private/qmath_p.h>
 #include <private/qstatictext_p.h>
 #include <private/qglyphs_p.h>
-#include <private/qstylehelper_p.h>
+#include <private/qhexstring_p.h>
 #include <private/qrawfont_p.h>
 
 QT_BEGIN_NAMESPACE
index 27587e3..6aeb71c 100644 (file)
@@ -59,6 +59,8 @@
 // We mean it.
 //
 
+#include <private/qhexstring_p.h>
+
 QT_BEGIN_NAMESPACE
 
 class QPainter;
@@ -81,37 +83,6 @@ namespace QStyleHelper
                      int bottom = 0);
 }
 
-// internal helper. Converts an integer value to an unique string token
-template <typename T>
-        struct HexString
-{
-    inline HexString(const T t)
-        : val(t)
-    {}
-
-    inline void write(QChar *&dest) const
-    {
-        const ushort hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-        const char *c = reinterpret_cast<const char *>(&val);
-        for (uint i = 0; i < sizeof(T); ++i) {
-            *dest++ = hexChars[*c & 0xf];
-            *dest++ = hexChars[(*c & 0xf0) >> 4];
-            ++c;
-        }
-    }
-    const T val;
-};
-
-// specialization to enable fast concatenating of our string tokens to a string
-template <typename T>
-        struct QConcatenable<HexString<T> >
-{
-    typedef HexString<T> type;
-    enum { ExactSize = true };
-    static int size(const HexString<T> &) { return sizeof(T) * 2; }
-    static inline void appendTo(const HexString<T> &str, QChar *&out) { str.write(out); }
-    typedef QString ConvertTo;
-};
 
 QT_END_NAMESPACE