initial commit with iot dashboard working

This commit is contained in:
Rick Vogel 2022-09-28 23:49:30 +02:00
parent 0b38a95677
commit a4e2f9f1da
37 changed files with 1379 additions and 0 deletions

55
CMakeLists.txt Normal file
View File

@ -0,0 +1,55 @@
cmake_minimum_required(VERSION 3.20)
project(qskinny)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(Qt5Core_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5Gui_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5OpenGL_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5Quick_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5QuickWidgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5Svg_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5WebEngine_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5WebEngineCore_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5Widgets_FIND_COMPONENTS Private CACHE STRING "force include private headers" FORCE)
set(Qt5_DIR "C:/.conan/ea20b9/1/lib/cmake/Qt5") # TODO
find_package(Qt5 REQUIRED COMPONENTS Core Gui Opengl Quick Quickwidgets Svg Webengine WebengineCore Widgets)
message(STATUS "Qt5_VERSION : ${Qt5_VERSION}")
message(STATUS "Qt5_VERSION_MAJOR: ${Qt5_VERSION_MAJOR}")
message(STATUS "Qt5_VERSION_MINOR: ${Qt5_VERSION_MINOR}")
message(STATUS "Qt5_VERSION_PATCH: ${Qt5_VERSION_PATCH}")
add_subdirectory(src)
add_subdirectory(skins)
#TODO
#add_subdirectory(inputcontext)
add_subdirectory(qmlexport)
add_subdirectory(tools)
add_subdirectory(support)
add_subdirectory(examples)
#add_subdirectory(playground)
#TODO
#OTHER_FILES =
#doc / Doxyfile
#doc/*.dox
# doc/*.metadox
# doc/classes/*.dox
# doc/classes/*.metadox
# TODO
# TODO
# qmlexport.depends = src
# inputcontext.depends = src
# skins.depends = src
# tools.depends = src
# support.depends = src skins
# examples.depends = tools support skins qmlexport
# playground.depends = tools support skins qmlexport

20
examples/CMakeLists.txt Normal file
View File

@ -0,0 +1,20 @@
#c++
#add_subdirectory(desktop)
#add_subdirectory(gallery)
#add_subdirectory(layouts)
#add_subdirectory(listbox)
#add_subdirectory(messagebox)
#add_subdirectory(mycontrols)
#add_subdirectory(qvgviewer)
#add_subdirectory(thumbnails)
#add_subdirectory(tabview)
add_subdirectory(iotdashboard)
#qml
#add_subdirectory(boxes)
#add_subdirectory(buttons)
#add_subdirectory(frames)
#add_subdirectory(glabels)
#add_subdirectory(messageboxQml)
# TODO

View File

