Skip to content

Commit

Permalink
ColorSet concept in Theme
Browse files Browse the repository at this point in the history
Summary:
Theme is now an attached property rather than a singleton (in 2.2 import)
a "colorSet" property can be defined on it and all its color properties
will change to that given set (which follows KColorScheme ColorSet)
all child items will inherit the theme of ancestor objects, until instructed not to

Test Plan: Kirigami Gallery

Reviewers: #kirigami, hein

Reviewed By: hein

Subscribers: plasma-devel

Tags: #kirigami

Differential Revision: https://phabricator.kde.org/D7939
  • Loading branch information
notmart committed Oct 3, 2017
1 parent 23ca207 commit 5b08a7b
Show file tree
Hide file tree
Showing 110 changed files with 2,040 additions and 232 deletions.
13 changes: 12 additions & 1 deletion CMakeLists.txt
Expand Up @@ -40,17 +40,23 @@ set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Mod
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})

include(GenerateExportHeader)
include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(CMakePackageConfigHelpers)
include(ECMPoQmTools)
include(ECMQMLModules)
include(KDEInstallDirs)
include(KDECMakeSettings)
include(ECMQtDeclareLoggingCategory)
include(ECMAddQch)
include(KDECompilerSettings NO_POLICY_SCOPE)

set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Kirigami2")

option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")

configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/KF5Kirigami2Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2Config.cmake"
Expand All @@ -66,9 +72,14 @@ install(FILES
COMPONENT Devel
)

install(EXPORT KF5Kirigami2Targets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE KF5Kirigami2Targets.cmake
NAMESPACE KF5::)


ecm_setup_version(${KF5_VERSION}
VARIABLE_PREFIX KIRIGAMI
VARIABLE_PREFIX KIRIGAMI2
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kirigami_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5Kirigami2ConfigVersion.cmake"
SOVERSION 5)
Expand Down
10 changes: 7 additions & 3 deletions KF5Kirigami2Config.cmake.in
@@ -1,11 +1,15 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(Qt5Core @REQUIRED_QT_VERSION@)

# Any changes in this ".cmake" file will be overwritten by CMake, the source is the ".cmake.in" file.

#include("${CMAKE_CURRENT_LIST_DIR}/KF5KirigamiTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/KF5Kirigami2Targets.cmake")

