1
/****************************************************************************
2
**
3
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4
** All rights reserved.
5
** Contact: Nokia Corporation (qt-info@nokia.com)
6
**
7
** This file is part of the test suite of the Qt Toolkit.
8
**
9
** $QT_BEGIN_LICENSE:LGPL$
10
** GNU Lesser General Public License Usage
11
** This file may be used under the terms of the GNU Lesser General Public
12
** License version 2.1 as published by the Free Software Foundation and
13
** appearing in the file LICENSE.LGPL included in the packaging of this
14
** file. Please review the following information to ensure the GNU Lesser
15
** General Public License version 2.1 requirements will be met:
16
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17
**
18
** In addition, as a special exception, Nokia gives you certain additional
19
** rights. These rights are described in the Nokia Qt LGPL Exception
20
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21
**
22
** GNU General Public License Usage
23
** Alternatively, this file may be used under the terms of the GNU General
24
** Public License version 3.0 as published by the Free Software Foundation
25
** and appearing in the file LICENSE.GPL included in the packaging of this
26
** file. Please review the following information to ensure the GNU General
27
** Public License version 3.0 requirements will be met:
28
** http://www.gnu.org/copyleft/gpl.html.
29
**
30
** Other Usage
31
** Alternatively, this file may be used in accordance with the terms and
32
** conditions contained in a signed written agreement between you and Nokia.
33
**
34
**
35
**
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
43
#include <QtTest/QtTest>
44
45
#include <QApplication>
46
#include <QWidget>
47
#include <QPushButton>
48
#include <QDebug>
49
#include <Q3GroupBox>
50
#include <Q3ScrollView>
51
#include <Q3PopupMenu>
52
#include <QMenuBar>
53
#include <QLabel>
54
#include <QLineEdit>
55
#include <Q3ProgressBar>
56
#include <QSplitter>
57
#include <QToolBox>
58
#include <QLCDNumber>
59
60
template <typename WidgetType>
61
void callAllQt3FrameFunctions(WidgetType *widget)
62
{
63
    int e;
64
    e = WidgetType::Plain;
65
    e = WidgetType::Raised;
66
    e = WidgetType::Sunken;
67
    e = WidgetType::MShadow;
68
    e = WidgetType::NoFrame;
69
    e = WidgetType::Box;
70
    e = WidgetType::Panel;
71
    e = WidgetType::StyledPanel;
72
    e = WidgetType::HLine;
73
    e = WidgetType::VLine;
74
    e = WidgetType::GroupBoxPanel;
75
    e = WidgetType::WinPanel;
76
    e = WidgetType::ToolBarPanel;
77
    e = WidgetType::MenuBarPanel;
78
    e = WidgetType::PopupPanel;
79
    e = WidgetType::LineEditPanel;
80
    e = WidgetType::TabWidgetPanel;
81
    e = WidgetType::MShape;
82
    
83
    widget->contentsRect();
84
    widget->setFrameRect(widget->frameRect());
85
    widget->setFrameShape(widget->frameShape());
86
    widget->setFrameStyle(widget->frameStyle());
87
    widget->frameWidth();
88
    widget->setLineWidth(widget->lineWidth());
89
    widget->setMidLineWidth(widget->midLineWidth());
90
    
91
    const int margin = 10;
92
    widget->setMargin(margin);
93
    if (widget->margin() != 10)
94
        qFatal("Error: margin() did not return the value set width setMargin()");
95
}
96
97
template <typename WidgetType>
98
void callConstQt3FrameFunctions(WidgetType const *widget)
99
{
100
    widget->contentsRect();
101
    widget->frameRect();
102
    widget->frameShape();
103
    widget->frameStyle();
104
    widget->frameWidth();
105
    widget->lineWidth();
106
    widget->margin();
107
    widget->midLineWidth();
108
}
109
110
template <typename WidgetType>
111
void callQt3FrameFunctions(WidgetType *widget)
112
{
113
    callAllQt3FrameFunctions(widget);
114
    callConstQt3FrameFunctions(widget);
115
    delete widget;
116
}
117
118
class tst_Q3Frame : public QObject
119
{
120
Q_OBJECT
121
122
private slots:
123
    void frameFunctions();
124
};
125
126
/*
127
    A few classes inherit QFrame in Qt 3 but no longer does
128
    in Qt 4. Test that those classes have dummy implementations 
129
    for the missing functions.
130
*/
131
void tst_Q3Frame::frameFunctions()
132
{
133
    callQt3FrameFunctions(new Q3ScrollView());
134
    callQt3FrameFunctions(new Q3GroupBox());
135
    callQt3FrameFunctions(new Q3PopupMenu());
136
    callQt3FrameFunctions(new QMenuBar());
137
    callQt3FrameFunctions(new QLabel());
138
    callQt3FrameFunctions(new QLineEdit());
139
    callQt3FrameFunctions(new Q3ProgressBar());
140
    callQt3FrameFunctions(new QSplitter());
141
    callQt3FrameFunctions(new QToolBox());
142
    callQt3FrameFunctions(new QLCDNumber());
143
}
144
145
QTEST_MAIN(tst_Q3Frame)
146
#include "tst_q3frame.moc"