@ -0,0 +1,8 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
Box.h
list(APPEND TARGET_SOURCES
Box.cpp
main.cpp

View File

@ -0,0 +1,5 @@
CONFIG += qskexample qskqmlexport
list(APPEND TARGET_RESSOURCES buttons.qrc)
list(APPEND TARGET_SOURCES main.cpp)

View File

@ -0,0 +1,4 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
main.cpp

View File

@ -0,0 +1,7 @@
CONFIG += qskexample qskqmlexport
list(APPEND TARGET_RESSOURCES frames.qrc)
list(APPEND TARGET_HEADERS Frame.h)
list(APPEND TARGET_SOURCES Frame.cpp main.cpp)

View File

@ -0,0 +1,50 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
label/LabelPage.h
list(APPEND TARGET_SOURCES
label/LabelPage.cpp
list(APPEND TARGET_HEADERS
slider/SliderPage.h
list(APPEND TARGET_SOURCES
slider/SliderPage.cpp
list(APPEND TARGET_HEADERS
progressbar/ProgressBarPage.h
list(APPEND TARGET_SOURCES
progressbar/ProgressBarPage.cpp
list(APPEND TARGET_HEADERS
button/ButtonPage.h
list(APPEND TARGET_SOURCES
button/ButtonPage.cpp
list(APPEND TARGET_HEADERS
textinput/TextInputPage.h
list(APPEND TARGET_SOURCES
textinput/TextInputPage.cpp
list(APPEND TARGET_HEADERS
selector/SelectorPage.h
list(APPEND TARGET_SOURCES
selector/SelectorPage.cpp
list(APPEND TARGET_HEADERS
dialog/DialogPage.h
list(APPEND TARGET_SOURCES
dialog/DialogPage.cpp
list(APPEND TARGET_HEADERS
Page.h
list(APPEND TARGET_SOURCES
Page.cpp
main.cpp

View File

@ -0,0 +1,5 @@
CONFIG += qskexample qskqmlexport
list(APPEND TARGET_RESSOURCES glabels.qrc)
list(APPEND TARGET_SOURCES main.cpp)

View File

@ -0,0 +1,87 @@
list(APPEND TARGET_SOURCES
Box.cpp
BoxWithButtons.cpp
CircularProgressBar.cpp
CircularProgressBarSkinlet.cpp
DashboardPage.cpp
Diagram.cpp
DiagramSkinlet.cpp
GraphicProvider.cpp
GridBox.cpp
LightDisplaySkinlet.cpp
LightDisplay.cpp
MainItem.cpp
MenuBar.cpp
MyDevices.cpp
PieChart.cpp
PieChartPainted.cpp
PieChartSkinlet.cpp
RoomsPage.cpp
RoundedIcon.cpp
Skin.cpp
TopBar.cpp
RoundButton.cpp
UsageBox.cpp
UsageDiagram.cpp
MainWindow.cpp
main.cpp)
list(APPEND TARGET_SOURCES
nodes/DiagramDataNode.cpp
nodes/DiagramSegmentsNode.cpp
nodes/RadialTickmarksNode.cpp)
list(APPEND TARGET_HEADERS
Box.h
BoxWithButtons.h
CircularProgressBar.h
CircularProgressBarSkinlet.h
Diagram.h
DiagramSkinlet.h
GraphicProvider.h
GridBox.h
LightDisplaySkinlet.h
LightDisplay.h
DashboardPage.h
MainItem.h
MainWindow.h
MenuBar.h
MyDevices.h
PieChart.h
PieChartPainted.h
PieChartSkinlet.h
RoomsPage.h
RoundedIcon.h
Skin.h
TopBar.h
RoundButton.h
UsageBox.h
UsageDiagram.h)
list(APPEND TARGET_HEADERS
nodes/DiagramDataNode.h
nodes/DiagramSegmentsNode.h
nodes/RadialTickmarksNode.h)
list(APPEND TARGET_RESSOURCES
images.qrc
fonts.qrc)
set(TARGET_NAME iotdashboard)
add_executable(${TARGET_NAME} ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
set_target_properties(${TARGET_NAME} PROPERTIES
AUTOMOC ON
AUTORCC ON)
target_link_libraries(${TARGET_NAME}
PRIVATE
qskinny
qsktestsupport
Qt5::Svg)
# TODO: examples should not use private headers
target_link_libraries(${TARGET_NAME}
PRIVATE
Qt5::QuickPrivate) # TODO why not transive by qskinny target

View File

@ -0,0 +1,23 @@
CONFIG += qskexample qskqmlexport
list(APPEND TARGET_RESSOURCES
layouts.qrc
list(APPEND TARGET_HEADERS
TestRectangle.h
ButtonBox.h
FlowLayoutPage.h
GridLayoutPage.h
LinearLayoutPage.h
DynamicConstraintsPage.h
StackLayoutPage.h
list(APPEND TARGET_SOURCES
TestRectangle.cpp
ButtonBox.cpp
FlowLayoutPage.cpp
GridLayoutPage.cpp
LinearLayoutPage.cpp
DynamicConstraintsPage.cpp
StackLayoutPage.cpp
main.cpp

View File

@ -0,0 +1,4 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
main.cpp

View File

@ -0,0 +1,4 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
main.cpp

View File

@ -0,0 +1,8 @@
CONFIG += qskexample
CONFIG += qskqmlexport
list(APPEND TARGET_RESSOURCES
messagebox.qrc
list(APPEND TARGET_SOURCES
main.cpp

View File

@ -0,0 +1,12 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
MySkin.cpp
MyToggleButton.cpp
MyToggleButtonSkinlet.cpp
main.cpp
list(APPEND TARGET_HEADERS
MyToggleButton.h
MyToggleButtonSkinlet.h
MySkin.h

View File

@ -0,0 +1,32 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
MainWindow.h
list(APPEND TARGET_SOURCES
MainWindow.cpp
main.cpp
#CONFIG += autoqvg
autoqvg {
CONFIG += qskqvg
QVGlist(APPEND TARGET_RESSOURCES
qvgviewer.qrc
SVGSOURCES =
svg/01.01.10.svg
svg/01.03.04q.svg
svg/01.08.05q.svg
svg/01.25.18.svg
} else {
#When cross compiling we need to have the svg2qvg tool being
#compiled for the build environment - not for the one of the target.
#So we better have precompiled qvg files in the repository to
#make the build process much easier
list(APPEND TARGET_RESSOURCES
qvgviewer.qrc
}

View File

@ -0,0 +1,12 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
CustomSlider.h
CustomSliderSkinlet.h
OtherSlider.h
list(APPEND TARGET_SOURCES
CustomSlider.cpp
CustomSliderSkinlet.cpp
OtherSlider.cpp
main.cpp

View File

@ -0,0 +1,4 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
main.cpp

185
features/qskconfig.cmake Normal file
View File

@ -0,0 +1,185 @@
############################################################################
# QSkinny - Copyright (C) 2016 Uwe Rathmann
# This file may be used under the terms of the QSkinny License, Version 1.0
############################################################################
set(QSK_VER_MAJ 0)
set(QSK_VER_MIN 0)
set(QSK_VER_PAT 0)
set(QSK_VERSION ${QSK_VER_MAJ}.${QSK_VER_MIN}.${QSK_VER_PAT})
# trying the PREFIX environment variable first
set(QSK_INSTALL_PREFIX = $ENV{PREFIX}) # TODO still required?
if("${QSK_INSTALL_PREFIX}" STREQUAL "")
set(QSK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") # TODO where does QT_INSTALL_PREFIX come from?
if (UNIX)
set(QSK_INSTALL_PREFIX /usr/local/qskinny-${QSK_VERSION})
endif()
if (MSVC)
set(QSK_INSTALL_PREFIX C:/Qskinny-${QSK_VERSION})
endif()
endif()
set(QSK_INSTALL_DOCS doc)
set(QSK_INSTALL_HEADERS include)
set(QSK_INSTALL_LIBS lib)
set(QSK_INSTALL_BINS bin)
set(QSK_INSTALL_PLUGINS plugins)
set(QSK_INSTALL_EXAMPLES examples)
# TODO find compiler flag equivalent
list(APPEND CONFIG no_private_qt_headers_warning)
list(APPEND CONFIG warn_on)
list(APPEND CONFIG no_keywords)
list(APPEND CONFIG silent)
#list(APPEND CONFIG -= depend_includepath) # TODO was -=
list(APPEND CONFIG strict_c++)
list(APPEND CONFIG c++11)
list(APPEND CONFIG pedantic)
list(APPEND CONFIG hide_symbols)
#list(APPEND CONFIG += debug)
#list(APPEND CONFIG += sanitize)
# TODO
# use_no_rpath {
# CONFIG -= use_local_rpath use_install_rpath
# } else {
# cross_compile {
# CONFIG *= use_install_rpath
# QMAKE_RPATHLINKDIR *= $${QSK_PLUGIN_DIR}/skins
# } else {
# !use_install_rpath: CONFIG *= use_local_rpath
# }
# }
set(MOC_DIR moc)
set(OBJECTS_DIR obj)
set(RCC_DIR rcc)
list(APPEND QSK_CONFIG QskDll)
option(QskDll "build qskinny as shared library" ON)
if(UNIX AND NOT APPLE)
set(LINUX TRUE)
endif()
if(LINUX)
if ("pedantic" IN_LIST CONFIG)
add_compile_definitions(QT_STRICT_ITERATORS)
# Qt headers do not stand pedantic checks, so it's better
# to exclude them by declaring them as system includes
list(APPEND CONFIG qtassysteminclude)
endif()
if ("qtassysteminclude" IN_LIST CONFIG)
# As most distros set QT_INSTALL_HEADERS to /usr/include we
# would run into gcc compiler errors and better drop it
# from the list below. Should be no problem as we don't
# add the Qt module to our includes and therefore don't
# need this path.
# TODO
# QMAKE_CXXFLAGS += \
# -isystem $$[QT_INSTALL_HEADERS]/QtCore \
# -isystem $$[QT_INSTALL_HEADERS]/QtCore/$$[QT_VERSION]/QtCore \
# -isystem $$[QT_INSTALL_HEADERS]/QtGui \
# -isystem $$[QT_INSTALL_HEADERS]/QtGui/$$[QT_VERSION]/QtGui \
# -isystem $$[QT_INSTALL_HEADERS]/QtQuick \
# -isystem $$[QT_INSTALL_HEADERS]/QtQuick/$$[QT_VERSION]/QtQuick \
# -isystem $$[QT_INSTALL_HEADERS]/QtQml \
# -isystem $$[QT_INSTALL_HEADERS]/QtQml/$$[QT_VERSION]/QtQml \
endif()
endif()
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
# --- optional optimzations
if (CMAKE_BUILD_TYPE EQUAL "Debug")
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O0) # TODO check if still required
else()
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -O3 -ffast-math) # TODO check if still required
endif()
endif()
if ("pedantic" IN_LIST CONFIG)
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -pedantic-errors)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wextra)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Werror=format-security)
#QMAKE_CXXFLAGS *= -Wlogical-op
# QMAKE_CXXFLAGS *= -Wconversion
# QMAKE_CXXFLAGS *= -Wfloat-equal
# QMAKE_CXXFLAGS *= -Wshadow
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wsuggest-override)
# QMAKE_CXXFLAGS *= -Wsuggest-final-types
# QMAKE_CXXFLAGS *= -Wsuggest-final-methods
# QMAKE_CXXFLAGS *= -fanalyzer
endif()
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-clang")
#QMAKE_CXXFLAGS *= -pedantic-errors
#QMAKE_CXXFLAGS *= -Weverything
#QMAKE_CXXFLAGS *= -Wno-c++98-compat-pedantic
#QMAKE_CXXFLAGS *= -Wno-global-constructors
#QMAKE_CXXFLAGS *= -Wno-exit-time-destructors
#QMAKE_CXXFLAGS *= -Wno-padded
#QMAKE_CXXFLAGS *= -Wno-float-equal
#QMAKE_CXXFLAGS *= -Wno-undefined-reinterpret-cast
#QMAKE_CXXFLAGS *= -Wno-deprecated
#QMAKE_CXXFLAGS *= -Wno-switch-enum
#QMAKE_CXXFLAGS *= -Wno-keyword-macro
#QMAKE_CXXFLAGS *= -Wno-old-style-cast
#QMAKE_CXXFLAGS *= -Wno-used-but-marked-unused
#QMAKE_CXXFLAGS *= -Wno-weak-vtables
#QMAKE_CXXFLAGS *= -Wno-shadow
#QMAKE_CXXFLAGS *= -Wno-double-promotion
#QMAKE_CXXFLAGS *= -Wno-conversion
#QMAKE_CXXFLAGS *= -Wno-documentation-unknown-command
#QMAKE_CXXFLAGS *= -Wno-unused-macros
endif()
endif()
if ("sanitize" IN_LIST CONFIG)
list(APPEND CONFIG sanitizer)
list(APPEND CONFIG sanitize_address)
# CONFIG *= sanitize_undefined
if ("${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+" OR "${CMAKE_CXX_COMPILER}" MATCHES ".*linux-g\\+\\+-64")
#QMAKE_CXXFLAGS *= -fsanitize-address-use-after-scope
#QMAKE_LFLAGS *= -fsanitize-address-use-after-scope
endif()
endif()
if (CMAKE_BUILD_TYPE EQUAL "Debug")
add_compile_definitions(ITEM_STATISTICS=1)
endif()
# DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000
set(LOCAL_PRI $ENV{QSK_LOCAL_PRI})
if (${LOCAL_PRI}) # TODO not empty check
if(EXISTS ${LOCAL_PRI})
# When not working with the Qt/Creator it is often more convenient
# to include the specific options of your local build, than passing
# them all on the command line
include(${LOCAL_PRI})
endif()
endif()

View File

@ -0,0 +1,48 @@
set(TARGET_NAME qskinputcontext)
target_link_libraries(${TARGET_NAME} PRIVATE gui-private)
# TODO
# CONFIG += plugin
# CONFIG += qskinny
if(QskDll)
target_compile_definitions(${TARGET_NAME} PRIVATE QSK_INPUTCONTEXT_MAKEDLL)
endif()
list(APPEND TARGET_HEADERS
QskInputContextGlobal.h)
list(APPEND TARGET_SOURCES
QskInputContextPlugin.cpp)
list(APPEND TARGET_OTHER_FILES
metadata.json)
# TODO
# pinyin {
# unix
# {
# CONFIG += link_pkgconfig PKGCONFIG += pinyin
#
# HEADERS += QskPinyinTextPredictor.h
#
# SOURCES += QskPinyinTextPredictor.cpp
# }
# }
#
# hunspell {
# unix
# {
# CONFIG += link_pkgconfig PKGCONFIG += hunspell
#
# HEADERS += QskHunspellTextPredictor.h
#
# SOURCES += QskHunspellTextPredictor.cpp
# }
#
# }
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_OTHER_FILES})
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/platforminputcontexts)

16
playground/CMakeLists.txt Normal file
View File

@ -0,0 +1,16 @@
TEMPLATE = subdirs
SUBDIRS += anchors dials dialogbuttons invoker inputpanel images
SUBDIRS +=
shadows
qtHaveModule(webengine){
SUBDIRS += webview
}
qtHaveModule(quickwidgets)
{
SUBDIRS += grids
}

View File

@ -0,0 +1,21 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
kiwi/Constraint.h
kiwi/Expression.h
kiwi/Solver.h
kiwi/Strength.h
kiwi/Term.h
kiwi/Variable.h
list(APPEND TARGET_SOURCES
kiwi/Expression.cpp
kiwi/Constraint.cpp
kiwi/Solver.cpp
list(APPEND TARGET_HEADERS
AnchorBox.h
list(APPEND TARGET_SOURCES
AnchorBox.cpp
main.cpp

View File

@ -0,0 +1,8 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
Window.h
list(APPEND TARGET_SOURCES
Window.cpp
main.cpp

View File

@ -0,0 +1,17 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
SkinFactory.h
Dial.h
DialSkinlet.h
Dashboard.h
list(APPEND TARGET_SOURCES
SkinFactory.cpp
Dial.cpp
DialSkinlet.cpp
Dashboard.cpp
main.cpp
list(APPEND TARGET_RESSOURCES
images.qrc

View File

@ -0,0 +1,27 @@
CONFIG += qskexample
target_link_libraries(${TARGET_NAME} PRIVATE widgets quickwidgets)
list(APPEND TARGET_HEADERS
GridAccessor.h
GridSkinny.h
GridWidgets.h
GridGraphics.h
GridQuick.h
TestBox.h
list(APPEND TARGET_SOURCES
GridAccessor.cpp
GridSkinny.cpp
GridWidgets.cpp
GridGraphics.cpp
GridQuick.cpp
TestBox.cpp
main.cpp
linux {
pedantic
{
QMAKE_CXXFLAGS += -isystem $$[ QT_INSTALL_HEADERS ] / QtQuickWidgets QMAKE_CXXFLAGS +=
-isystem $$[ QT_INSTALL_HEADERS ] / QtWidgets
}
}

View File

@ -0,0 +1,15 @@
CONFIG += qskexample qskqmlexport
target_link_libraries(${TARGET_NAME}
PRIVATE
Qt5::QuickPrivate)
list(APPEND TARGET_RESSOURCES
images.qrc
list(APPEND TARGET_HEADERS
Image.h
list(APPEND TARGET_SOURCES
Image.cpp
main.cpp

View File

@ -0,0 +1,4 @@
CONFIG += qskexample
list(APPEND TARGET_SOURCES
main.cpp

View File

@ -0,0 +1,12 @@
CONFIG += qskexample
QMAKE_MOC_OPTIONS += -nw # disable warning about missing READ
list(APPEND TARGET_HEADERS
Callback.h
Invoker.h
list(APPEND TARGET_SOURCES
Callback.cpp
Invoker.cpp
main.cpp

View File

@ -0,0 +1,8 @@
CONFIG += qskexample
list(APPEND TARGET_HEADERS
ShadowedBox.h
list(APPEND TARGET_SOURCES
ShadowedBox.cpp
main.cpp

View File

@ -0,0 +1,5 @@
CONFIG += qskexample
target_link_libraries(${TARGET_NAME} PRIVATE webengine webengine-private webenginecore-private core-private)
list(APPEND TARGET_SOURCES
main.cpp

31
qmlexport/CMakeLists.txt Normal file
View File

@ -0,0 +1,31 @@
set(TARGET_NAME qskqmlexport)
list(APPEND TARGET_HEADERS
QskQmlGlobal.h
QskShortcutQml.h
QskLayoutQml.h
QskMainQml.h
QskQml.h)
list(APPEND TARGET_SOURCES
QskShortcutQml.cpp
QskLayoutQml.cpp
QskMainQml.cpp
QskQml.cpp)
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS})
set_target_properties(${TARGET_NAME} PROPERTIES
AUTOMOC ON)
target_link_libraries(${TARGET_NAME}
PRIVATE
qskinny)
if(QskDll)
target_compile_definitions(${TARGET_NAME}
PRIVATE
QSK_QML_MAKEDLL)
endif()
install(TARGETS ${TARGET_NAME} DESTINATION qmlexport)

2
skins/CMakeLists.txt Normal file
View File

@ -0,0 +1,2 @@
add_subdirectory(squiek)
add_subdirectory(material3)

View File

@ -0,0 +1,30 @@
set(QSK_PLUGIN_SUBDIR skins)
set(TARGET_NAME material3skin)
list(APPEND TARGET_HEADERS
QskMaterial3Global.h
QskMaterial3Skin.h
QskMaterial3SkinFactory.h)
list(APPEND TARGET_SOURCES
QskMaterial3Skin.cpp
QskMaterial3SkinFactory.cpp)
list(APPEND TARGET_OTHER_FILES
metadata.json)
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
target_link_libraries(${TARGET_NAME} PRIVATE qskinny)
if(QskDll)
target_compile_definitions(${TARGET_NAME}
PRIVATE
QSK_MATERIAL3_MAKEDLL)
endif()
set_target_properties(${TARGET_NAME} PROPERTIES
AUTOMOC ON)
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/${QSK_PLUGIN_SUBDIR})

View File

@ -0,0 +1,32 @@
set(QSK_PLUGIN_SUBDIR skins)
set(TARGET_NAME squiekskin)
list(APPEND TARGET_HEADERS
QskSquiekGlobal.h
QskSquiekSkin.h
QskSquiekSkinFactory.h)
list(APPEND TARGET_SOURCES
QskSquiekSkin.cpp
QskSquiekSkinFactory.cpp)
list(APPEND TARGET_OTHER_FILES
metadata.json)
add_library(${TARGET_NAME} SHARED ${TARGET_HEADERS} ${TARGET_SOURCES} ${TARGET_OTHER_FILES})
target_link_libraries(${TARGET_NAME}
PRIVATE
qskinny)
if(QskDll)
target_compile_definitions(${TARGET_NAME}
PRIVATE
QSK_SQUIEK_MAKEDLL)
endif()
set_target_properties(${TARGET_NAME} PROPERTIES
AUTOMOC ON)
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_PLUGINS}/${QSK_PLUGIN_SUBDIR})

447
src/CMakeLists.txt Normal file
View File

@ -0,0 +1,447 @@
include(${CMAKE_SOURCE_DIR}/features/qskconfig.cmake)
#TODO
#QSK_SUBDIRS = common graphic nodes controls layouts dialogs inputpanel
#INCLUDEPATH *= $${QSK_SUBDIRS}
#DEPENDPATH *= $${QSK_SUBDIRS}
#CONFIG += pinyin
#CONFIG += hunspell
list(APPEND TARGET_HEADERS
common/QskArcMetrics.h
common/QskAspect.h
common/QskBoxBorderColors.h
common/QskBoxBorderMetrics.h
common/QskBoxShapeMetrics.h
common/QskBoxHints.h
common/QskFunctions.h
common/QskGlobal.h
common/QskGradient.h
common/QskGradientStop.h
common/QskHctColor.h
common/QskIntervalF.h
common/QskMargins.h
common/QskMetaFunction.h
common/QskMetaFunction.hpp
common/QskMetaInvokable.h
common/QskNamespace.h
common/QskObjectCounter.h
common/QskPlacementPolicy.h
common/QskPlatform.h
common/QskRgbValue.h
common/QskScaleEngine.h
common/QskScaleTickmarks.h
common/QskShadowMetrics.h
common/QskSizePolicy.h
common/QskStateCombination.h
common/QskTextColors.h
common/QskTextOptions.h)
list(APPEND TARGET_SOURCES
common/QskArcMetrics.cpp
common/QskAspect.cpp
common/QskBoxBorderColors.cpp
common/QskBoxBorderMetrics.cpp
common/QskBoxShapeMetrics.cpp
common/QskBoxHints.cpp
common/QskFunctions.cpp
common/QskGradient.cpp
common/QskGradientStop.cpp
common/QskHctColor.cpp
common/QskIntervalF.cpp
common/QskMargins.cpp
common/QskMetaFunction.cpp
common/QskMetaInvokable.cpp
common/QskObjectCounter.cpp
common/QskPlatform.cpp
common/QskPlacementPolicy.cpp
common/QskRgbValue.cpp
common/QskScaleEngine.cpp
common/QskScaleTickmarks.cpp
common/QskShadowMetrics.cpp
common/QskSizePolicy.cpp
common/QskTextColors.cpp
common/QskTextOptions.cpp)
list(APPEND TARGET_HEADERS #TODO why separate
graphic/QskColorFilter.h
graphic/QskGraphic.h
graphic/QskGraphicImageProvider.h
graphic/QskGraphicIO.h
graphic/QskGraphicPaintEngine.h
graphic/QskGraphicProvider.h
graphic/QskGraphicProviderMap.h
graphic/QskGraphicTextureFactory.h
graphic/QskPainterCommand.h
graphic/QskStandardSymbol.h)
list(APPEND TARGET_SOURCES
graphic/QskColorFilter.cpp
graphic/QskGraphic.cpp
graphic/QskGraphicImageProvider.cpp
graphic/QskGraphicIO.cpp
graphic/QskGraphicPaintEngine.cpp
graphic/QskGraphicProvider.cpp
graphic/QskGraphicProviderMap.cpp
graphic/QskGraphicTextureFactory.cpp
graphic/QskPainterCommand.cpp
graphic/QskStandardSymbol.cpp)
list(APPEND TARGET_HEADERS
nodes/QskArcNode.h
nodes/QskArcRenderer.h
nodes/QskBoxNode.h
nodes/QskBoxClipNode.h
nodes/QskBoxRenderer.h
nodes/QskBoxRendererColorMap.h
nodes/QskBoxShadowNode.h
nodes/QskGraphicNode.h
nodes/QskPaintedNode.h
nodes/QskPlainTextRenderer.h
nodes/QskRichTextRenderer.h
nodes/QskScaleRenderer.h
nodes/QskSGNode.h
nodes/QskShadedBoxNode.h
nodes/QskTextNode.h
nodes/QskTextRenderer.h
nodes/QskTextureRenderer.h
nodes/QskTickmarksNode.h
nodes/QskVertex.h)
list(APPEND TARGET_SOURCES
nodes/QskArcNode.cpp
nodes/QskArcRenderer.cpp
nodes/QskBoxNode.cpp
nodes/QskBoxClipNode.cpp
nodes/QskBoxRendererRect.cpp
nodes/QskBoxRendererEllipse.cpp
nodes/QskBoxRendererDEllipse.cpp
nodes/QskBoxShadowNode.cpp
nodes/QskGraphicNode.cpp
nodes/QskPaintedNode.cpp
nodes/QskPlainTextRenderer.cpp
nodes/QskRichTextRenderer.cpp
nodes/QskScaleRenderer.cpp
nodes/QskSGNode.cpp
nodes/QskShadedBoxNode.cpp
nodes/QskTextNode.cpp
nodes/QskTextRenderer.cpp
nodes/QskTextureRenderer.cpp
nodes/QskTickmarksNode.cpp
nodes/QskVertex.cpp)
list(APPEND TARGET_RESSOURCES
nodes/shaders.qrc)
list(APPEND TARGET_HEADERS
controls/QskAbstractButton.h
controls/QskAnimationHint.h
controls/QskAnimator.h
controls/QskApplicationView.h
controls/QskBoundedControl.h
controls/QskBoundedInput.h
controls/QskBoundedRangeInput.h
controls/QskBoundedValueInput.h
controls/QskBox.h
controls/QskBoxSkinlet.h
controls/QskCheckBox.h
controls/QskCheckBoxSkinlet.h
controls/QskControl.h
controls/QskControlPrivate.h
controls/QskDirtyItemFilter.h
controls/QskEvent.h
controls/QskFlickAnimator.h
controls/QskFocusIndicator.h
controls/QskFocusIndicatorSkinlet.h
controls/QskGesture.h
controls/QskGestureRecognizer.h
controls/QskGraphicLabel.h
controls/QskGraphicLabelSkinlet.h
controls/QskHintAnimator.h
controls/QskInputGrabber.h
controls/QskListView.h
controls/QskListViewSkinlet.h
controls/QskMenu.h
controls/QskMenuSkinlet.h
controls/QskObjectTree.h
controls/QskPageIndicator.h
controls/QskPageIndicatorSkinlet.h
controls/QskPanGestureRecognizer.h
controls/QskPopup.h
controls/QskPopupSkinlet.h
controls/QskPushButton.h
controls/QskPushButtonSkinlet.h
controls/QskProgressBar.h
controls/QskProgressBarSkinlet.h
controls/QskQuick.h
controls/QskQuickItem.h
controls/QskQuickItemPrivate.h
controls/QskScrollArea.h
controls/QskScrollBox.h
controls/QskScrollView.h
controls/QskScrollViewSkinlet.h
controls/QskSegmentedBar.h
controls/QskSegmentedBarSkinlet.h
controls/QskSeparator.h
controls/QskSeparatorSkinlet.h
controls/QskSetup.h
controls/QskShortcutMap.h
controls/QskSimpleListBox.h
controls/QskSkin.h
controls/QskSkinFactory.h
controls/QskSkinHintTable.h
controls/QskSkinHintTableEditor.h
controls/QskSkinManager.h
controls/QskSkinStateChanger.h
controls/QskSkinTransition.h
controls/QskSkinlet.h
controls/QskSkinnable.h
controls/QskSlider.h
controls/QskSliderSkinlet.h
controls/QskStatusIndicator.h
controls/QskStatusIndicatorSkinlet.h
controls/QskSubWindowArea.h
controls/QskSubWindowAreaSkinlet.h
controls/QskSubWindow.h
controls/QskSubWindowSkinlet.h
controls/QskSwitchButton.h
controls/QskSwitchButtonSkinlet.h
controls/QskTabBar.h
controls/QskTabButton.h
controls/QskTabButtonSkinlet.h
controls/QskTabView.h
controls/QskTabViewSkinlet.h
controls/QskTextInput.h
controls/QskTextInputSkinlet.h
controls/QskTextLabel.h
controls/QskTextLabelSkinlet.h
controls/QskVariantAnimator.h
controls/QskWindow.h)
list(APPEND TARGET_SOURCES
controls/QskAbstractButton.cpp
controls/QskAnimator.cpp
controls/QskAnimationHint.cpp
controls/QskApplicationView.cpp
controls/QskBoundedControl.cpp
controls/QskBoundedInput.cpp
controls/QskBoundedRangeInput.cpp
controls/QskBoundedValueInput.cpp
controls/QskBox.cpp
controls/QskBoxSkinlet.cpp
controls/QskCheckBox.cpp
controls/QskCheckBoxSkinlet.cpp
controls/QskControl.cpp
controls/QskControlPrivate.cpp
controls/QskDirtyItemFilter.cpp
controls/QskEvent.cpp
controls/QskFlickAnimator.cpp
controls/QskFocusIndicator.cpp
controls/QskFocusIndicatorSkinlet.cpp
controls/QskGesture.cpp
controls/QskGestureRecognizer.cpp
controls/QskGraphicLabel.cpp
controls/QskGraphicLabelSkinlet.cpp
controls/QskHintAnimator.cpp
controls/QskInputGrabber.cpp
controls/QskListView.cpp
controls/QskListViewSkinlet.cpp
controls/QskMenuSkinlet.cpp
controls/QskMenu.cpp
controls/QskObjectTree.cpp
controls/QskPageIndicator.cpp
controls/QskPageIndicatorSkinlet.cpp
controls/QskPanGestureRecognizer.cpp
controls/QskPopup.cpp
controls/QskPopupSkinlet.cpp
controls/QskPushButton.cpp
controls/QskPushButtonSkinlet.cpp
controls/QskProgressBar.cpp
controls/QskProgressBarSkinlet.cpp
controls/QskQuick.cpp
controls/QskQuickItem.cpp
controls/QskQuickItemPrivate.cpp
controls/QskScrollArea.cpp
controls/QskScrollBox.cpp
controls/QskScrollView.cpp
controls/QskScrollViewSkinlet.cpp
controls/QskSegmentedBar.cpp
controls/QskSegmentedBarSkinlet.cpp
controls/QskSeparator.cpp
controls/QskSeparatorSkinlet.cpp
controls/QskSetup.cpp
controls/QskShortcutMap.cpp
controls/QskSimpleListBox.cpp
controls/QskSkin.cpp
controls/QskSkinHintTable.cpp
controls/QskSkinHintTableEditor.cpp
controls/QskSkinFactory.cpp
controls/QskSkinManager.cpp
controls/QskSkinTransition.cpp
controls/QskSkinlet.cpp
controls/QskSkinnable.cpp
controls/QskSlider.cpp
controls/QskSliderSkinlet.cpp
controls/QskStatusIndicator.cpp
controls/QskStatusIndicatorSkinlet.cpp
controls/QskSubWindowArea.cpp
controls/QskSubWindowAreaSkinlet.cpp
controls/QskSubWindow.cpp
controls/QskSubWindowSkinlet.cpp
controls/QskSwitchButton.cpp
controls/QskSwitchButtonSkinlet.cpp
controls/QskTabBar.cpp
controls/QskTabButton.cpp
controls/QskTabButtonSkinlet.cpp
controls/QskTabView.cpp
controls/QskTabViewSkinlet.cpp
controls/QskTextInput.cpp
controls/QskTextInputSkinlet.cpp
controls/QskTextLabel.cpp
controls/QskTextLabelSkinlet.cpp
controls/QskVariantAnimator.cpp
controls/QskWindow.cpp)
list(APPEND TARGET_HEADERS
layouts/QskGridBox.h
layouts/QskGridLayoutEngine.h
layouts/QskIndexedLayoutBox.h
layouts/QskLayoutChain.h
layouts/QskLayoutEngine2D.h
layouts/QskLayoutElement.h
layouts/QskLayoutMetrics.h
layouts/QskLinearBox.h
layouts/QskLinearLayoutEngine.h
layouts/QskStackBoxAnimator.h
layouts/QskStackBox.h
layouts/QskSubcontrolLayoutEngine.h)
list(APPEND TARGET_SOURCES
layouts/QskGridBox.cpp
layouts/QskGridLayoutEngine.cpp
layouts/QskIndexedLayoutBox.cpp
layouts/QskLayoutChain.cpp
layouts/QskLayoutEngine2D.cpp
layouts/QskLayoutElement.cpp
layouts/QskLayoutMetrics.cpp
layouts/QskLinearBox.cpp
layouts/QskLinearLayoutEngine.cpp
layouts/QskStackBoxAnimator.cpp
layouts/QskStackBox.cpp
layouts/QskSubcontrolLayoutEngine.cpp)
list(APPEND TARGET_HEADERS
dialogs/QskDialog.h
dialogs/QskDialogButton.h
dialogs/QskDialogButtonBox.h
dialogs/QskDialogSubWindow.h
dialogs/QskDialogWindow.h
dialogs/QskMessageSubWindow.h
dialogs/QskMessageWindow.h
dialogs/QskSelectionSubWindow.h
dialogs/QskSelectionWindow.h)
list(APPEND TARGET_SOURCES
dialogs/QskDialogButton.cpp
dialogs/QskDialogButtonBox.cpp
dialogs/QskDialog.cpp
dialogs/QskDialogSubWindow.cpp
dialogs/QskDialogWindow.cpp
dialogs/QskMessageSubWindow.cpp
dialogs/QskMessageWindow.cpp
dialogs/QskSelectionSubWindow.cpp
dialogs/QskSelectionWindow.cpp)
list(APPEND TARGET_HEADERS
inputpanel/QskTextPredictor.h
inputpanel/QskInputContext.h
inputpanel/QskInputPanel.h
inputpanel/QskInputPanelBox.h
inputpanel/QskInputPredictionBar.h
inputpanel/QskVirtualKeyboard.h)
list(APPEND TARGET_SOURCES
inputpanel/QskTextPredictor.cpp
inputpanel/QskInputContext.cpp
inputpanel/QskInputPanel.cpp
inputpanel/QskInputPanelBox.cpp
inputpanel/QskInputPredictionBar.cpp
inputpanel/QskVirtualKeyboard.cpp)
#TODO
#pinyin {
#
#unix {
#
#target_compile_definitions(${TARGET_NAME} PRIVATE PINYIN)
#
#CONFIG += link_pkgconfig
#PKGCONFIG += pinyin
#
#HEADERS +=
#inputpanel/QskPinyinTextPredictor.h
#
#SOURCES +=
#inputpanel/QskPinyinTextPredictor.cpp
#}
#}
#TODO
#hunspell {
#
#unix {
#
#target_compile_definitions(${TARGET_NAME} PRIVATE HUNSPELL)
#
#CONFIG += link_pkgconfig
#PKGCONFIG += hunspell
#
#HEADERS +=
#inputpanel/QskHunspellTextPredictor.h
#
#SOURCES +=
#inputpanel/QskHunspellTextPredictor.cpp
#}
#}
set(TARGET_NAME qskinny)
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_RESSOURCES})
if (Qt5_VERSION_MAJOR VERSION_GREATER "5")
target_link_libraries(${TARGET_NAME} PRIVATE Qt5::Opengl)
endif()
if(QskDll)
target_compile_definitions(${TARGET_NAME}
PUBLIC
QSK_DLL
PRIVATE
QSK_MAKEDLL)
endif()
target_include_directories(${TARGET_NAME}
PUBLIC
common
graphic
nodes
controls
layouts
dialogs
inputpanel)
target_link_libraries(${TARGET_NAME}
PUBLIC
Qt5::Core
Qt5::CorePrivate
Qt5::Quick
Qt5::QuickPrivate)
set_target_properties(${TARGET_NAME}
PROPERTIES
AUTOMOC ON
AUTORCC ON)
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_LIBS})
install(FILES ${TARGET_HEADERS} DESTINATION ${QSK_INSTALL_HEADERS})

84
support/CMakeLists.txt Normal file
View File

@ -0,0 +1,84 @@
# TODO
# CONFIG += ensure_skins
# CONFIG += fontconfig
# CONFIG += qskinny
list(APPEND TARGET_HEADERS
SkinnyGlobal.h
SkinnyNamespace.h
SkinnyShapeFactory.h
SkinnyShapeProvider.h
SkinnyShortcut.h)
list(APPEND TARGET_SOURCES
SkinnyNamespace.cpp
SkinnyShapeFactory.cpp
SkinnyShapeProvider.cpp
SkinnyShortcut.cpp)
# TODO
# ensure_skins{
#
# #Enabling fall back code, that inserts some skin factories manually
# #when not finding skin factories as plugins
#
# INCLUDEPATH *= $${QSK_ROOT} / skins DEPENDPATH *=
# $${QSK_ROOT} /
# skins
#
# target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR} / skins)
#
# target_compile_definitions(${TARGET_NAME} PRIVATE ENSURE_SKINS)
#
# use_install_rpath : QMAKE_RPATHDIR *=
# $${QSK_INSTALL_PLUGINS} / skins use_local_rpath : QMAKE_RPATHDIR *=
# $${QSK_PLUGIN_DIR} / skins
#
# qskAddLibrary($${QSK_PLUGIN_DIR} / skins, squiekskin)
# qskAddLibrary($${QSK_PLUGIN_DIR} / skins, material3skin)
# }
# TODO
#fontconfig{
#
# QSK_FONTDIR = $${PWD} / fonts QSK_FONTCACHEDIR =
# $${OUT_PWD} / fontconfig QSK_FONTCONF_FILE =
# $${QSK_FONTCACHEDIR} / fonts.conf
#
# QSK_FONTCONF_DATA =
# "$$cat($${PWD}/fonts.conf.in, false)" QSK_FONTCONF_DATA = $$replace(
# QSK_FONTCONF_DATA, FONTCACHEDIR, $${QSK_FONTCACHEDIR})
# QSK_FONTCONF_DATA = $$replace(
# QSK_FONTCONF_DATA, FONTDIR, $${QSK_FONTDIR})
# write_file($${QSK_FONTCONF_FILE}, QSK_FONTCONF_DATA)
#
# DEFINES +=
# FONTCONFIG_FILE = $$clean_path($$QSK_FONTCONF_FILE)
#}
set(TARGET_NAME qsktestsupport)
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS})
set_target_properties(${TARGET_NAME} PROPERTIES
AUTOMOC ON)
target_link_libraries(${TARGET_NAME}
PRIVATE
qskinny)
if (QskDll)
target_compile_definitions(${TARGET_NAME}
PRIVATE
SKINNY_MAKEDLL)
endif()
target_compile_definitions(${TARGET_NAME}
PRIVATE
PLUGIN_PATH=${CMAKE_INSTALL_PREFIX}/skins)
target_include_directories(${TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR})
install(TARGETS ${TARGET_NAME} DESTINATION lib) # TODO unify lib install directory

3
tools/CMakeLists.txt Normal file
View File

@ -0,0 +1,3 @@
if(TARGET Qt5::Svg)
add_subdirectory(svg2qvg)
endif()

View File

@ -0,0 +1,44 @@
set(TARGET_NAME svg2qvg)
set(TARGET_INSTALL_SUFFIX bin/tools)
set(TARGET_SOURCES main.cpp)
#TODO should this be configurable globally ?
option(${TARGET_NAME}_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
add_executable(${TARGET_NAME} ${TARGET_SOURCES})
if(${TARGET_NAME}_STANDALONE)
get_target_property(qskinny_AUTOGEN_DIR qskinny AUTOGEN_BUILD_DIR)
if (EXISTS ${qskinny_AUTOGEN_DIR})
else()
set(qskinny_AUTOGEN_DIR ${CMAKE_BINARY_DIR}/src/qskinny_autogen/include_$<CONFIG>) # TODO
endif()
target_include_directories(${TARGET_NAME}
PRIVATE
${CMAKE_SOURCE_DIR}/src/common
${CMAKE_SOURCE_DIR}/src/graphic
${qskinny_AUTOGEN_DIR})
target_compile_definitions(${TARGET_NAME}
PRIVATE
QSK_STANDALONE)
target_link_libraries(${TARGET_NAME}
PRIVATE
Qt5::Gui
Qt5::GuiPrivate
Qt5::Svg)
else()
target_compile_definitions(${TARGET_NAME}
PRIVATE
QskDll)
target_link_libraries(${TARGET_NAME}
PRIVATE
qskinny
Qt5::Svg)
endif()
install(TARGETS ${TARGET_NAME} DESTINATION ${TARGET_INSTALL_SUFFIX})