set(Kirigami_INSTALL_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")
set(Kirigami2_INSTALL_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@")

#set(Kirigami_LIBRARIES KF5::Kirigami)
#set(Kirigami2_LIBRARIES KF5::Kirigami2)

include("${CMAKE_CURRENT_LIST_DIR}/KF5Kirigami2Macros.cmake")
@PACKAGE_INCLUDE_QCHTARGETS@
5 changes: 4 additions & 1 deletion KF5Kirigami2Macros.cmake
Expand Up @@ -13,7 +13,7 @@ function(kirigami_package_breeze_icons)
endif()

#include icons used by Kirigami components themselves
set(ARG_ICONS ${ARG_ICONS} go-next go-previous go-up handle-left handle-right)
set(ARG_ICONS ${ARG_ICONS} go-next go-previous go-up handle-left handle-right go-next-symbolic go-next-symbolic-rtl go-previous-symbolic go-previous-symbolic-rtl)

function(_find_breeze_icon icon varName)
#HACKY
Expand All @@ -27,6 +27,9 @@ function(kirigami_package_breeze_icons)
file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/22/${icon}.svg )
endif()
endif()
if (NOT EXISTS ${path})
file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/symbolic/${icon}.svg )
endif()
if (NOT EXISTS ${path})
return()
endif()
Expand Down
6 changes: 5 additions & 1 deletion README.md
Expand Up @@ -22,11 +22,15 @@ mkdir build
cd build
cmake .. \
-DQTANDROID_EXPORTED_TARGET=kirigami2gallery \
-DBUILD_EXAMPLES=on \
-DANDROID_APK_DIR=../examples/galleryapp \
-DECM_DIR=/path/to/share/ECM/cmake \
-DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/Android.cmake \
-DECM_ADDITIONAL_FIND_ROOT_PATH=/path/to/Qt5.7.0/5.7/{arch} \
-DCMAKE_PREFIX_PATH=/path/to/Qt5.7.0/5.7/{arch}/path/to/Qt5Core
-DCMAKE_PREFIX_PATH=/path/to/Qt5.7.0/5.7/{arch}/path/to/Qt5Core \
-DANDROID_NDK=/path/to/Android/Sdk/ndk-bundle \
-DANDROID_SDK_ROOT=/path/to/Android/Sdk/ \
-DANDROID_SDK_BUILD_TOOLS_REVISION=26.0.2
```

You need a `-DCMAKE_INSTALL_PREFIX` to somewhere in your home, but using an absolute path.
Expand Down
2 changes: 1 addition & 1 deletion autotests/tst_keynavigation.qml
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Window 2.1
import org.kde.kirigami 2.0 as Kirigami
import org.kde.kirigami 2.2 as Kirigami
import QtTest 1.0
import "../tests"

Expand Down
2 changes: 1 addition & 1 deletion autotests/tst_listskeynavigation.qml
Expand Up @@ -21,7 +21,7 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Window 2.1
import org.kde.kirigami 2.0 as Kirigami
import org.kde.kirigami 2.2 as Kirigami
import QtTest 1.0
import "../tests"

Expand Down
2 changes: 1 addition & 1 deletion autotests/tst_pagerow.qml
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Window 2.1
import org.kde.kirigami 2.0 as Kirigami
import org.kde.kirigami 2.2 as Kirigami
import QtTest 1.0

TestCase {
Expand Down
2 changes: 1 addition & 1 deletion examples/applicationitemapp/main.qml
Expand Up @@ -18,7 +18,7 @@
*/

import QtQuick 2.1
import org.kde.kirigami 2.1 as Kirigami
import org.kde.kirigami 2.2 as Kirigami

Kirigami.ApplicationItem {
id: root
Expand Down
32 changes: 30 additions & 2 deletions examples/galleryapp/CMakeLists.txt
@@ -1,12 +1,40 @@

find_package(KF5Kirigami2 ${KF5_DEP_VERSION})

set(kirigami2gallery_SRCS
main.cpp
)

qt5_add_resources(RESOURCES resources.qrc)

if (CMAKE_SYSTEM_NAME STREQUAL "Android")
set(kirigami2gallery_EXTRA_LIBS Qt5::AndroidExtras Qt5::QuickControls2)
set(kirigami2gallery_EXTRA_LIBS Qt5::AndroidExtras
#FIXME: we shouldn't have to link to it but otherwise the lib won't be packaged on Android
Qt5::QuickControls2 KF5::Kirigami2)
endif()

find_program(kpackagetool_cmd kpackagetool5)
if (kpackagetool_cmd)
set(component org.kde.kirigami2.gallery)
set(APPDATAFILE "${CMAKE_CURRENT_BINARY_DIR}/${component}.appdata.xml")

message(STATUS "${kpackagetool_cmd} --appstream-metainfo ${CMAKE_CURRENT_SOURCE_DIR}/../gallerydata --appstream-metainfo-output ${APPDATAFILE}")
execute_process(
COMMAND ${kpackagetool_cmd} --appstream-metainfo ${CMAKE_CURRENT_SOURCE_DIR}/../gallerydata --appstream-metainfo-output ${APPDATAFILE}
ERROR_VARIABLE appstreamerror
RESULT_VARIABLE result)
if (NOT result EQUAL 0)
message(WARNING "couldn't generate metainfo for ${component}: ${appstreamerror}")
else()
if(appstreamerror)
message(WARNING "warnings during generation of metainfo for ${component}: ${appstreamerror}")
endif()

# OPTIONAL because desktop files can be NoDisplay so they render no XML.
install(FILES ${APPDATAFILE} DESTINATION ${KDE_INSTALL_METAINFODIR} OPTIONAL)
endif()
else()
message(WARNING "KPackage components should be specified in reverse domain notation. Appstream information won't be generated for ${component}.")
endif()

find_program(kpackagetool_cmd kpackagetool5)
Expand Down Expand Up @@ -39,4 +67,4 @@ target_link_libraries(kirigami2gallery Qt5::Core Qt5::Qml Qt5::Quick Qt5::Svg $
install(TARGETS kirigami2gallery ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})

include(${CMAKE_SOURCE_DIR}/KF5Kirigami2Macros.cmake)
kirigami_package_breeze_icons(ICONS applications-graphics view-list-icons folder-sync view-list-details configure document-edit dialog-cancel document-decrypt mail-reply-sender bookmarks folder)
kirigami_package_breeze_icons(ICONS applications-graphics view-list-icons folder-sync view-list-details configure document-edit dialog-cancel document-decrypt mail-reply-sender bookmarks folder media-record-symbolic)
1 change: 1 addition & 0 deletions examples/galleryapp/resources.qrc
Expand Up @@ -19,6 +19,7 @@
<file alias="contents/ui/gallery/MetricsGallery.qml">../gallerydata/contents/ui/gallery/MetricsGallery.qml</file>
<file alias="contents/ui/gallery/LayersGallery.qml">../gallerydata/contents/ui/gallery/LayersGallery.qml</file>
<file alias="contents/ui/ExampleApp.qml">../gallerydata/contents/ui/ExampleApp.qml</file>
<file alias="contents/ui/gallery/ColorSetGallery.qml">../gallerydata/contents/ui/gallery/ColorSetGallery.qml</file>
<file alias="contents/ui/DesktopExampleApp.qml">../gallerydata/contents/ui/DesktopExampleApp.qml</file>
<file alias="metadata.desktop">../gallerydata/metadata.desktop</file>
<file alias="qtquickcontrols2.conf">qtquickcontrols2.conf</file>
Expand Down
2 changes: 1 addition & 1 deletion examples/gallerydata/contents/ui/DesktopExampleApp.qml
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.1
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.0 as Kirigami
import org.kde.kirigami 2.2 as Kirigami
import "gallery"

Kirigami.ApplicationWindow {
Expand Down
2 changes: 1 addition & 1 deletion examples/gallerydata/contents/ui/ExampleApp.qml
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.1
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.1 as Kirigami
import org.kde.kirigami 2.2 as Kirigami
import "gallery"

Kirigami.ApplicationWindow {
Expand Down
8 changes: 6 additions & 2 deletions examples/gallerydata/contents/ui/MainPage.qml
Expand Up @@ -20,14 +20,14 @@
import QtQuick 2.1
import QtQuick.Controls 2.0 as QQC2
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.0 as Kirigami
import org.kde.kirigami 2.2 as Kirigami

Kirigami.ScrollablePage {
id: pageRoot

implicitWidth: Kirigami.Units.gridUnit * 20
background: Rectangle {
color: Kirigami.Theme.viewBackgroundColor
color: Kirigami.Theme.backgroundColor
}

title: "Gallery"
Expand Down Expand Up @@ -122,6 +122,10 @@ Kirigami.ScrollablePage {
text: "Colors"
component: "Colors"
}
ListElement {
text: "Color Sets"
component: "ColorSet"
}
ListElement {
text: "Metrics"
component: "Metrics"
Expand Down
2 changes: 1 addition & 1 deletion examples/gallerydata/contents/ui/gallery/ButtonGallery.qml
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.0
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.0
import org.kde.kirigami 2.2

ScrollablePage {
id: page
Expand Down
Expand Up @@ -20,7 +20,7 @@
import QtQuick 2.0
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.0
import org.kde.kirigami 2.2

ScrollablePage {
id: page
Expand Down

0 comments on commit 5b08a7b

Please sign in to comment.