diff options
author | Liang Qi <liang.qi@qt.io> | 2018-06-30 22:59:21 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-07-02 11:23:45 +0200 |
commit | e3ed2281c0c891cf3b15c95f9f7cdae42e9f233a (patch) | |
tree | aae8da6ce616eae02b69fb1fcdcb4383c8fe6811 /tests/manual | |
parent | 3be141d5bc199080b524d8f6f5ce514e8f74d23a (diff) | |
parent | e75e4b39b78ba05ea2cd45dc96acf99fc89c5915 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
src/plugins/platforms/cocoa/qnsview.mm
src/plugins/platforms/cocoa/qnsview_dragging.mm
src/plugins/platforms/ios/qiosinputcontext.mm
src/plugins/platforms/xcb/qxcbconnection.cpp
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/plugins/platforms/xcb/qxcbwindow.cpp
src/tools/androiddeployqt/main.cpp
Was moved from qttools into qtbase in 5.11.
So re-apply 32398e4d here.
tests/auto/corelib/global/qlogging/test/test.pro
tests/auto/corelib/global/qlogging/tst_qlogging.cpp
tests/auto/corelib/io/qfile/tst_qfile.cpp
tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp
tests/auto/corelib/thread/qthreadstorage/test/test.pro
tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
tests/auto/widgets/kernel/qapplication/test/test.pro
Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Done-with: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Done-with: Oliver Wolff <oliver.wolff@qt.io>
Change-Id: Id970486c5315a1718c540f00deb2633533e8fc7b
Diffstat (limited to 'tests/manual')
-rw-r--r-- | tests/manual/widgets/widgets/defaultUpMenuBar/defaultUpMenuBar.pro | 4 | ||||
-rw-r--r-- | tests/manual/widgets/widgets/defaultUpMenuBar/main.cpp | 125 |
2 files changed, 129 insertions, 0 deletions
diff --git a/tests/manual/widgets/widgets/defaultUpMenuBar/defaultUpMenuBar.pro b/tests/manual/widgets/widgets/defaultUpMenuBar/defaultUpMenuBar.pro new file mode 100644 index 0000000000..f9cffb3709 --- /dev/null +++ b/tests/manual/widgets/widgets/defaultUpMenuBar/defaultUpMenuBar.pro @@ -0,0 +1,4 @@ +QT += widgets +TEMPLATE = app +TARGET = defaultUpMenuBar +SOURCES += main.cpp diff --git a/tests/manual/widgets/widgets/defaultUpMenuBar/main.cpp b/tests/manual/widgets/widgets/defaultUpMenuBar/main.cpp new file mode 100644 index 0000000000..602127febe --- /dev/null +++ b/tests/manual/widgets/widgets/defaultUpMenuBar/main.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** + ** + ** Copyright (C) 2018 The Qt Company Ltd. + ** Contact: https://www.qt.io/licensing/ + ** + ** This file is part of the test suite of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:BSD$ + ** Commercial License Usage + ** Licensees holding valid commercial Qt licenses may use this file in + ** accordance with the commercial license agreement provided with the + ** Software or, alternatively, in accordance with the terms contained in + ** a written agreement between you and The Qt Company. For licensing terms + ** and conditions see https://www.qt.io/terms-conditions. For further + ** information use the contact form at https://www.qt.io/contact-us. + ** + ** BSD License Usage + ** Alternatively, you may use this file under the terms of the BSD license + ** as follows: + ** + ** "Redistribution and use in source and binary forms, with or without + ** modification, are permitted provided that the following conditions are + ** met: + ** * Redistributions of source code must retain the above copyright + ** notice, this list of conditions and the following disclaimer. + ** * Redistributions in binary form must reproduce the above copyright + ** notice, this list of conditions and the following disclaimer in + ** the documentation and/or other materials provided with the + ** distribution. + ** * Neither the name of The Qt Company Ltd nor the names of its + ** contributors may be used to endorse or promote products derived + ** from this software without specific prior written permission. + ** + ** + ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + ** + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + +// This test is to check that the menus in a menubar are displayed correctly in both the top and +// bottom cases. Especially when using multiple screens. If possible relayout the screens in order +// to have one that is entirely in negative coordinates (i.e. the primary starts at 0x0 and the +// secondary is above it). + +#include <QtWidgets> +#include <QtPlatformHeaders/QWindowsWindowFunctions> + +class MainWindow : public QMainWindow +{ +public: + MainWindow(QWidget *parent = 0) : QMainWindow(parent) + { + auto *menu1Act1 = new QAction("Action 1"); + auto *menu1Act2 = new QAction("Action 2"); + auto *menu1Act3 = new QAction("Action 3"); + auto *menu1Act4 = new QAction("Action 4"); + auto *menu2Act1 = new QAction("2- Action 1"); + auto *menu2Act2 = new QAction("2- Action 2"); + auto *menu2Act3 = new QAction("2- Action 3"); + auto *menu2Act4 = new QAction("2- Action 4"); + auto *menu1 = new QMenu("Menu 1"); + menu1->addAction(menu1Act1); + menu1->addAction(menu1Act2); + menu1->addAction(menu1Act3); + menu1->addAction(menu1Act4); + auto *menu2 = new QMenu("Menu 2"); + menu2->addAction(menu2Act1); + menu2->addAction(menu2Act2); + menu2->addAction(menu2Act3); + menu2->addAction(menu2Act4); + menuBar()->addMenu(menu1); + menuBar()->addMenu(menu2); + menuBar()->setNativeMenuBar(false); + + auto *menu1Bottom = new QMenu("Menu 1"); + menu1Bottom->addAction(menu1Act1); + menu1Bottom->addAction(menu1Act2); + menu1Bottom->addAction(menu1Act3); + menu1Bottom->addAction(menu1Act4); + auto *menu2Bottom = new QMenu("Menu 2"); + menu2Bottom->addAction(menu2Act1); + menu2Bottom->addAction(menu2Act2); + menu2Bottom->addAction(menu2Act3); + menu2Bottom->addAction(menu2Act4); + + QWidget *central = new QWidget; + QVBoxLayout *layout = new QVBoxLayout; + auto *menuBarBottom = new QMenuBar(this); + menuBarBottom->addMenu(menu1Bottom); + menuBarBottom->addMenu(menu2Bottom); + menuBarBottom->setDefaultUp(true); + menuBarBottom->setNativeMenuBar(false); + layout->addWidget(menuBarBottom); + layout->setAlignment(menuBarBottom, Qt::AlignBottom); + central->setLayout(layout); + setCentralWidget(central); + setWindowFlags(windowFlags() | Qt::FramelessWindowHint); + } +}; + +int main(int argc, char **argv) +{ + QApplication a(argc, argv); + QList<MainWindow *> windows; + for (QScreen *screen : QApplication::screens()) { + MainWindow *mainWindow = new MainWindow; + mainWindow->setGeometry(screen->geometry()); + QWindowsWindowFunctions::setHasBorderInFullScreen(mainWindow->windowHandle(), true); + mainWindow->showMaximized(); + } + int ret = a.exec(); + qDeleteAll(windows); + return ret; +} |