diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -project(kirigami) +project(kirigami2) cmake_minimum_required(VERSION 2.8.12) set(KF5_MIN_VERSION "5.18.0") @@ -48,19 +48,19 @@ include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) -set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Kirigami") +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Kirigami2") ecm_configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/KF5KirigamiConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/KF5KirigamiConfig.cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/KF5Kirigami2Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2Config.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} PATH_VARS KF5_INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX ) install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/KF5KirigamiConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/KF5KirigamiConfigVersion.cmake" - "${CMAKE_CURRENT_SOURCE_DIR}/KF5KirigamiMacros.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2Config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2ConfigVersion.cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/KF5Kirigami2Macros.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) @@ -70,10 +70,10 @@ ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KIRIGAMI VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kirigami_version.h" - PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5KirigamiConfigVersion.cmake" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2ConfigVersion.cmake" SOVERSION 5) -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Svg) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui Svg QuickControls2) if(PLASMA_ENABLED) # treat plasma as an optinal dep: full functionality is expected with only Qt @@ -105,6 +105,7 @@ find_package(PkgConfig) ######################################################################### +add_subdirectory(autotests) add_subdirectory(src) #TODO: conditional if (BUILD_EXAMPLES) diff --git a/KF5KirigamiConfig.cmake.in b/KF5Kirigami2Config.cmake.in rename from KF5KirigamiConfig.cmake.in rename to KF5Kirigami2Config.cmake.in --- a/KF5KirigamiConfig.cmake.in +++ b/KF5Kirigami2Config.cmake.in @@ -8,4 +8,4 @@ #set(Kirigami_LIBRARIES KF5::Kirigami) -include("${CMAKE_CURRENT_LIST_DIR}/KF5KirigamiMacros.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/KF5Kirigami2Macros.cmake") diff --git a/KF5KirigamiMacros.cmake b/KF5Kirigami2Macros.cmake rename from KF5KirigamiMacros.cmake rename to KF5Kirigami2Macros.cmake --- a/KF5KirigamiMacros.cmake +++ b/KF5Kirigami2Macros.cmake @@ -74,7 +74,7 @@ _find_breeze_icon(${_iconName} _iconPath) message (STATUS ${_iconPath}) if (EXISTS ${_iconPath}) - install(FILES ${_iconPath} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami/icons/ RENAME ${_iconName}.svg) + install(FILES ${_iconPath} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/icons/ RENAME ${_iconName}.svg) endif() endforeach() diff --git a/Mainpage.dox b/Mainpage.dox --- a/Mainpage.dox +++ b/Mainpage.dox @@ -55,7 +55,7 @@ @code import QtQuick 2.1 -import org.kde.kirigami 1.0 as Kirigami +import org.kde.kirigami 2.0 as Kirigami Kirigami.ApplicationWindow { id: root diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/autotests/CMakeLists.txt @@ -0,0 +1 @@ +add_test(qmltests COMMAND qmltestrunner WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/autotests/tst_pagerow.qml b/autotests/tst_pagerow.qml new file mode 100644 --- /dev/null +++ b/autotests/tst_pagerow.qml @@ -0,0 +1,105 @@ +/* + * Copyright 2016 Aleix Pol Gonzalez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Window 2.1 +import org.kde.kirigami 2.0 as Kirigami +import QtTest 1.0 + +TestCase { + id: testCase +// when: mainWindow.visible + width: 400 + height: 400 +// visible: true + when: mainWindow.visible + name: "GoBack" + + Kirigami.ApplicationWindow { + id: mainWindow + width: 480 + height: 360 + visible: true + pageStack.initialPage: Kirigami.Page { + Rectangle { + anchors.fill: parent + color: "green" + } + } + } + + Component { + id: randomPage + Kirigami.Page { + Rectangle { + anchors.fill: parent + color: "red" + } + } + } + + SignalSpy { + id: spyCurrentIndex + target: mainWindow.pageStack + signalName: "currentIndexChanged" + } + + SignalSpy { + id: spyActive + target: mainWindow + signalName: "activeChanged" + } + + function initTestCase() { + spyActive.clear() + spyCurrentIndex.clear() + } + + function test_pop() { + compare(mainWindow.pageStack.depth, 1) + mainWindow.pageStack.push(randomPage) + compare(mainWindow.pageStack.depth, 2) + mainWindow.pageStack.pop() + compare(mainWindow.pageStack.depth, 1) + } + + function test_goBack() { + compare(spyCurrentIndex.count, 0) + compare(mainWindow.pageStack.depth, 1) + mainWindow.pageStack.push(randomPage) + compare(mainWindow.pageStack.depth, 2) + compare(spyCurrentIndex.count, 1) + mainWindow.requestActivate() + spyActive.clear() + spyCurrentIndex.clear() + var sa = spyActive.wait(12321313) + verify(mainWindow.active || sa) + console.log("lalala", mainWindow.active) + keyClick(Qt.Key_Left, Qt.AltModifier) + + spyCurrentIndex.wait(5000) + + compare(mainWindow.pageStack.depth, 2) + compare(mainWindow.pageStack.currentIndex, 0) + compare(spyCurrentIndex.count, 1) + mainWindow.pageStack.pop() + compare(mainWindow.pageStack.depth, 1) + } +} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,5 @@ add_subdirectory(android) -install(DIRECTORY gallery/ DESTINATION ${KDE_INSTALL_DATAROOTDIR}/kpackage/genericqml/org.kde.kirigami.gallery) -install(FILES gallery/metadata.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} RENAME org.kde.kirigami.gallery.desktop) +install(DIRECTORY gallery/ DESTINATION ${KDE_INSTALL_DATAROOTDIR}/kpackage/genericqml/org.kde.kirigami2.gallery) +install(FILES gallery/metadata.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} RENAME org.kde.kirigami2.gallery.desktop) diff --git a/examples/android/AndroidManifest.xml b/examples/android/AndroidManifest.xml --- a/examples/android/AndroidManifest.xml +++ b/examples/android/AndroidManifest.xml @@ -50,7 +50,7 @@ - +