1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2015 The Qt Company Ltd. 4 ** Contact: http://www.qt.io/licensing/ 5 ** 6 ** This file is part of the test suite of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:LGPL$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see http://www.qt.io/terms-conditions. For further 15 ** information use the contact form at http://www.qt.io/contact-us. 16 ** 17 ** GNU Lesser General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU Lesser 19 ** General Public License version 2.1 or version 3 as published by the Free 20 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and 21 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the 22 ** following information to ensure the GNU Lesser General Public License 23 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and 24 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 25 ** 26 ** As a special exception, The Qt Company gives you certain additional 27 ** rights. These rights are described in The Qt Company LGPL Exception 28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 29 ** 30 ** GNU General Public License Usage 31 ** Alternatively, this file may be used under the terms of the GNU 32 ** General Public License version 3.0 as published by the Free Software 33 ** Foundation and appearing in the file LICENSE.GPL included in the 34 ** packaging of this file. Please review the following information to 35 ** ensure the GNU General Public License version 3.0 requirements will be 36 ** met: http://www.gnu.org/copyleft/gpl.html. 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> callAllQt3FrameFunctions(WidgetType * widget)61void 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> callConstQt3FrameFunctions(WidgetType const * widget)98void 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> callQt3FrameFunctions(WidgetType * widget)111void 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 */ frameFunctions()131void 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" 147