| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-03-05 11:25:49 +01:00
										 |  |  | ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-06-17 00:01:27 +10:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** Commercial Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** Licensees holding valid Qt Commercial licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the Qt Commercial License Agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and Nokia. | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** 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.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							| 
									
										
										
										
											2009-08-14 09:30:56 +02:00
										 |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | **************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-04 13:16:10 +01:00
										 |  |  | //#include <complex>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //template <typename T> class B;  B foo() {}
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtCore/QDebug>
 | 
					
						
							| 
									
										
										
										
											2009-09-03 09:15:24 +02:00
										 |  |  | #include <QtCore/QDateTime>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtCore/QDir>
 | 
					
						
							|  |  |  | #include <QtCore/QHash>
 | 
					
						
							|  |  |  | #include <QtCore/QLibrary>
 | 
					
						
							| 
									
										
										
										
											2009-01-08 11:02:04 +01:00
										 |  |  | #include <QtCore/QLinkedList>
 | 
					
						
							|  |  |  | #include <QtCore/QList>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtCore/QMap>
 | 
					
						
							|  |  |  | #include <QtCore/QPointer>
 | 
					
						
							|  |  |  | #include <QtCore/QString>
 | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #include <QtCore/QStringList>
 | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  | #include <QtCore/QSettings>
 | 
					
						
							| 
									
										
										
										
											2009-08-28 09:44:11 +02:00
										 |  |  | #include <QtCore/QStack>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtCore/QThread>
 | 
					
						
							|  |  |  | #include <QtCore/QVariant>
 | 
					
						
							|  |  |  | #include <QtCore/QVector>
 | 
					
						
							| 
									
										
										
										
											2010-04-21 19:25:09 +02:00
										 |  |  | #include <QtCore/QUrl>
 | 
					
						
							| 
									
										
										
										
											2009-06-25 15:00:57 +02:00
										 |  |  | #if QT_VERSION >= 0x040500
 | 
					
						
							| 
									
										
										
										
											2009-04-07 13:50:21 +02:00
										 |  |  | #include <QtCore/QSharedPointer>
 | 
					
						
							| 
									
										
										
										
											2009-06-25 15:00:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <QtGui/QApplication>
 | 
					
						
							|  |  |  | #include <QtGui/QAction>
 | 
					
						
							|  |  |  | #include <QtGui/QColor>
 | 
					
						
							|  |  |  | #include <QtGui/QFont>
 | 
					
						
							|  |  |  | #include <QtGui/QLabel>
 | 
					
						
							| 
									
										
										
										
											2010-10-08 14:26:44 +02:00
										 |  |  | //#include <QtGui/private/qfixed_p.h>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <QtGui/QPainter>
 | 
					
						
							|  |  |  | #include <QtGui/QPainterPath>
 | 
					
						
							| 
									
										
										
										
											2010-06-30 15:20:16 +02:00
										 |  |  | #include <QtGui/QRegion>
 | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  | #include <QtGui/QStandardItemModel>
 | 
					
						
							| 
									
										
										
										
											2010-09-28 09:35:59 +02:00
										 |  |  | #include <QtGui/QTextCursor>
 | 
					
						
							|  |  |  | #include <QtGui/QTextDocument>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <QtNetwork/QHostAddress>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-16 11:17:00 +01:00
										 |  |  | #include <deque>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <iostream>
 | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  | #include <map>
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | #include <list>
 | 
					
						
							| 
									
										
										
										
											2009-03-11 13:31:38 +01:00
										 |  |  | #include <set>
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | #include <stack>
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | #include <vector>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-18 10:56:42 +02:00
										 |  |  | #if defined(__GNUC__) && !defined(__llvm__) && !defined(Q_OS_MAC)
 | 
					
						
							| 
									
										
										
										
											2010-04-20 12:06:48 +02:00
										 |  |  | #    define USE_GCC_EXT 1
 | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  | #    undef __DEPRECATED
 | 
					
						
							| 
									
										
										
										
											2010-04-20 12:06:48 +02:00
										 |  |  | #    include <hash_set>
 | 
					
						
							| 
									
										
										
										
											2010-04-15 18:28:58 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #ifdef Q_OS_WIN
 | 
					
						
							|  |  |  | #include <windows.h>
 | 
					
						
							| 
									
										
										
										
											2010-04-07 15:23:37 +02:00
										 |  |  | #undef min
 | 
					
						
							|  |  |  | #undef max
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  | #ifdef Q_OS_LINUX
 | 
					
						
							|  |  |  | #include <xmmintrin.h>
 | 
					
						
							|  |  |  | #include <stddef.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | Q_DECLARE_METATYPE(QHostAddress) | 
					
						
							|  |  |  | Q_DECLARE_METATYPE(QList<int>) | 
					
						
							|  |  |  | Q_DECLARE_METATYPE(QStringList) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef QMap<uint, QStringList> MyType; | 
					
						
							|  |  |  | #define COMMA ,
 | 
					
						
							|  |  |  | Q_DECLARE_METATYPE(QMap<uint COMMA QStringList>) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-04 13:16:10 +01:00
										 |  |  | template <typename T> class Vector | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     explicit Vector(int size) : m_size(size), m_data(new T[size]) {} | 
					
						
							|  |  |  |     ~Vector() { delete [] m_data; } | 
					
						
							|  |  |  |     //...
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     int m_size; | 
					
						
							|  |  |  |     T *m_data; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-18 15:11:54 +01:00
										 |  |  | namespace nsX { | 
					
						
							|  |  |  | namespace nsY { | 
					
						
							|  |  |  | int z; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace nsXY = nsX::nsY; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int qwert() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return nsXY::z; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | uint qHash(const QMap<int, int> &) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | uint qHash(const double & f) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return int(f); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:48:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-05 08:46:24 +02:00
										 |  |  | class Foo | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-05-05 08:46:24 +02:00
										 |  |  |     Foo(int i = 0) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         : a(i), b(2) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         int s = 1; | 
					
						
							|  |  |  |         int t = 2; | 
					
						
							|  |  |  |         b = 2 + s + t; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							| 
									
										
										
										
											2009-08-31 09:14:04 +02:00
										 |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         a += 1; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-04-16 12:17:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-01 14:33:52 +02:00
										 |  |  |     virtual ~Foo() | 
					
						
							| 
									
										
										
										
											2009-04-16 12:17:01 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |         a = 5; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     void doit() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         static QObject ob; | 
					
						
							|  |  |  |         m["1"] = "2"; | 
					
						
							|  |  |  |         h[&ob] = m.begin(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         a += 1; | 
					
						
							|  |  |  |         --b; | 
					
						
							|  |  |  |         //s += 'x';
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     struct Bar { | 
					
						
							|  |  |  |         Bar() : ob(0) {} | 
					
						
							|  |  |  |         QObject *ob; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     int a, b; | 
					
						
							|  |  |  |     char x[6]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     //QString s;
 | 
					
						
							|  |  |  |     typedef QMap<QString, QString> Map; | 
					
						
							|  |  |  |     Map m; | 
					
						
							|  |  |  |     QHash<QObject *, Map::iterator> h; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | class X : public Foo | 
					
						
							| 
									
										
										
										
											2009-06-17 16:00:03 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     X() { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | class XX : virtual public Foo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     XX() { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-17 16:00:03 +02:00
										 |  |  | class Y : virtual public Foo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Y() { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | class D : public X, public Y | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int diamond; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void testArray() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | #if 1
 | 
					
						
							|  |  |  |     X x; | 
					
						
							|  |  |  |     XX xx; | 
					
						
							|  |  |  |     D diamond; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(diamond); | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  |     Foo *f = &xx; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(f); | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  |     Foo ff; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(ff); | 
					
						
							| 
									
										
										
										
											2009-11-04 09:21:49 +01:00
										 |  |  |     double d[3][3]; | 
					
						
							|  |  |  |     for (int i = 0; i != 3; ++i) | 
					
						
							|  |  |  |         for (int j = 0; j != 3; ++j) | 
					
						
							|  |  |  |             d[i][j] = i + j; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(d); | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-11-04 09:21:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 11:10:05 +02:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2009-04-03 13:39:14 +02:00
										 |  |  |     char c[20]; | 
					
						
							|  |  |  |     c[0] = 'a'; | 
					
						
							|  |  |  |     c[1] = 'b'; | 
					
						
							|  |  |  |     c[2] = 'c'; | 
					
						
							|  |  |  |     c[3] = 'd'; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(c); | 
					
						
							| 
									
										
										
										
											2010-06-29 11:10:05 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-04-03 13:39:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | #if 1
 | 
					
						
							|  |  |  |     QString s[20]; | 
					
						
							|  |  |  |     s[0] = "a"; | 
					
						
							|  |  |  |     s[1] = "b"; | 
					
						
							|  |  |  |     s[2] = "c"; | 
					
						
							|  |  |  |     s[3] = "d"; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(s); | 
					
						
							| 
									
										
										
										
											2010-06-29 11:10:05 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 11:10:05 +02:00
										 |  |  | #if 1
 | 
					
						
							|  |  |  |     QByteArray b[20]; | 
					
						
							|  |  |  |     b[0] = "a"; | 
					
						
							|  |  |  |     b[1] = "b"; | 
					
						
							|  |  |  |     b[2] = "c"; | 
					
						
							|  |  |  |     b[3] = "d"; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(b); | 
					
						
							| 
									
										
										
										
											2010-06-29 11:10:05 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     Foo foo[10]; | 
					
						
							|  |  |  |     //for (int i = 0; i != sizeof(foo)/sizeof(foo[0]); ++i) {
 | 
					
						
							|  |  |  |     for (int i = 0; i < 5; ++i) { | 
					
						
							|  |  |  |         foo[i].a = i; | 
					
						
							|  |  |  |         foo[i].doit(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-06-29 10:58:09 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #ifndef Q_CC_RVCT
 | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  | struct TestAnonymous | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     union { | 
					
						
							|  |  |  |         struct { int i; int b; }; | 
					
						
							|  |  |  |         struct { float f; }; | 
					
						
							|  |  |  |         double d; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | void testPeekAndPoke3() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     // Anonymous structs
 | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #ifndef Q_CC_RVCT
 | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |         union { | 
					
						
							|  |  |  |             struct { int i; int b; }; | 
					
						
							|  |  |  |             struct { float f; }; | 
					
						
							|  |  |  |             double d; | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  |         } a = { { 42, 43 } }; | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |         a.i = 1; // Break here. Expand a. Step.
 | 
					
						
							|  |  |  |         a.i = 2; // Change a.i in Locals view to 0. This changes f, d but expectedly not b. Step.
 | 
					
						
							|  |  |  |         a.i = 3; // Continue.
 | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |         Q_UNUSED(a); | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Complex watchers
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         struct S { int a; double b; } s[10]; | 
					
						
							|  |  |  |         for (int i = 0; i != 10; ++i) { | 
					
						
							|  |  |  |             s[i].a = i;  // Break here. Expand s and s[0]. Step.
 | 
					
						
							|  |  |  |             // Watcher Context: "Add New Watcher".
 | 
					
						
							|  |  |  |             // Type    ['s[%d].a' % i for i in range(5)]
 | 
					
						
							| 
									
										
										
										
											2010-10-12 10:47:07 +02:00
										 |  |  |             // Expand it, continue stepping. This should result in a list
 | 
					
						
							|  |  |  |             // of five items containing the .a fields of s[0]..s[4].
 | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |         Q_UNUSED(s); | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-03-17 11:44:04 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // QImage display
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QImage im(QSize(200, 200), QImage::Format_RGB32); | 
					
						
							|  |  |  |         im.fill(QColor(200, 10, 30).rgba()); | 
					
						
							|  |  |  |         QPainter pain; | 
					
						
							|  |  |  |         pain.begin(&im); | 
					
						
							|  |  |  |         pain.setPen(QPen(Qt::black, 5.0, Qt::SolidLine, Qt::RoundCap)); | 
					
						
							|  |  |  |         pain.drawEllipse(20, 20, 160, 160); // Break here. Step.
 | 
					
						
							|  |  |  |         // Toggle between "Normal" and "Displayed" in L&W Context Menu, entry "Display of Type QImage". Step.
 | 
					
						
							|  |  |  |         pain.drawArc(70, 115, 60, 30, 200 * 16, 140 * 16); | 
					
						
							|  |  |  |         pain.setBrush(Qt::black); | 
					
						
							|  |  |  |         pain.drawEllipse(65, 70, 15, 15); // Step.
 | 
					
						
							|  |  |  |         pain.drawEllipse(120, 70, 15, 15); // Step.
 | 
					
						
							|  |  |  |         pain.end(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef Q_CC_RVCT
 | 
					
						
							| 
									
										
										
										
											2010-03-18 18:10:00 +01:00
										 |  |  | namespace { // anon
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Something | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Something() { a = b = 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void foo() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         a = 42; | 
					
						
							|  |  |  |         b = 43; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int a, b; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // anon
 | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-18 18:10:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  | void testAnonymous() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #ifndef Q_CC_RVCT
 | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  |     TestAnonymous a; | 
					
						
							|  |  |  |     a.i = 1; | 
					
						
							|  |  |  |     a.i = 2; | 
					
						
							|  |  |  |     a.i = 3; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(a); | 
					
						
							| 
									
										
										
										
											2010-03-18 18:10:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Something s; | 
					
						
							|  |  |  |     s.foo(); | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(s); | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | typedef void (*func_t)(); | 
					
						
							|  |  |  | func_t testFunctionPointer() | 
					
						
							| 
									
										
										
										
											2010-02-26 14:25:36 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     func_t f1 = testAnonymous; | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  |     func_t f2 = testPeekAndPoke3; | 
					
						
							|  |  |  |     func_t f3 = testPeekAndPoke3; | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  |     Q_UNUSED(f1); | 
					
						
							|  |  |  |     Q_UNUSED(f2); | 
					
						
							|  |  |  |     Q_UNUSED(f3); | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  |     return f1; | 
					
						
							| 
									
										
										
										
											2010-02-26 14:25:36 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QByteArray testQByteArray() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QByteArray ba = "Hello"; | 
					
						
							|  |  |  |     ba += '"'; | 
					
						
							|  |  |  |     ba += "World"; | 
					
						
							| 
									
										
										
										
											2009-04-03 11:54:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     const char *str1 = "\356"; | 
					
						
							|  |  |  |     const char *str2 = "\xee"; | 
					
						
							|  |  |  |     const char *str3 = "\\ee"; | 
					
						
							|  |  |  |     QByteArray buf1( str1 ); | 
					
						
							|  |  |  |     QByteArray buf2( str2 ); | 
					
						
							|  |  |  |     QByteArray buf3( str3 ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ba += char(0); | 
					
						
							|  |  |  |     ba += 1; | 
					
						
							|  |  |  |     ba += 2; | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  |     return ba; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-11 17:29:10 +01:00
										 |  |  | static void throwit1() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     throw 14; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void throwit() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     throwit1(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int testCatchThrow() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int gotit = 0; | 
					
						
							|  |  |  |     try { | 
					
						
							|  |  |  |         throwit(); | 
					
						
							|  |  |  |     } catch (int what) { | 
					
						
							|  |  |  |         gotit = what; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return gotit; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-27 12:40:14 +02:00
										 |  |  | void testQDate() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QDate date; | 
					
						
							|  |  |  |     date = QDate::currentDate(); | 
					
						
							|  |  |  |     date = date.addDays(5); | 
					
						
							|  |  |  |     date = date.addDays(5); | 
					
						
							|  |  |  |     date = date.addDays(5); | 
					
						
							|  |  |  |     date = date.addDays(5); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testQTime() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QTime time; | 
					
						
							|  |  |  |     time = QTime::currentTime(); | 
					
						
							|  |  |  |     time = time.addSecs(5); | 
					
						
							|  |  |  |     time = time.addSecs(5); | 
					
						
							|  |  |  |     time = time.addSecs(5); | 
					
						
							|  |  |  |     time = time.addSecs(5); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testQDateTime() | 
					
						
							| 
									
										
										
										
											2009-09-03 09:15:24 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QDateTime date; | 
					
						
							|  |  |  |     date = QDateTime::currentDateTime(); | 
					
						
							|  |  |  |     date = date.addSecs(5); | 
					
						
							|  |  |  |     date = date.addSecs(5); | 
					
						
							|  |  |  |     date = date.addSecs(5); | 
					
						
							|  |  |  |     date = date.addSecs(5); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QFileInfo testQFileInfo() | 
					
						
							| 
									
										
										
										
											2009-07-14 18:14:49 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QFileInfo fi("/tmp/t"); | 
					
						
							|  |  |  |     QString s = fi.absoluteFilePath(); | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  |     s = fi.bundleName(); | 
					
						
							|  |  |  |     s = fi.bundleName(); | 
					
						
							|  |  |  |     s = fi.bundleName(); | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QFileInfo result("/tmp/t"); | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2009-07-14 18:14:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-08 14:26:44 +02:00
										 |  |  | void testQFixed() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-10-08 14:56:17 +02:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2010-10-08 14:26:44 +02:00
										 |  |  |     QFixed f = QFixed::fromReal(4.2); | 
					
						
							|  |  |  |     f += 1; | 
					
						
							|  |  |  |     f += 1; | 
					
						
							|  |  |  |     f *= -1; | 
					
						
							|  |  |  |     f += 1; | 
					
						
							|  |  |  |     f += 1; | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2009-07-14 18:14:49 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QHash<int, float> testQHash() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-27 17:41:31 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QHash<int, float> hgg0; | 
					
						
							|  |  |  |     hgg0[11] = 11.0; | 
					
						
							|  |  |  |     hgg0[22] = 22.0; | 
					
						
							| 
									
										
										
										
											2009-01-27 17:15:51 +01:00
										 |  |  |     hgg0[22] = 22.0; | 
					
						
							|  |  |  |     hgg0[22] = 22.0; | 
					
						
							|  |  |  |     hgg0[22] = 22.0; | 
					
						
							|  |  |  |     hgg0[22] = 22.0; | 
					
						
							|  |  |  |     hgg0[22] = 22.0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-27 17:15:51 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-28 16:55:09 +01:00
										 |  |  |     QHash<QString, int> hgg1; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     hgg1["22.0"] = 22.0; | 
					
						
							| 
									
										
										
										
											2009-01-28 16:55:09 +01:00
										 |  |  |     hgg1["123.0"] = 22.0; | 
					
						
							|  |  |  |     hgg1["111111ss111128.0"] = 28.0; | 
					
						
							|  |  |  |     hgg1["11124.0"] = 22.0; | 
					
						
							|  |  |  |     hgg1["1111125.0"] = 22.0; | 
					
						
							|  |  |  |     hgg1["11111126.0"] = 22.0; | 
					
						
							|  |  |  |     hgg1["111111127.0"] = 27.0; | 
					
						
							|  |  |  |     hgg1["111111111128.0"] = 28.0; | 
					
						
							|  |  |  |     hgg1["111111111111111111129.0"] = 29.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QHash<QByteArray, float> hgx1; | 
					
						
							|  |  |  |     hgx1["22.0"] = 22.0; | 
					
						
							|  |  |  |     hgx1["123.0"] = 22.0; | 
					
						
							|  |  |  |     hgx1["111111ss111128.0"] = 28.0; | 
					
						
							|  |  |  |     hgx1["11124.0"] = 22.0; | 
					
						
							|  |  |  |     hgx1["1111125.0"] = 22.0; | 
					
						
							|  |  |  |     hgx1["11111126.0"] = 22.0; | 
					
						
							|  |  |  |     hgx1["111111127.0"] = 27.0; | 
					
						
							|  |  |  |     hgx1["111111111128.0"] = 28.0; | 
					
						
							|  |  |  |     hgx1["111111111111111111129.0"] = 29.0; | 
					
						
							| 
									
										
										
										
											2009-01-27 17:15:51 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-03-05 11:06:25 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2009-03-05 13:52:52 +01:00
										 |  |  |     QHash<int, QString> hgg2; | 
					
						
							|  |  |  |     hgg2[22] = "22.0"; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QHash<QString, Foo> hgg3; | 
					
						
							|  |  |  |     hgg3["22.0"] = Foo(22); | 
					
						
							|  |  |  |     hgg3["33.0"] = Foo(33); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject ob; | 
					
						
							|  |  |  |     QHash<QString, QPointer<QObject> > hash; | 
					
						
							|  |  |  |     hash.insert("Hallo", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     hash.insert("Welt", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     hash.insert(".", QPointer<QObject>(&ob)); | 
					
						
							| 
									
										
										
										
											2009-01-27 17:15:51 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     QHash<int, float> result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQImage() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-08-18 10:56:42 +02:00
										 |  |  |     // only works with Python dumper
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QImage im(QSize(200, 200), QImage::Format_RGB32); | 
					
						
							|  |  |  |     im.fill(QColor(200, 100, 130).rgba()); | 
					
						
							|  |  |  |     QPainter pain; | 
					
						
							|  |  |  |     pain.begin(&im); | 
					
						
							|  |  |  |     pain.drawLine(2, 2, 130, 130); | 
					
						
							|  |  |  |     pain.drawLine(4, 2, 130, 140); | 
					
						
							|  |  |  |     pain.drawRect(30, 30, 80, 80); | 
					
						
							|  |  |  |     pain.end(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-15 17:44:56 +01:00
										 |  |  | struct Function | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Function(QByteArray var, QByteArray f, double min, double max) | 
					
						
							|  |  |  |       : var(var), f(f), min(min), max(max) {} | 
					
						
							|  |  |  |     QByteArray var; | 
					
						
							|  |  |  |     QByteArray f; | 
					
						
							|  |  |  |     double min; | 
					
						
							|  |  |  |     double max; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testFunction() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-03-16 12:08:54 +01:00
										 |  |  |     // In order to use this, switch on the 'qDump__Function' in gdbmacros.py
 | 
					
						
							| 
									
										
										
										
											2010-03-15 17:44:56 +01:00
										 |  |  |     Function func("x", "sin(x)", 0, 1); | 
					
						
							|  |  |  |     func.max = 10; | 
					
						
							|  |  |  |     func.f = "cos(x)"; | 
					
						
							|  |  |  |     func.max = 4; | 
					
						
							|  |  |  |     func.max = 5; | 
					
						
							|  |  |  |     func.max = 6; | 
					
						
							|  |  |  |     func.max = 7; | 
					
						
							|  |  |  |     func.max = 8; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 17:46:52 +02:00
										 |  |  | void testOutput() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     qDebug() << "qDebug() 1"; | 
					
						
							|  |  |  |     qDebug() << "qDebug() 2"; | 
					
						
							|  |  |  |     qDebug() << "qDebug() 3"; | 
					
						
							| 
									
										
										
										
											2009-02-23 21:15:32 +01:00
										 |  |  |     qDebug() << "qDebug <foo & bar>"; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     std::cout << "std::cout @@ 1" << std::endl; | 
					
						
							|  |  |  |     std::cout << "std::cout @@ 2\n"; | 
					
						
							|  |  |  |     std::cout << "std::cout @@ 3" << std::endl; | 
					
						
							| 
									
										
										
										
											2009-02-23 21:15:32 +01:00
										 |  |  |     std::cout << "std::cout <foo & bar>\n"; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     std::cerr << "std::cerr 1\n"; | 
					
						
							|  |  |  |     std::cerr << "std::cerr 2\n"; | 
					
						
							|  |  |  |     std::cerr << "std::cerr 3\n"; | 
					
						
							| 
									
										
										
										
											2009-02-23 21:15:32 +01:00
										 |  |  |     std::cerr << "std::cerr <foo & bar>\n"; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 17:46:52 +02:00
										 |  |  | void testInput() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #if 0
 | 
					
						
							|  |  |  |     // This works only when "Run in terminal" is selected
 | 
					
						
							|  |  |  |     // in the Run Configuration.
 | 
					
						
							|  |  |  |     int i; | 
					
						
							|  |  |  |     std::cin >> i; | 
					
						
							|  |  |  |     int j; | 
					
						
							|  |  |  |     std::cin >> j; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 11:02:04 +01:00
										 |  |  | void testQLinkedList() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #if 1
 | 
					
						
							|  |  |  |     QLinkedList<int> li; | 
					
						
							|  |  |  |     QLinkedList<uint> lu; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (int i = 0; i != 3; ++i) | 
					
						
							|  |  |  |         li.append(i); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 11:50:20 +01:00
										 |  |  |     QLinkedList<Foo *> lpi; | 
					
						
							|  |  |  |     lpi.append(new Foo(1)); | 
					
						
							|  |  |  |     lpi.append(0); | 
					
						
							|  |  |  |     lpi.append(new Foo(3)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 11:02:04 +01:00
										 |  |  |     QLinkedList<qulonglong> l; | 
					
						
							|  |  |  |     l.append(42); | 
					
						
							|  |  |  |     l.append(43); | 
					
						
							|  |  |  |     l.append(44); | 
					
						
							|  |  |  |     l.append(45); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QLinkedList<Foo> f; | 
					
						
							|  |  |  |     f.append(Foo(1)); | 
					
						
							|  |  |  |     f.append(Foo(2)); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  |     QLinkedList<std::string> v; | 
					
						
							|  |  |  |     v.push_back("aa"); | 
					
						
							|  |  |  |     v.push_back("bb"); | 
					
						
							|  |  |  |     v.push_back("cc"); | 
					
						
							|  |  |  |     v.push_back("dd"); | 
					
						
							|  |  |  |  } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-12 12:39:14 +02:00
										 |  |  | void testQLocale() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QLocale loc = QLocale::system(); | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  |     //QString s = loc.name();
 | 
					
						
							| 
									
										
										
										
											2010-08-12 12:39:14 +02:00
										 |  |  |     //QVariant v = loc;
 | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  |     QLocale::MeasurementSystem m = loc.measurementSystem(); | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(m); | 
					
						
							| 
									
										
										
										
											2010-08-12 12:39:14 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQList() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-07-14 10:07:15 +02:00
										 |  |  |     QList<int> big; | 
					
						
							|  |  |  |     for (int i = 0; i < 10000; ++i) | 
					
						
							|  |  |  |         big.push_back(i); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<Foo> flist; | 
					
						
							|  |  |  |     for (int i = 0; i < 100; ++i) | 
					
						
							|  |  |  |         flist.push_back(i + 15); | 
					
						
							|  |  |  |     flist.push_back(1000); | 
					
						
							|  |  |  |     flist.push_back(1001); | 
					
						
							|  |  |  |     flist.push_back(1002); | 
					
						
							| 
									
										
										
										
											2010-03-08 13:14:23 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QList<int> li; | 
					
						
							|  |  |  |     QList<uint> lu; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-28 12:15:40 +01:00
										 |  |  |     for (int i = 0; i != 30; ++i) { | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         li.append(i); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     li.append(101); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  |     li.append(102); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-11 15:09:33 +01:00
										 |  |  |     QList<int *> lpi; | 
					
						
							|  |  |  |     lpi.append(new int(1)); | 
					
						
							|  |  |  |     lpi.append(new int(2)); | 
					
						
							|  |  |  |     lpi.append(new int(3)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     for (int i = 0; i != 3; ++i) { | 
					
						
							|  |  |  |         lu.append(i); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     lu.append(101); | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  |     lu.append(102); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<uint> i; | 
					
						
							|  |  |  |     i.append(42); | 
					
						
							|  |  |  |     i.append(43); | 
					
						
							|  |  |  |     i.append(44); | 
					
						
							|  |  |  |     i.append(45); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-24 12:31:09 +02:00
										 |  |  |     QList<ushort> ls; | 
					
						
							|  |  |  |     ls.append(42); | 
					
						
							|  |  |  |     ls.append(43); | 
					
						
							|  |  |  |     ls.append(44); | 
					
						
							|  |  |  |     ls.append(45); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<QChar> lc; | 
					
						
							|  |  |  |     lc.append(QChar('a')); | 
					
						
							|  |  |  |     lc.append(QChar('b')); | 
					
						
							|  |  |  |     lc.append(QChar('c')); | 
					
						
							|  |  |  |     lc.append(QChar('d')); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QList<qulonglong> l; | 
					
						
							|  |  |  |     l.append(42); | 
					
						
							|  |  |  |     l.append(43); | 
					
						
							|  |  |  |     l.append(44); | 
					
						
							|  |  |  |     l.append(45); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<Foo> f; | 
					
						
							|  |  |  |     f.append(Foo(1)); | 
					
						
							|  |  |  |     f.append(Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-14 10:07:15 +02:00
										 |  |  |     QList<std::string> v; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     v.push_back("aa"); | 
					
						
							|  |  |  |     v.push_back("bb"); | 
					
						
							|  |  |  |     v.push_back("cc"); | 
					
						
							|  |  |  |     v.push_back("dd"); | 
					
						
							| 
									
										
										
										
											2009-07-14 10:07:15 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |  } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQMap() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QMap<uint, QStringList> ggl; | 
					
						
							|  |  |  |     ggl[11] = QStringList() << "11"; | 
					
						
							|  |  |  |     ggl[22] = QStringList() << "22"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     typedef QMap<uint, QStringList> T; | 
					
						
							|  |  |  |     T ggt; | 
					
						
							|  |  |  |     ggt[11] = QStringList() << "11"; | 
					
						
							|  |  |  |     ggt[22] = QStringList() << "22"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-12 12:55:05 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QMap<uint, float> gg0; | 
					
						
							|  |  |  |     gg0[11] = 11.0; | 
					
						
							|  |  |  |     gg0[22] = 22.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QMap<QString, float> gg1; | 
					
						
							|  |  |  |     gg1["22.0"] = 22.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QMap<int, QString> gg2; | 
					
						
							|  |  |  |     gg2[22] = "22.0"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QMap<QString, Foo> gg3; | 
					
						
							|  |  |  |     gg3["22.0"] = Foo(22); | 
					
						
							|  |  |  |     gg3["33.0"] = Foo(33); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject ob; | 
					
						
							|  |  |  |     QMap<QString, QPointer<QObject> > map; | 
					
						
							|  |  |  |     map.insert("Hallo", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     map.insert("Welt", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     map.insert(".", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-07 15:31:58 +01:00
										 |  |  | void testQMultiMap() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QMultiMap<uint, float> gg0; | 
					
						
							|  |  |  |     gg0.insert(11, 11.0); | 
					
						
							|  |  |  |     gg0.insert(22, 22.0); | 
					
						
							|  |  |  |     gg0.insert(22, 33.0); | 
					
						
							| 
									
										
										
										
											2009-01-07 16:29:14 +01:00
										 |  |  |     gg0.insert(22, 34.0); | 
					
						
							|  |  |  |     gg0.insert(22, 35.0); | 
					
						
							|  |  |  |     gg0.insert(22, 36.0); | 
					
						
							|  |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2009-01-07 15:31:58 +01:00
										 |  |  |     QMultiMap<QString, float> gg1; | 
					
						
							|  |  |  |     gg1.insert("22.0", 22.0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QMultiMap<int, QString> gg2; | 
					
						
							|  |  |  |     gg2.insert(22, "22.0"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QMultiMap<QString, Foo> gg3; | 
					
						
							|  |  |  |     gg3.insert("22.0", Foo(22)); | 
					
						
							|  |  |  |     gg3.insert("33.0", Foo(33)); | 
					
						
							|  |  |  |     gg3.insert("22.0", Foo(22)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject ob; | 
					
						
							|  |  |  |     QMultiMap<QString, QPointer<QObject> > map; | 
					
						
							|  |  |  |     map.insert("Hallo", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     map.insert("Welt", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     map.insert(".", QPointer<QObject>(&ob)); | 
					
						
							|  |  |  |     map.insert(".", QPointer<QObject>(&ob)); | 
					
						
							| 
									
										
										
										
											2009-01-07 16:29:14 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-01-07 15:31:58 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  | namespace Names { | 
					
						
							|  |  |  | namespace Bar { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct Ui { | 
					
						
							|  |  |  |     Ui() { w = 0; } | 
					
						
							|  |  |  |     QWidget *w; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestObject : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     TestObject(QObject *parent = 0) | 
					
						
							|  |  |  |       : QObject(parent) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m_ui = new Ui; | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  |         m_ui->w = new QWidget; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |         Q_UNUSED(parent); | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-13 09:27:22 +02:00
										 |  |  |     Q_PROPERTY(QString myProp1 READ myProp1 WRITE setMyProp1) | 
					
						
							|  |  |  |     QString myProp1() const { return m_myProp1; } | 
					
						
							|  |  |  |     Q_SLOT void setMyProp1(const QString &mt) { m_myProp1 = mt; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Q_PROPERTY(QString myProp2 READ myProp2 WRITE setMyProp2) | 
					
						
							|  |  |  |     QString myProp2() const { return m_myProp2; } | 
					
						
							|  |  |  |     Q_SLOT void setMyProp2(const QString &mt) { m_myProp2 = mt; } | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  |     Ui *m_ui; | 
					
						
							| 
									
										
										
										
											2010-08-13 09:27:22 +02:00
										 |  |  |     QString m_myProp1; | 
					
						
							|  |  |  |     QString m_myProp2; | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Bar
 | 
					
						
							|  |  |  | } // namespace Names
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQObject(int &argc, char *argv[]) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QApplication app(argc, argv); | 
					
						
							| 
									
										
										
										
											2010-09-13 08:32:12 +02:00
										 |  |  |     QString longString = QString(10000, QLatin1Char('A')); | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  |     Names::Bar::TestObject test; | 
					
						
							| 
									
										
										
										
											2010-08-13 09:27:22 +02:00
										 |  |  |     test.setMyProp1("HELLO"); | 
					
						
							|  |  |  |     test.setMyProp2("WORLD"); | 
					
						
							|  |  |  |     QString s = test.myProp1(); | 
					
						
							|  |  |  |     s += test.myProp2(); | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(s); | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QAction act("xxx", &app); | 
					
						
							|  |  |  |     QString t = act.text(); | 
					
						
							|  |  |  |     t += "y"; | 
					
						
							| 
									
										
										
										
											2009-04-03 13:39:14 +02:00
										 |  |  |     t += "y"; | 
					
						
							|  |  |  |     t += "y"; | 
					
						
							|  |  |  |     t += "y"; | 
					
						
							|  |  |  |     t += "y"; | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  |     QWidget ob; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ob.setObjectName("An Object"); | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  |     ob.setProperty("USER DEFINED 1", 44); | 
					
						
							|  |  |  |     ob.setProperty("USER DEFINED 2", QStringList() << "FOO" << "BAR"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QObject ob1; | 
					
						
							|  |  |  |     ob1.setObjectName("Another Object"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject::connect(&ob, SIGNAL(destroyed()), &ob1, SLOT(deleteLater())); | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  |     //QObject::connect(&app, SIGNAL(lastWindowClosed()), &ob, SLOT(deleteLater()));
 | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QList<QObject *> obs; | 
					
						
							|  |  |  |     obs.append(&ob); | 
					
						
							|  |  |  |     obs.append(&ob1); | 
					
						
							|  |  |  |     obs.append(0); | 
					
						
							|  |  |  |     obs.append(&app); | 
					
						
							|  |  |  |     ob1.setObjectName("A Subobject"); | 
					
						
							| 
									
										
										
										
											2009-04-08 16:27:15 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-12 15:26:56 +02:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2009-04-02 10:54:22 +02:00
										 |  |  |     QString str = QString::fromUtf8("XXXXXXXXXXXXXXyyXXX ö"); | 
					
						
							|  |  |  |     QLabel l(str); | 
					
						
							| 
									
										
										
										
											2009-07-01 14:15:10 +02:00
										 |  |  |     l.setObjectName("Some Label"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     l.show(); | 
					
						
							|  |  |  |     app.exec(); | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-07 17:11:10 +02:00
										 |  |  | class Sender : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Sender() { setObjectName("Sender"); } | 
					
						
							|  |  |  |     void doEmit() { emit aSignal(); } | 
					
						
							|  |  |  | signals: | 
					
						
							|  |  |  |     void aSignal(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Receiver : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Receiver() { setObjectName("Receiver"); } | 
					
						
							|  |  |  | public slots: | 
					
						
							|  |  |  |     void aSlot() { | 
					
						
							|  |  |  |         QObject *s = sender(); | 
					
						
							|  |  |  |         if (s) { | 
					
						
							|  |  |  |             qDebug() << "SENDER: " << s; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             qDebug() << "NO SENDER"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testSignalSlot(int &argc, char *argv[]) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QApplication app(argc, argv); | 
					
						
							|  |  |  |     Sender sender; | 
					
						
							|  |  |  |     Receiver receiver; | 
					
						
							|  |  |  |     QObject::connect(&sender, SIGNAL(aSignal()), &receiver, SLOT(aSlot())); | 
					
						
							|  |  |  |     sender.doEmit(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQPixmap() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QImage im(QSize(200, 200), QImage::Format_RGB32); | 
					
						
							|  |  |  |     im.fill(QColor(200, 100, 130).rgba()); | 
					
						
							|  |  |  |     QPainter pain; | 
					
						
							|  |  |  |     pain.begin(&im); | 
					
						
							|  |  |  |     pain.drawLine(2, 2, 130, 130); | 
					
						
							|  |  |  |     pain.end(); | 
					
						
							|  |  |  |     QPixmap pm = QPixmap::fromImage(im); | 
					
						
							|  |  |  |     int i = 1; | 
					
						
							|  |  |  |     Q_UNUSED(i); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-30 15:20:16 +02:00
										 |  |  | void testQRegion() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-08-18 10:56:42 +02:00
										 |  |  |     // only works with Python dumper
 | 
					
						
							| 
									
										
										
										
											2010-06-30 15:20:16 +02:00
										 |  |  |     QRegion region; | 
					
						
							|  |  |  |     region += QRect(100, 100, 200, 200); | 
					
						
							|  |  |  |     region += QRect(300, 300, 400, 500); | 
					
						
							|  |  |  |     region += QRect(500, 500, 600, 600); | 
					
						
							| 
									
										
										
										
											2010-07-01 09:44:18 +02:00
										 |  |  |     region += QRect(500, 500, 600, 600); | 
					
						
							|  |  |  |     region += QRect(500, 500, 600, 600); | 
					
						
							|  |  |  |     region += QRect(500, 500, 600, 600); | 
					
						
							| 
									
										
										
										
											2010-06-30 15:20:16 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void testPlugin() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QString dir = QDir::currentPath(); | 
					
						
							|  |  |  | #ifdef Q_OS_LINUX
 | 
					
						
							| 
									
										
										
										
											2010-09-03 11:15:27 +02:00
										 |  |  |     QLibrary lib(dir + "/libsimple_gdbtest_plugin.so"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #ifdef Q_OS_MAC
 | 
					
						
							|  |  |  |     dir = QFileInfo(dir + "/../..").canonicalPath(); | 
					
						
							| 
									
										
										
										
											2010-09-03 11:15:27 +02:00
										 |  |  |     QLibrary lib(dir + "/libsimple_gdbtest_plugin.dylib"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #ifdef Q_OS_WIN
 | 
					
						
							| 
									
										
										
										
											2010-10-04 12:19:28 +02:00
										 |  |  |     QLibrary lib(dir + "/debug/simple_gdbtest_plugin.dll"); | 
					
						
							| 
									
										
										
										
											2010-01-11 15:42:03 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #ifdef Q_OS_SYMBIAN
 | 
					
						
							| 
									
										
										
										
											2010-09-03 11:15:27 +02:00
										 |  |  |     QLibrary lib(dir + "/libsimple_gdbtest_plugin.dll"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  |     int (*foo)() = (int(*)()) lib.resolve("pluginTest"); | 
					
						
							| 
									
										
										
										
											2010-10-04 12:19:28 +02:00
										 |  |  |     qDebug() << "library resolve: " << foo << lib.fileName(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     if (foo) { | 
					
						
							|  |  |  |         int res = foo(); | 
					
						
							|  |  |  |         res += 1; | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         qDebug() << lib.errorString(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQSet() | 
					
						
							| 
									
										
										
										
											2008-12-05 18:44:09 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QSet<int> hgg0; | 
					
						
							|  |  |  |     hgg0.insert(11); | 
					
						
							|  |  |  |     hgg0.insert(22); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QSet<QString> hgg1; | 
					
						
							|  |  |  |     hgg1.insert("22.0"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject ob; | 
					
						
							|  |  |  |     QSet<QPointer<QObject> > hash; | 
					
						
							|  |  |  |     QPointer<QObject> ptr(&ob); | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  |     Q_UNUSED(ptr); | 
					
						
							| 
									
										
										
										
											2008-12-05 18:44:09 +01:00
										 |  |  |     //hash.insert(ptr);
 | 
					
						
							|  |  |  |     //hash.insert(ptr);
 | 
					
						
							|  |  |  |     //hash.insert(ptr);
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-25 15:00:57 +02:00
										 |  |  | #if QT_VERSION >= 0x040500
 | 
					
						
							| 
									
										
										
										
											2009-04-17 15:34:46 +02:00
										 |  |  | class EmployeeData : public QSharedData | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     EmployeeData() : id(-1) { name.clear(); } | 
					
						
							|  |  |  |     EmployeeData(const EmployeeData &other) | 
					
						
							|  |  |  |         : QSharedData(other), id(other.id), name(other.name) { } | 
					
						
							|  |  |  |     ~EmployeeData() { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int id; | 
					
						
							|  |  |  |     QString name; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Employee | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Employee() { d = new EmployeeData; } | 
					
						
							|  |  |  |     Employee(int id, QString name) { | 
					
						
							|  |  |  |         d = new EmployeeData; | 
					
						
							|  |  |  |         setId(id); | 
					
						
							|  |  |  |         setName(name); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     Employee(const Employee &other) | 
					
						
							|  |  |  |           : d (other.d) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     void setId(int id) { d->id = id; } | 
					
						
							|  |  |  |     void setName(QString name) { d->name = name; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     int id() const { return d->id; } | 
					
						
							|  |  |  |     QString name() const { return d->name; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    private: | 
					
						
							|  |  |  |      QSharedDataPointer<EmployeeData> d; | 
					
						
							| 
									
										
										
										
											2009-09-03 09:15:24 +02:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2009-04-17 15:34:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-07 13:50:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void testQSharedPointer() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-04-28 10:58:55 +02:00
										 |  |  |     //Employee e1(1, "Herbert");
 | 
					
						
							|  |  |  |     //Employee e2 = e1;
 | 
					
						
							| 
									
										
										
										
											2010-06-11 13:44:18 +02:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2009-04-28 10:58:55 +02:00
										 |  |  |     QSharedPointer<int> iptr(new int(43)); | 
					
						
							|  |  |  |     QSharedPointer<int> iptr2 = iptr; | 
					
						
							|  |  |  |     QSharedPointer<int> iptr3 = iptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QSharedPointer<QString> ptr(new QString("hallo")); | 
					
						
							|  |  |  |     QSharedPointer<QString> ptr2 = ptr; | 
					
						
							|  |  |  |     QSharedPointer<QString> ptr3 = ptr; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-29 17:46:37 +02:00
										 |  |  |     QWeakPointer<int> wiptr(iptr); | 
					
						
							|  |  |  |     QWeakPointer<int> wiptr2 = wiptr; | 
					
						
							|  |  |  |     QWeakPointer<int> wiptr3 = wiptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QWeakPointer<QString> wptr(ptr); | 
					
						
							|  |  |  |     QWeakPointer<QString> wptr2 = wptr; | 
					
						
							|  |  |  |     QWeakPointer<QString> wptr3 = wptr; | 
					
						
							| 
									
										
										
										
											2010-06-11 13:44:18 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QSharedPointer<Foo> fptr(new Foo(1)); | 
					
						
							|  |  |  |     QWeakPointer<Foo> wfptr(fptr); | 
					
						
							|  |  |  |     QWeakPointer<Foo> wfptr2 = wfptr; | 
					
						
							|  |  |  |     QWeakPointer<Foo> wfptr3 = wfptr; | 
					
						
							| 
									
										
										
										
											2009-04-07 13:50:21 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2009-06-25 15:00:57 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-04-07 13:50:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void stringRefTest(const QString &refstring) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Q_UNUSED(refstring); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-16 11:17:00 +01:00
										 |  |  | void testStdDeque() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     std::deque<int *> plist1; | 
					
						
							|  |  |  |     plist1.push_back(new int(1)); | 
					
						
							|  |  |  |     plist1.push_back(0); | 
					
						
							|  |  |  |     plist1.push_back(new int(2)); | 
					
						
							|  |  |  |     plist1.pop_back(); | 
					
						
							|  |  |  |     plist1.pop_front(); | 
					
						
							|  |  |  |     plist1.pop_front(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::deque<int> flist2; | 
					
						
							|  |  |  |     flist2.push_back(1); | 
					
						
							|  |  |  |     flist2.push_back(2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::deque<Foo *> plist; | 
					
						
							|  |  |  |     plist.push_back(new Foo(1)); | 
					
						
							|  |  |  |     plist.push_back(new Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::deque<Foo> flist; | 
					
						
							|  |  |  |     flist.push_back(1); | 
					
						
							|  |  |  |     flist.push_front(2); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-15 18:28:58 +02:00
										 |  |  | void testStdHashSet() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #if USE_GCC_EXT
 | 
					
						
							|  |  |  |     using namespace __gnu_cxx; | 
					
						
							|  |  |  |     hash_set<int> h; | 
					
						
							|  |  |  |     h.insert(1); | 
					
						
							|  |  |  |     h.insert(194); | 
					
						
							|  |  |  |     h.insert(2); | 
					
						
							|  |  |  |     h.insert(3); | 
					
						
							|  |  |  |     h.insert(4); | 
					
						
							|  |  |  |     h.insert(5); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | std::list<int> testStdList() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-07-10 09:48:51 +02:00
										 |  |  |     std::list<int> big; | 
					
						
							|  |  |  |     for (int i = 0; i < 10000; ++i) | 
					
						
							|  |  |  |         big.push_back(i); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-14 10:07:15 +02:00
										 |  |  |     std::list<Foo> flist; | 
					
						
							|  |  |  |     for (int i = 0; i < 100; ++i) | 
					
						
							|  |  |  |         flist.push_back(i + 15); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     std::list<int *> plist1; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     plist1.push_back(new int(1)); | 
					
						
							|  |  |  |     plist1.push_back(0); | 
					
						
							|  |  |  |     plist1.push_back(new int(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     std::list<int> flist2; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     flist2.push_back(1); | 
					
						
							|  |  |  |     flist2.push_back(2); | 
					
						
							|  |  |  |     flist2.push_back(3); | 
					
						
							|  |  |  |     flist2.push_back(4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     flist2.push_back(1); | 
					
						
							|  |  |  |     flist2.push_back(2); | 
					
						
							|  |  |  |     flist2.push_back(3); | 
					
						
							|  |  |  |     flist2.push_back(4); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     std::list<Foo *> plist; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     plist.push_back(new Foo(1)); | 
					
						
							|  |  |  |     plist.push_back(0); | 
					
						
							|  |  |  |     plist.push_back(new Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 14:47:45 +02:00
										 |  |  |     foreach (Foo f, flist) | 
					
						
							|  |  |  |     {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     std::list<bool> vec; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     vec.push_back(true); | 
					
						
							|  |  |  |     vec.push_back(false); | 
					
						
							| 
									
										
										
										
											2009-07-14 10:07:15 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     std::list<int> result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  | void testStdMap() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  | #if 0
 | 
					
						
							| 
									
										
										
										
											2008-12-12 12:55:05 +01:00
										 |  |  |     std::map<QString, Foo> gg3; | 
					
						
							|  |  |  |     gg3["22.0"] = Foo(22); | 
					
						
							|  |  |  |     gg3["33.0"] = Foo(33); | 
					
						
							|  |  |  |     gg3["44.0"] = Foo(44); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-17 15:46:27 +01:00
										 |  |  |     std::map<const char *, Foo> m1; | 
					
						
							|  |  |  |     m1["22.0"] = Foo(22); | 
					
						
							|  |  |  |     m1["33.0"] = Foo(33); | 
					
						
							|  |  |  |     m1["44.0"] = Foo(44); | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-12 12:55:05 +01:00
										 |  |  |     std::map<uint, uint> gg; | 
					
						
							|  |  |  |     gg[11] = 1; | 
					
						
							|  |  |  |     gg[22] = 2; | 
					
						
							|  |  |  |     gg[33] = 3; | 
					
						
							|  |  |  |     gg[44] = 4; | 
					
						
							|  |  |  |     gg[55] = 5; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  |     std::pair<uint, QStringList> p = std::make_pair(3, QStringList() << "11"); | 
					
						
							|  |  |  |     std::vector< std::pair<uint, QStringList> > v; | 
					
						
							|  |  |  |     v.push_back(p); | 
					
						
							|  |  |  |     v.push_back(p); | 
					
						
							| 
									
										
										
										
											2009-06-12 14:26:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  |     std::map<uint, QStringList> ggl; | 
					
						
							|  |  |  |     ggl[11] = QStringList() << "11"; | 
					
						
							|  |  |  |     ggl[22] = QStringList() << "22"; | 
					
						
							| 
									
										
										
										
											2008-12-12 12:55:05 +01:00
										 |  |  |     ggl[33] = QStringList() << "33"; | 
					
						
							|  |  |  |     ggl[44] = QStringList() << "44"; | 
					
						
							|  |  |  |     ggl[55] = QStringList() << "55"; | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     typedef std::map<uint, QStringList> T; | 
					
						
							|  |  |  |     T ggt; | 
					
						
							|  |  |  |     ggt[11] = QStringList() << "11"; | 
					
						
							|  |  |  |     ggt[22] = QStringList() << "22"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::map<uint, float> gg0; | 
					
						
							|  |  |  |     gg0[11] = 11.0; | 
					
						
							|  |  |  |     gg0[22] = 22.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::map<QString, float> gg1; | 
					
						
							|  |  |  |     gg1["22.0"] = 22.0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::map<int, QString> gg2; | 
					
						
							|  |  |  |     gg2[22] = "22.0"; | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  |     QObject ob; | 
					
						
							|  |  |  |     std::map<QString, QPointer<QObject> > map; | 
					
						
							| 
									
										
										
										
											2008-12-12 12:55:05 +01:00
										 |  |  |     map["Hallo"] = QPointer<QObject>(&ob); | 
					
						
							|  |  |  |     map["Welt"] = QPointer<QObject>(&ob); | 
					
						
							|  |  |  |     map["."] = QPointer<QObject>(&ob); | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | std::set<int> testStdSet() | 
					
						
							| 
									
										
										
										
											2009-03-11 13:31:38 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     std::set<int> hgg0; | 
					
						
							|  |  |  |     hgg0.insert(11); | 
					
						
							|  |  |  |     hgg0.insert(22); | 
					
						
							|  |  |  |     hgg0.insert(33); | 
					
						
							|  |  |  | #if 1
 | 
					
						
							|  |  |  |     std::set<QString> hgg1; | 
					
						
							|  |  |  |     hgg1.insert("22.0"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QObject ob; | 
					
						
							|  |  |  |     std::set<QPointer<QObject> > hash; | 
					
						
							|  |  |  |     QPointer<QObject> ptr(&ob); | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     std::set<int> result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2009-03-11 13:31:38 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | std::stack<int> testStdStack() | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-08-18 10:56:42 +02:00
										 |  |  |     // only works with Python dumper
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     std::stack<int *> plist1; | 
					
						
							|  |  |  |     plist1.push(new int(1)); | 
					
						
							|  |  |  |     plist1.push(0); | 
					
						
							|  |  |  |     plist1.push(new int(2)); | 
					
						
							|  |  |  |     plist1.pop(); | 
					
						
							|  |  |  |     plist1.pop(); | 
					
						
							|  |  |  |     plist1.pop(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::stack<int> flist2; | 
					
						
							|  |  |  |     flist2.push(1); | 
					
						
							|  |  |  |     flist2.push(2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::stack<Foo *> plist; | 
					
						
							|  |  |  |     plist.push(new Foo(1)); | 
					
						
							|  |  |  |     plist.push(new Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::stack<Foo> flist; | 
					
						
							|  |  |  |     flist.push(1); | 
					
						
							|  |  |  |     flist.push(2); | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     std::stack<int> result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | std::string testStdString() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QString foo; | 
					
						
							|  |  |  |     std::string str; | 
					
						
							|  |  |  |     std::wstring wstr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::vector<std::string> v; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     foo += "a"; | 
					
						
							|  |  |  |     str += "b"; | 
					
						
							|  |  |  |     wstr += wchar_t('e'); | 
					
						
							|  |  |  |     foo += "c"; | 
					
						
							|  |  |  |     str += "d"; | 
					
						
							|  |  |  |     foo += "e"; | 
					
						
							|  |  |  |     wstr += wchar_t('e'); | 
					
						
							|  |  |  |     str += "e"; | 
					
						
							|  |  |  |     foo += "a"; | 
					
						
							|  |  |  |     str += "b"; | 
					
						
							|  |  |  |     foo += "c"; | 
					
						
							|  |  |  |     str += "d"; | 
					
						
							|  |  |  |     str += "e"; | 
					
						
							|  |  |  |     wstr += wchar_t('e'); | 
					
						
							|  |  |  |     wstr += wchar_t('e'); | 
					
						
							|  |  |  |     str += "e"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<std::string> l; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     l.push_back(str); | 
					
						
							|  |  |  |     l.push_back(str); | 
					
						
							|  |  |  |     l.push_back(str); | 
					
						
							|  |  |  |     l.push_back(str); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     v.push_back(str); | 
					
						
							|  |  |  |     v.push_back(str); | 
					
						
							|  |  |  |     v.push_back(str); | 
					
						
							|  |  |  |     v.push_back(str); | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     std::string result = "hi"; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-07-22 19:45:08 +02:00
										 |  |  | void testStdVector() | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     std::vector<int *> plist1; | 
					
						
							|  |  |  |     plist1.push_back(new int(1)); | 
					
						
							|  |  |  |     plist1.push_back(0); | 
					
						
							|  |  |  |     plist1.push_back(new int(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::vector<int> flist2; | 
					
						
							|  |  |  |     flist2.push_back(1); | 
					
						
							|  |  |  |     flist2.push_back(2); | 
					
						
							|  |  |  |     flist2.push_back(3); | 
					
						
							|  |  |  |     flist2.push_back(4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     flist2.push_back(1); | 
					
						
							|  |  |  |     flist2.push_back(2); | 
					
						
							|  |  |  |     flist2.push_back(3); | 
					
						
							|  |  |  |     flist2.push_back(4); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::vector<Foo *> plist; | 
					
						
							|  |  |  |     plist.push_back(new Foo(1)); | 
					
						
							|  |  |  |     plist.push_back(0); | 
					
						
							|  |  |  |     plist.push_back(new Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::vector<Foo> flist; | 
					
						
							|  |  |  |     flist.push_back(1); | 
					
						
							|  |  |  |     flist.push_back(2); | 
					
						
							|  |  |  |     flist.push_back(3); | 
					
						
							|  |  |  |     flist.push_back(4); | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::vector<bool> vec; | 
					
						
							|  |  |  |     vec.push_back(true); | 
					
						
							|  |  |  |     vec.push_back(false); | 
					
						
							| 
									
										
										
										
											2010-07-22 19:45:08 +02:00
										 |  |  |     vec.push_back(false); | 
					
						
							|  |  |  |     vec.push_back(true); | 
					
						
							|  |  |  |     vec.push_back(false); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  | void testQStandardItemModel() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-04-21 12:21:45 +02:00
										 |  |  |     //char buf[100];
 | 
					
						
							|  |  |  |     //QString *s = static_cast<QString *>(static_cast<void *>(&(v.data_ptr().data.c)));
 | 
					
						
							|  |  |  |     //QString *t = (QString *)&(v.data_ptr());
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  |     QStandardItemModel m; | 
					
						
							|  |  |  |     QStandardItem *i1, *i2, *i11; | 
					
						
							|  |  |  |     m.appendRow(QList<QStandardItem *>() | 
					
						
							| 
									
										
										
										
											2010-04-21 12:21:45 +02:00
										 |  |  |          << (i1 = new QStandardItem("1")) << (new QStandardItem("a")) << (new QStandardItem("a2"))); | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  |     QModelIndex mi = i1->index(); | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  |     m.appendRow(QList<QStandardItem *>() | 
					
						
							|  |  |  |          << (i2 = new QStandardItem("2")) << (new QStandardItem("b"))); | 
					
						
							|  |  |  |     i1->appendRow(QList<QStandardItem *>() | 
					
						
							|  |  |  |          << (i11 = new QStandardItem("11")) << (new QStandardItem("aa"))); | 
					
						
							|  |  |  |     int i = 1; | 
					
						
							|  |  |  |     ++i; | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  |     ++i; | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QStack<int> testQStack() | 
					
						
							| 
									
										
										
										
											2009-08-28 09:44:11 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     QVector<int> bigv; | 
					
						
							|  |  |  |     for (int i = 0; i < 10; ++i) | 
					
						
							|  |  |  |         bigv.append(i); | 
					
						
							|  |  |  |     QStack<int> big; | 
					
						
							|  |  |  |     for (int i = 0; i < 10; ++i) | 
					
						
							|  |  |  |         big.append(i); | 
					
						
							|  |  |  |     QStack<Foo *> plist; | 
					
						
							|  |  |  |     plist.append(new Foo(1)); | 
					
						
							|  |  |  |     plist.append(0); | 
					
						
							|  |  |  |     plist.append(new Foo(2)); | 
					
						
							|  |  |  |     QStack<Foo> flist; | 
					
						
							|  |  |  |     flist.append(1); | 
					
						
							|  |  |  |     flist.append(2); | 
					
						
							|  |  |  |     flist.append(3); | 
					
						
							|  |  |  |     flist.append(4); | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  |     QStack<bool> vec; | 
					
						
							|  |  |  |     vec.append(true); | 
					
						
							|  |  |  |     vec.append(false); | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     QStack<int> result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2009-08-28 09:44:11 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void testQUrl() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-04-21 19:25:09 +02:00
										 |  |  |     QUrl url(QString("http://www.nokia.com")); | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  |     (void) url; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef FOP
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int xxxx() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int xxxx() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testQString() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-06-09 12:03:57 +02:00
										 |  |  |     QImage im; | 
					
						
							| 
									
										
										
										
											2010-04-21 19:25:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QString str = "Hello "; | 
					
						
							|  |  |  |     str += " big, "; | 
					
						
							|  |  |  |     str += " fat "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQString3() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QString str = "Hello "; | 
					
						
							|  |  |  |     str += " big, "; | 
					
						
							|  |  |  |     str += " fat "; | 
					
						
							|  |  |  |     str += " World "; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QString string("String Test"); | 
					
						
							|  |  |  |     QString *pstring = new QString("Pointer String Test"); | 
					
						
							|  |  |  |     stringRefTest(QString("Ref String Test")); | 
					
						
							|  |  |  |     string = "Hi"; | 
					
						
							|  |  |  |     string += "Du"; | 
					
						
							|  |  |  |     qDebug() << string; | 
					
						
							|  |  |  |     delete pstring; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QStringList testQStringList() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QStringList l; | 
					
						
							|  |  |  |     l << "Hello "; | 
					
						
							|  |  |  |     l << " big, "; | 
					
						
							|  |  |  |     l << " fat "; | 
					
						
							| 
									
										
										
										
											2010-05-06 16:23:18 +02:00
										 |  |  |     l.takeFirst(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     l << " World "; | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     QStringList result; | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | Foo testStruct() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     Foo f(2); | 
					
						
							|  |  |  |     f.doit(); | 
					
						
							|  |  |  |     f.doit(); | 
					
						
							|  |  |  |     f.doit(); | 
					
						
							| 
									
										
										
										
											2010-08-19 14:53:40 +02:00
										 |  |  |     Foo f1 = f; | 
					
						
							|  |  |  |     f1.doit(); | 
					
						
							|  |  |  |     return f1; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-12 11:52:11 +02:00
										 |  |  | void testTypeFormats() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     // These tests should result in properly displayed umlauts in the
 | 
					
						
							|  |  |  |     // Locals&Watchers view. It is only support on gdb with Python.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Select UTF-8 in "Change Format for Type" in L&W context menu.
 | 
					
						
							|  |  |  |     const char *s = "aöa"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Windows: Select UTF-16 in "Change Format for Type" in L&W context menu.
 | 
					
						
							|  |  |  |     // Other: Select UCS-6 in "Change Format for Type" in L&W context menu.
 | 
					
						
							|  |  |  |     const wchar_t *w = L"aöa"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Make sure to undo "Change Format".
 | 
					
						
							|  |  |  |     int dummy = 1; | 
					
						
							|  |  |  |     Q_UNUSED(s); | 
					
						
							|  |  |  |     Q_UNUSED(w); | 
					
						
							|  |  |  |     Q_UNUSED(dummy); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class Thread : public QThread | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Thread(int id) : m_id(id) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void run() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-04-29 18:36:18 +02:00
										 |  |  |         int j = 2; | 
					
						
							|  |  |  |         ++j; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         for (int i = 0; i != 100000; ++i) { | 
					
						
							|  |  |  |             //sleep(1);
 | 
					
						
							|  |  |  |             std::cerr << m_id; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-07-21 13:11:03 +02:00
										 |  |  |         if (m_id == 2) { | 
					
						
							|  |  |  |             ++j; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-04-29 18:36:18 +02:00
										 |  |  |         std::cerr << j; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |     int m_id; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-28 09:35:59 +02:00
										 |  |  | void testQTextCursor() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     //int argc = 0;
 | 
					
						
							|  |  |  |     //char *argv[] = { "xxx", 0 };
 | 
					
						
							|  |  |  |     //QApplication app(argc, argv);
 | 
					
						
							|  |  |  |     QTextDocument doc; | 
					
						
							|  |  |  |     doc.setPlainText("Hallo\nWorld"); | 
					
						
							| 
									
										
										
										
											2010-10-13 10:14:42 +02:00
										 |  |  |     QTextCursor tc; | 
					
						
							|  |  |  |     tc = doc.find("all"); | 
					
						
							| 
									
										
										
										
											2010-09-28 09:35:59 +02:00
										 |  |  |     int pos = tc.position(); | 
					
						
							|  |  |  |     int anc = tc.anchor(); | 
					
						
							|  |  |  |     Q_UNUSED(pos); | 
					
						
							|  |  |  |     Q_UNUSED(anc); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  | void testQThread() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     Thread thread1(1); | 
					
						
							|  |  |  |     Thread thread2(2); | 
					
						
							| 
									
										
										
										
											2010-09-14 18:31:07 +02:00
										 |  |  |     thread1.setObjectName("This is the first thread"); | 
					
						
							|  |  |  |     thread2.setObjectName("This is another thread"); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     thread1.start(); | 
					
						
							|  |  |  |     thread2.start(); | 
					
						
							|  |  |  |     thread1.wait(); | 
					
						
							|  |  |  |     thread2.wait(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-20 13:14:20 +02:00
										 |  |  | void testQVariant1() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QVariant v; | 
					
						
							|  |  |  |     v = 1; | 
					
						
							|  |  |  |     v = 1.0; | 
					
						
							|  |  |  |     v = "string"; | 
					
						
							| 
									
										
										
										
											2010-03-18 13:12:41 +01:00
										 |  |  |     v = QRect(100, 200, 300, 400); | 
					
						
							| 
									
										
										
										
											2010-05-20 13:14:20 +02:00
										 |  |  |     v = QRectF(100, 200, 300, 400); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     v = 1; | 
					
						
							| 
									
										
										
										
											2010-05-20 13:14:20 +02:00
										 |  |  |     //return v;
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QVariant testQVariant2() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-07-01 14:15:10 +02:00
										 |  |  |     QVariant value; | 
					
						
							|  |  |  |     QVariant::Type t = QVariant::String; | 
					
						
							|  |  |  |     value = QVariant(t, (void*)0); | 
					
						
							|  |  |  |     *(QString*)value.data() = QString("XXX"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-26 10:58:56 +01:00
										 |  |  |     int i = 1; | 
					
						
							| 
									
										
										
										
											2010-03-30 17:38:57 +02:00
										 |  |  |     Q_UNUSED(i); | 
					
						
							| 
									
										
										
										
											2010-03-18 13:12:41 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QVariant var; | 
					
						
							| 
									
										
										
										
											2009-03-26 10:58:56 +01:00
										 |  |  |     var.setValue(1); | 
					
						
							|  |  |  |     var.setValue(2); | 
					
						
							|  |  |  |     var.setValue(3); | 
					
						
							|  |  |  |     var.setValue(QString("Hello")); | 
					
						
							|  |  |  |     var.setValue(QString("World")); | 
					
						
							|  |  |  |     var.setValue(QString("Hello")); | 
					
						
							| 
									
										
										
										
											2009-03-26 10:39:20 +01:00
										 |  |  |     var.setValue(QStringList() << "World"); | 
					
						
							| 
									
										
										
										
											2009-03-26 10:58:56 +01:00
										 |  |  |     var.setValue(QStringList() << "World" << "Hello"); | 
					
						
							|  |  |  |     var.setValue(QStringList() << "Hello" << "Hello"); | 
					
						
							|  |  |  |     var.setValue(QStringList() << "World" << "Hello" << "Hello"); | 
					
						
							| 
									
										
										
										
											2009-07-01 14:15:10 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-03-18 13:12:41 +01:00
										 |  |  | #if 1
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QVariant var3; | 
					
						
							|  |  |  |     QHostAddress ha("127.0.0.1"); | 
					
						
							| 
									
										
										
										
											2010-03-18 13:12:41 +01:00
										 |  |  |     var.setValue(ha); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     var3 = var; | 
					
						
							|  |  |  |     var3 = var; | 
					
						
							|  |  |  |     var3 = var; | 
					
						
							|  |  |  |     var3 = var; | 
					
						
							|  |  |  |     QHostAddress ha1 = var.value<QHostAddress>(); | 
					
						
							|  |  |  |     typedef QMap<uint, QStringList> MyType; | 
					
						
							|  |  |  |     MyType my; | 
					
						
							|  |  |  |     my[1] = (QStringList() << "Hello"); | 
					
						
							|  |  |  |     my[3] = (QStringList() << "World"); | 
					
						
							|  |  |  |     var.setValue(my); | 
					
						
							| 
									
										
										
										
											2010-04-08 14:38:42 +02:00
										 |  |  |     // FIXME: Known to break
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QString type = var.typeName(); | 
					
						
							|  |  |  |     var.setValue(my); | 
					
						
							|  |  |  |     var.setValue(my); | 
					
						
							|  |  |  |     var.setValue(my); | 
					
						
							|  |  |  |     var.setValue(my); | 
					
						
							| 
									
										
										
										
											2009-03-26 10:39:20 +01:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  |     QVariant result("sss"); | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | QVariant testQVariant3() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-05-20 11:34:00 +02:00
										 |  |  |     QVariantList vl; | 
					
						
							|  |  |  |     vl.append(QVariant(1)); | 
					
						
							|  |  |  |     vl.append(QVariant(2)); | 
					
						
							|  |  |  |     vl.append(QVariant("Some String")); | 
					
						
							|  |  |  |     vl.append(QVariant(21)); | 
					
						
							|  |  |  |     vl.append(QVariant(22)); | 
					
						
							|  |  |  |     vl.append(QVariant("2Some String")); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QList<int> list; | 
					
						
							|  |  |  |     list << 1 << 2 << 3; | 
					
						
							|  |  |  |     QVariant variant = qVariantFromValue(list); | 
					
						
							|  |  |  |     list.clear(); | 
					
						
							|  |  |  |     list = qVariantValue<QList<int> >(variant); | 
					
						
							| 
									
										
										
										
											2010-10-07 16:36:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     QVariant result("xxx"); | 
					
						
							|  |  |  |     return result; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-25 09:53:23 +02:00
										 |  |  | void testQVector() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2008-12-10 16:48:12 +01:00
										 |  |  |     QVector<int> big(10000); | 
					
						
							| 
									
										
										
										
											2010-06-28 14:06:17 +02:00
										 |  |  |     big[1] = 1; | 
					
						
							|  |  |  |     big[2] = 2; | 
					
						
							|  |  |  |     big[3] = 3; | 
					
						
							|  |  |  |     big[4] = 4; | 
					
						
							|  |  |  |     big[5] = 5; | 
					
						
							|  |  |  |     big[9] = 9; | 
					
						
							|  |  |  |     big.append(1); | 
					
						
							|  |  |  |     big.append(1); | 
					
						
							|  |  |  |     big.append(1); | 
					
						
							|  |  |  |     big.append(1); | 
					
						
							| 
									
										
										
										
											2008-12-10 16:48:12 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     QVector<Foo *> plist; | 
					
						
							|  |  |  |     plist.append(new Foo(1)); | 
					
						
							|  |  |  |     plist.append(0); | 
					
						
							|  |  |  |     plist.append(new Foo(2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QVector<Foo> flist; | 
					
						
							|  |  |  |     flist.append(1); | 
					
						
							|  |  |  |     flist.append(2); | 
					
						
							|  |  |  |     flist.append(3); | 
					
						
							|  |  |  |     flist.append(4); | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  |     //flist.takeFirst();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QVector<bool> vec; | 
					
						
							|  |  |  |     vec.append(true); | 
					
						
							|  |  |  |     vec.append(false); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-24 14:53:43 +02:00
										 |  |  | void testQVectorOfQList() | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     QVector<QList<int> > v; | 
					
						
							|  |  |  |     QVector<QList<int> > *pv = &v; | 
					
						
							|  |  |  |     v.append(QList<int>() << 1); | 
					
						
							|  |  |  |     v.append(QList<int>() << 2 << 3); | 
					
						
							|  |  |  |     Q_UNUSED(pv); | 
					
						
							| 
									
										
										
										
											2010-08-24 14:53:43 +02:00
										 |  |  |     //return v;
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-08 17:27:45 +02:00
										 |  |  | class Goo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |    Goo(const QString& str, const int n) : | 
					
						
							|  |  |  |            str_(str), n_(n) | 
					
						
							|  |  |  |    { | 
					
						
							|  |  |  |    } | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  |    QString str_; | 
					
						
							|  |  |  |    int n_; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef QList<Goo> GooList; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  | void testNoArgumentName(int i, int, int k) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-07-08 17:27:45 +02:00
										 |  |  |     GooList list; | 
					
						
							|  |  |  |     list.append(Goo("Hello", 1)); | 
					
						
							|  |  |  |     list.append(Goo("World", 2)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QList<Goo> list2; | 
					
						
							|  |  |  |     list2.append(Goo("Hello", 1)); | 
					
						
							|  |  |  |     list2.append(Goo("World", 2)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     ++i; | 
					
						
							| 
									
										
										
										
											2009-07-03 11:22:18 +02:00
										 |  |  |     ++k; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | void foo() {} | 
					
						
							|  |  |  | void foo(int) {} | 
					
						
							|  |  |  | void foo(QList<int>) {} | 
					
						
							|  |  |  | void foo(QList<QVector<int> >) {} | 
					
						
							|  |  |  | void foo(QList<QVector<int> *>) {} | 
					
						
							|  |  |  | void foo(QList<QVector<int *> *>) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <class T> | 
					
						
							|  |  |  | void foo(QList<QVector<T> *>) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace somespace { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MyBase : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     MyBase() {} | 
					
						
							|  |  |  |     virtual void doit(int i) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |        n = i; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     int n; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace nested { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MyFoo : public MyBase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     MyFoo() {} | 
					
						
							|  |  |  |     virtual void doit(int i) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |        n = i; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     int n; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MyBar : public MyFoo | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual void doit(int i) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |        n = i + 1; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MyAnon : public MyBar | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual void doit(int i) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |        n = i + 3; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace baz { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MyBaz : public MyAnon | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual void doit(int i) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |        n = i + 5; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace baz
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace anon
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace nested
 | 
					
						
							|  |  |  | } // namespace somespace
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testNamespace() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     using namespace somespace; | 
					
						
							|  |  |  |     using namespace nested; | 
					
						
							|  |  |  |     MyFoo foo; | 
					
						
							|  |  |  |     MyBar bar; | 
					
						
							|  |  |  |     MyAnon anon; | 
					
						
							|  |  |  |     baz::MyBaz baz; | 
					
						
							|  |  |  |     baz.doit(1); | 
					
						
							|  |  |  |     anon.doit(1); | 
					
						
							|  |  |  |     foo.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  |     bar.doit(1); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | void testHidden() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     int  n = 1; | 
					
						
							|  |  |  |     n = 2; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     n = 3; | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QString n = "2"; | 
					
						
							|  |  |  |         n = "3"; | 
					
						
							|  |  |  |         n = "4"; | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             double n = 3.5; | 
					
						
							|  |  |  |             ++n; | 
					
						
							|  |  |  |             ++n; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         n = "3"; | 
					
						
							|  |  |  |         n = "4"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ++n; | 
					
						
							|  |  |  |     ++n; | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-23 10:24:25 +02:00
										 |  |  | void testObject1() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QObject parent; | 
					
						
							|  |  |  |     parent.setObjectName("A Parent"); | 
					
						
							|  |  |  |     QObject child(&parent); | 
					
						
							|  |  |  |     child.setObjectName("A Child"); | 
					
						
							| 
									
										
										
										
											2009-06-25 15:00:57 +02:00
										 |  |  |     QObject::connect(&child, SIGNAL(destroyed()), qApp, SLOT(quit())); | 
					
						
							|  |  |  |     QObject::disconnect(&child, SIGNAL(destroyed()), qApp, SLOT(quit())); | 
					
						
							| 
									
										
										
										
											2009-06-23 10:24:25 +02:00
										 |  |  |     child.setObjectName("A renamed Child"); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testVector1() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     std::vector<std::list<int> *> vector; | 
					
						
							|  |  |  |     std::list<int> list; | 
					
						
							|  |  |  |     vector.push_back(new std::list<int>(list)); | 
					
						
							|  |  |  |     vector.push_back(0); | 
					
						
							|  |  |  |     list.push_back(45); | 
					
						
							|  |  |  |     vector.push_back(new std::list<int>(list)); | 
					
						
							|  |  |  |     vector.push_back(0); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testQHash1() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QHash<QString, QList<int> > hash; | 
					
						
							|  |  |  |     hash.insert("Hallo", QList<int>()); | 
					
						
							|  |  |  |     hash.insert("Welt", QList<int>() << 1); | 
					
						
							|  |  |  |     hash.insert("!", QList<int>() << 1 << 2); | 
					
						
							|  |  |  |     hash.insert("!", QList<int>() << 1 << 2); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-23 12:34:49 +02:00
										 |  |  | void testPointer() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Foo *f = new Foo(); | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  |     Q_UNUSED(f); | 
					
						
							| 
									
										
										
										
											2009-07-23 12:34:49 +02:00
										 |  |  |     int i = 0; | 
					
						
							|  |  |  |     ++i; | 
					
						
							|  |  |  |     ++i; | 
					
						
							|  |  |  |     ++i; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Z : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     Z() { | 
					
						
							|  |  |  |         f = new Foo(); | 
					
						
							|  |  |  |         i = 0; | 
					
						
							|  |  |  |         i = 1; | 
					
						
							|  |  |  |         i = 2; | 
					
						
							|  |  |  |         i = 3; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     int i; | 
					
						
							|  |  |  |     Foo *f; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-28 09:44:11 +02:00
										 |  |  | void testUninitialized() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QString s; | 
					
						
							|  |  |  |     QStringList sl; | 
					
						
							|  |  |  |     QMap<int, int> mii; | 
					
						
							|  |  |  |     QMap<QString, QString> mss; | 
					
						
							|  |  |  |     QHash<int, int> hii; | 
					
						
							|  |  |  |     QHash<QString, QString> hss; | 
					
						
							|  |  |  |     QList<int> li; | 
					
						
							|  |  |  |     QVector<int> vi; | 
					
						
							|  |  |  |     QStack<int> si; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     std::string ss; | 
					
						
							|  |  |  |     std::map<int, int> smii; | 
					
						
							|  |  |  |     std::map<std::string, std::string> smss; | 
					
						
							|  |  |  |     std::list<int> sli; | 
					
						
							|  |  |  |     std::list<std::string> ssl; | 
					
						
							|  |  |  |     std::vector<int> svi; | 
					
						
							|  |  |  |     std::stack<int> ssi; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-07-23 12:34:49 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-01 09:02:32 +02:00
										 |  |  | void testEndlessRecursion() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     testEndlessRecursion(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-07 09:19:36 +02:00
										 |  |  | int testEndlessLoop() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     qlonglong a = 1; | 
					
						
							|  |  |  |     while (a > 0) | 
					
						
							|  |  |  |         ++a; | 
					
						
							|  |  |  |     return a; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-04 13:16:10 +01:00
										 |  |  | QString fooxx() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return "bababa"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int testReference() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QString a = "hello"; | 
					
						
							|  |  |  |     const QString &b = fooxx(); | 
					
						
							| 
									
										
										
										
											2010-03-22 13:12:32 +01:00
										 |  |  |     const QString c = "world"; | 
					
						
							| 
									
										
										
										
											2010-01-04 13:16:10 +01:00
										 |  |  |     return a.size() + b.size() + c.size(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-05 11:46:03 +02:00
										 |  |  | struct Color | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int r,g,b,a; | 
					
						
							|  |  |  |     Color() { r = 1, g = 2, b = 3, a = 4; } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  | Color testColor() | 
					
						
							| 
									
										
										
										
											2010-05-05 11:46:03 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     Color c; | 
					
						
							|  |  |  |     c.r = 5; | 
					
						
							| 
									
										
										
										
											2010-05-19 12:00:01 +02:00
										 |  |  |     return c; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int fooii() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return 3; | 
					
						
							| 
									
										
										
										
											2010-05-05 11:46:03 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-01 14:29:15 +02:00
										 |  |  | typedef QVector<Foo> FooVector; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FooVector fooVector() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     FooVector f; | 
					
						
							|  |  |  |     f.append(Foo(2)); | 
					
						
							|  |  |  |     fprintf(stderr, "xxx\n"); | 
					
						
							|  |  |  |     f.append(Foo(3)); | 
					
						
							|  |  |  |     f.append(Foo(4)); | 
					
						
							| 
									
										
										
										
											2010-06-10 14:52:41 +02:00
										 |  |  |     for (int i = 0; i < 1000; ++i) | 
					
						
							|  |  |  |         f.append(Foo(i)); | 
					
						
							| 
									
										
										
										
											2010-06-01 14:29:15 +02:00
										 |  |  |     return f; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-28 09:40:35 +02:00
										 |  |  | namespace ns { | 
					
						
							|  |  |  |     typedef unsigned long long vl; | 
					
						
							|  |  |  |     typedef vl verylong; | 
					
						
							| 
									
										
										
										
											2010-08-30 09:32:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testTypedef() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     typedef quint32 myType1; | 
					
						
							|  |  |  |     typedef unsigned int myType2; | 
					
						
							|  |  |  |     myType1 t1 = 0; | 
					
						
							|  |  |  |     myType2 t2 = 0; | 
					
						
							|  |  |  |     ns::vl j = 1000; | 
					
						
							|  |  |  |     ns::verylong k = 1000; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ++j; | 
					
						
							|  |  |  |     ++k; | 
					
						
							|  |  |  |     ++t1; | 
					
						
							|  |  |  |     ++t2; | 
					
						
							| 
									
										
										
										
											2010-06-28 09:40:35 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-08 12:18:04 +02:00
										 |  |  | void testConditional(const QString &str) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     //
 | 
					
						
							|  |  |  |     QString res = str; | 
					
						
							|  |  |  |     res += "x"; | 
					
						
							|  |  |  |     res += "x"; | 
					
						
							|  |  |  |     res += "x"; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  | void testStuff() | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-09-08 12:18:04 +02:00
										 |  |  |     testConditional("foo"); | 
					
						
							|  |  |  |     testConditional("bar"); | 
					
						
							|  |  |  |     testConditional("zzz"); | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Foo *f1 = new Foo(1); | 
					
						
							| 
									
										
										
										
											2010-09-01 13:25:23 +02:00
										 |  |  |     X *x = new X(); | 
					
						
							|  |  |  |     Foo *f2 = x; | 
					
						
							|  |  |  |     XX *xx = new XX(); | 
					
						
							|  |  |  |     Foo *f3 = xx; | 
					
						
							|  |  |  |     Y *y = new Y(); | 
					
						
							|  |  |  |     Foo *f4 = y; | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     //Foo *f5 = new D();
 | 
					
						
							|  |  |  |     qDebug() << f1 << f2 << f3 << f4; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testStuff2() | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-08-11 13:51:43 +02:00
										 |  |  |     QList<QList<int> > list1; | 
					
						
							|  |  |  |     QList<QList<int> > list2; | 
					
						
							|  |  |  |     list1.append(QList<int>() << 1); | 
					
						
							|  |  |  |     list2.append(QList<int>() << 2); | 
					
						
							|  |  |  |     for (int i = 0; i < list1.size(); ++i) { | 
					
						
							|  |  |  |         for (int j = 0; j < list1.at(i).size(); ++j) { | 
					
						
							|  |  |  |             for (int k = i; k < list1.size(); ++k) { | 
					
						
							|  |  |  |                 for (int l = j; l < list1.at(k).size(); ++l) { | 
					
						
							|  |  |  |                     qDebug() << list1.at(i).at(j)+list2.at(k).at(l); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-18 11:17:52 +02:00
										 |  |  |     // special char* support only with Python.
 | 
					
						
							| 
									
										
										
										
											2010-07-09 17:07:59 +02:00
										 |  |  |     typedef unsigned short wchar; | 
					
						
							|  |  |  |     wchar *str = new wchar[10]; | 
					
						
							|  |  |  |     str[2] = 0; | 
					
						
							|  |  |  |     str[1] = 'B'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     QString foo = "foo"; | 
					
						
							|  |  |  |     wchar *f = (wchar*)foo.utf16(); | 
					
						
							| 
									
										
										
										
											2010-09-01 11:58:23 +02:00
										 |  |  |     Q_UNUSED(f); | 
					
						
							| 
									
										
										
										
											2010-07-09 17:07:59 +02:00
										 |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							|  |  |  |     str[0] = 'A'; | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-26 14:24:36 +02:00
										 |  |  | void testPassByReferenceHelper(Foo &f) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ++f.a; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testPassByReference() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     Foo f(12); | 
					
						
							|  |  |  |     testPassByReferenceHelper(f); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  | void testWCout() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     using namespace std; | 
					
						
							|  |  |  |     wstring x = L"xxxxx"; | 
					
						
							|  |  |  |     wstring::iterator i = x.begin(); | 
					
						
							|  |  |  |     while (i != x.end()) { | 
					
						
							|  |  |  |         wcout << *i; | 
					
						
							|  |  |  |         i++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     wcout.flush(); | 
					
						
							|  |  |  |     string y = "yyyyy"; | 
					
						
							|  |  |  |     string::iterator j = y.begin(); | 
					
						
							|  |  |  |     while (j != y.end()) { | 
					
						
							|  |  |  |         cout << *j; | 
					
						
							|  |  |  |         j++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     cout.flush(); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void testWCout0() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     // Mixing cout and wcout does not work with gcc.
 | 
					
						
							|  |  |  |     // See http://gcc.gnu.org/ml/gcc-bugs/2006-05/msg01193.html
 | 
					
						
							|  |  |  |     // which also says "you can obtain something close to your
 | 
					
						
							|  |  |  |     // expectations by calling std::ios::sync_with_stdio(false);
 | 
					
						
							|  |  |  |     // at the beginning of your program."
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     using namespace std; | 
					
						
							|  |  |  |     //std::ios::sync_with_stdio(false);
 | 
					
						
							|  |  |  |     wcout << L"WWWWWW" << endl; | 
					
						
							|  |  |  |     wcerr << L"YYYYYY" << endl; | 
					
						
							|  |  |  |     cout << "CCCCCC" << endl; | 
					
						
							|  |  |  |     cerr << "EEEEEE" << endl; | 
					
						
							|  |  |  |     wcout << L"WWWWWW" << endl; | 
					
						
							|  |  |  |     wcerr << L"YYYYYY" << endl; | 
					
						
							|  |  |  |     cout << "CCCCCC" << endl; | 
					
						
							|  |  |  |     cerr << "EEEEEE" << endl; | 
					
						
							|  |  |  |     wcout << L"WWWWWW" << endl; | 
					
						
							|  |  |  |     wcerr << L"YYYYYY" << endl; | 
					
						
							|  |  |  |     cout << "CCCCCC" << endl; | 
					
						
							|  |  |  |     cerr << "EEEEEE" << endl; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  | void testSSE() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef Q_OS_LINUX
 | 
					
						
							|  |  |  |     float a[4]; | 
					
						
							|  |  |  |     float b[4]; | 
					
						
							|  |  |  |     int i; | 
					
						
							|  |  |  |     for (i = 0; i < 4; i++) { | 
					
						
							|  |  |  |         a[i] = 2 * i; | 
					
						
							|  |  |  |         b[i] = 2 * i; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     __m128 sseA, sseB; | 
					
						
							|  |  |  |     sseA = _mm_loadu_ps(a); | 
					
						
							|  |  |  |     sseB = _mm_loadu_ps(b); | 
					
						
							|  |  |  |     ++i; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  | void testQSettings() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-06-01 14:29:15 +02:00
										 |  |  |     // Note: Construct a QCoreApplication first.
 | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  |     QSettings settings("/tmp/test.ini", QSettings::IniFormat); | 
					
						
							|  |  |  |     QVariant value = settings.value("item1","").toString(); | 
					
						
							|  |  |  |     int x = 1; | 
					
						
							| 
									
										
										
										
											2010-06-11 13:44:18 +02:00
										 |  |  |     Q_UNUSED(x); | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | int main(int argc, char *argv[]) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2010-06-01 14:29:15 +02:00
										 |  |  |     //testQSettings();
 | 
					
						
							| 
									
										
										
										
											2010-05-27 18:23:51 +02:00
										 |  |  |     //testWCout0();
 | 
					
						
							|  |  |  |     //testWCout();
 | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  |     testSSE(); | 
					
						
							| 
									
										
										
										
											2010-08-12 12:39:14 +02:00
										 |  |  |     testQLocale(); | 
					
						
							| 
									
										
										
										
											2010-05-05 11:46:03 +02:00
										 |  |  |     testColor(); | 
					
						
							| 
									
										
										
										
											2010-06-30 15:20:16 +02:00
										 |  |  |     testQRegion(); | 
					
						
							| 
									
										
										
										
											2010-08-30 09:32:55 +02:00
										 |  |  |     testTypedef(); | 
					
						
							| 
									
										
										
										
											2010-05-19 14:18:41 +02:00
										 |  |  |     testStuff(); | 
					
						
							| 
									
										
										
										
											2010-03-16 18:39:06 +01:00
										 |  |  |     testPeekAndPoke3(); | 
					
						
							| 
									
										
										
										
											2010-02-26 14:25:36 +01:00
										 |  |  |     testFunctionPointer(); | 
					
						
							| 
									
										
										
										
											2010-02-15 16:59:00 +01:00
										 |  |  |     testAnonymous(); | 
					
						
							| 
									
										
										
										
											2010-01-04 13:16:10 +01:00
										 |  |  |     testReference(); | 
					
						
							| 
									
										
										
										
											2010-04-07 09:19:36 +02:00
										 |  |  |     //testEndlessLoop();
 | 
					
						
							| 
									
										
										
										
											2009-10-01 09:02:32 +02:00
										 |  |  |     //testEndlessRecursion();
 | 
					
						
							| 
									
										
										
										
											2009-08-28 09:44:11 +02:00
										 |  |  |     testQStack(); | 
					
						
							|  |  |  |     testUninitialized(); | 
					
						
							| 
									
										
										
										
											2009-07-23 12:34:49 +02:00
										 |  |  |     testPointer(); | 
					
						
							| 
									
										
										
										
											2010-09-27 12:40:14 +02:00
										 |  |  |     testQDate(); | 
					
						
							| 
									
										
										
										
											2009-09-03 09:15:24 +02:00
										 |  |  |     testQDateTime(); | 
					
						
							| 
									
										
										
										
											2010-09-27 12:40:14 +02:00
										 |  |  |     testQTime(); | 
					
						
							| 
									
										
										
										
											2009-07-14 18:14:49 +02:00
										 |  |  |     testQFileInfo(); | 
					
						
							| 
									
										
										
										
											2010-10-08 14:26:44 +02:00
										 |  |  |     testQFixed(); | 
					
						
							| 
									
										
										
										
											2009-06-23 10:24:25 +02:00
										 |  |  |     testObject1(); | 
					
						
							|  |  |  |     testVector1(); | 
					
						
							|  |  |  |     testQHash1(); | 
					
						
							| 
									
										
										
										
											2010-07-07 17:11:10 +02:00
										 |  |  |     testSignalSlot(argc, argv); | 
					
						
							| 
									
										
										
										
											2009-06-23 10:24:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-26 13:20:14 +02:00
										 |  |  |     QString hallo = "hallo\nwelt"; | 
					
						
							| 
									
										
										
										
											2009-03-03 17:27:25 +01:00
										 |  |  |     QStringList list; | 
					
						
							|  |  |  |     list << "aaa" << "bbb" << "cc"; | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-16 13:25:58 +02:00
										 |  |  |     QList<const char *> list2; | 
					
						
							|  |  |  |     list2 << "foo"; | 
					
						
							|  |  |  |     list2 << "bar"; | 
					
						
							|  |  |  |     list2 << 0; | 
					
						
							|  |  |  |     list2 << "baz"; | 
					
						
							|  |  |  |     list2 << 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-03 12:46:55 +02:00
										 |  |  |     testQStandardItemModel(); | 
					
						
							| 
									
										
										
										
											2010-03-15 17:44:56 +01:00
										 |  |  |     testFunction(); | 
					
						
							| 
									
										
										
										
											2009-05-29 16:24:46 +02:00
										 |  |  |     testQImage(); | 
					
						
							| 
									
										
										
										
											2009-05-25 17:19:42 +02:00
										 |  |  |     testNoArgumentName(1, 2, 3); | 
					
						
							| 
									
										
										
										
											2010-09-28 09:35:59 +02:00
										 |  |  |     testQTextCursor(); | 
					
						
							| 
									
										
										
										
											2010-07-07 17:46:52 +02:00
										 |  |  |     testInput(); | 
					
						
							|  |  |  |     testOutput(); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     testHidden(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     testArray(); | 
					
						
							| 
									
										
										
										
											2010-02-11 17:29:10 +01:00
										 |  |  |     testCatchThrow(); | 
					
						
							| 
									
										
										
										
											2009-04-02 10:54:22 +02:00
										 |  |  |     testQByteArray(); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-16 11:17:00 +01:00
										 |  |  |     testStdDeque(); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     testStdList(); | 
					
						
							| 
									
										
										
										
											2010-04-15 18:28:58 +02:00
										 |  |  |     testStdHashSet(); | 
					
						
							| 
									
										
										
										
											2008-12-11 16:10:47 +01:00
										 |  |  |     testStdMap(); | 
					
						
							| 
									
										
										
										
											2009-03-11 13:31:38 +01:00
										 |  |  |     testStdSet(); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     testStdStack(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     testStdString(); | 
					
						
							| 
									
										
										
										
											2008-12-10 14:37:15 +01:00
										 |  |  |     testStdVector(); | 
					
						
							| 
									
										
										
										
											2010-10-12 11:52:11 +02:00
										 |  |  |     testTypeFormats(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-26 14:24:36 +02:00
										 |  |  |     testPassByReference(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     testPlugin(); | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQList(); | 
					
						
							| 
									
										
										
										
											2009-01-08 11:02:04 +01:00
										 |  |  |     testQLinkedList(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     testNamespace(); | 
					
						
							|  |  |  |     //return 0;
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQHash(); | 
					
						
							|  |  |  |     testQImage(); | 
					
						
							|  |  |  |     testQMap(); | 
					
						
							| 
									
										
										
										
											2009-01-07 15:31:58 +01:00
										 |  |  |     testQMultiMap(); | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQString(); | 
					
						
							| 
									
										
										
										
											2010-10-26 10:40:31 +02:00
										 |  |  |     testQUrl(); | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQSet(); | 
					
						
							| 
									
										
										
										
											2010-06-10 13:12:12 +02:00
										 |  |  | #    if QT_VERSION >= 0x040500
 | 
					
						
							| 
									
										
										
										
											2009-04-17 15:34:46 +02:00
										 |  |  |     testQSharedPointer(); | 
					
						
							| 
									
										
										
										
											2010-06-10 13:12:12 +02:00
										 |  |  | #    endif
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQStringList(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     testStruct(); | 
					
						
							| 
									
										
										
										
											2010-07-21 13:11:03 +02:00
										 |  |  |     //testQThread();
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQVariant1(); | 
					
						
							|  |  |  |     testQVariant2(); | 
					
						
							|  |  |  |     testQVariant3(); | 
					
						
							|  |  |  |     testQVector(); | 
					
						
							|  |  |  |     testQVectorOfQList(); | 
					
						
							| 
									
										
										
										
											2008-12-08 11:58:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 14:13:09 +01:00
										 |  |  |     //*(int *)0 = 0;
 | 
					
						
							| 
									
										
										
										
											2008-12-08 11:58:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-10 16:31:50 +01:00
										 |  |  |     testQObject(argc, argv); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     //QColor color(255,128,10);
 | 
					
						
							|  |  |  |     //QFont font;
 | 
					
						
							| 
									
										
										
										
											2010-10-04 12:19:28 +02:00
										 |  |  |     return 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QT_BEGIN_NAMESPACE | 
					
						
							| 
									
										
										
										
											2009-07-06 11:37:21 +02:00
										 |  |  | QT_END_NAMESPACE | 
					
						
							| 
									
										
										
										
											2009-11-27 14:47:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-03 11:15:27 +02:00
										 |  |  | #include "simple_gdbtest_app.moc"
 |