Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
+3
@@ -0,0 +1,3 @@
|
||||
set(BUILD_SHARED_LIBS 0)
|
||||
|
||||
add_subdirectory(kirigami)
|
||||
@@ -0,0 +1,6 @@
|
||||
Add here, with either a script that does a git checkout
|
||||
or as git submodules the two projects:
|
||||
|
||||
git://anongit.kde.org/kirigami.git
|
||||
git://anongit.kde.org/breeze-icons.git
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
project(minimal)
|
||||
|
||||
find_package(ECM REQUIRED CONFIG)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
|
||||
|
||||
set(BREEZEICONS_DIR ${CMAKE_SOURCE_DIR}/3rdparty/breeze-icons/)
|
||||
|
||||
find_package(Qt6 REQUIRED Core Quick Multimedia Test Widgets QuickControls2)
|
||||
|
||||
include(KDEInstallDirs)
|
||||
include(KDECompilerSettings)
|
||||
include(KDECMakeSettings)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
add_subdirectory(3rdparty)
|
||||
add_subdirectory(src)
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/3rdparty/kirigami/src)
|
||||
include(${CMAKE_SOURCE_DIR}/3rdparty/kirigami/KF6Kirigami2Macros.cmake)
|
||||
|
||||
set(minimal_SRCS
|
||||
main.cpp
|
||||
)
|
||||
|
||||
qt_add_resources(RESOURCES kirigami-icons.qrc resources.qrc)
|
||||
|
||||
if (ANDROID)
|
||||
set(minimal_EXTRA_LIBS
|
||||
#FIXME: we shouldn't have to link to it but otherwise the lib won't be packaged on Android
|
||||
Qt6::QuickControls2)
|
||||
else ()
|
||||
#qstyle-based qqc2 style needs a QApplication
|
||||
set(minimal_EXTRA_LIBS Qt6::Widgets)
|
||||
endif()
|
||||
|
||||
|
||||
add_executable(minimal ${minimal_SRCS} ${RESOURCES})
|
||||
#kirigamiplugin is the static library built by us
|
||||
target_link_libraries(minimal kirigamiplugin Qt6::Core Qt6::Qml Qt6::Quick Qt6::QuickControls2 ${minimal_EXTRA_LIBS})
|
||||
|
||||
#install(TARGETS minimal ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
|
||||
kirigami_package_breeze_icons(ICONS open-menu-symbolic document-decrypt folder-sync go-next go-previous go-up handle-left handle-right view-list-icons applications-graphics media-record-symbolic)
|
||||
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import QtQuick
|
||||
|
||||
Page1Form {
|
||||
button1.onClicked: {
|
||||
console.log("Button Pressed. Entered text: " + textField1.text);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
|
||||
Kirigami.Page {
|
||||
title: qsTr("Page 1")
|
||||
|
||||
property alias textField1: textField1
|
||||
property alias button1: button1
|
||||
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: "Sync"
|
||||
icon.name: "folder-sync"
|
||||
onTriggered: showPassiveNotification("Action clicked")
|
||||
}
|
||||
]
|
||||
|
||||
RowLayout {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.topMargin: 20
|
||||
anchors.top: parent.top
|
||||
|
||||
TextField {
|
||||
id: textField1
|
||||
placeholderText: qsTr("Text Field")
|
||||
}
|
||||
|
||||
Button {
|
||||
id: button1
|
||||
text: qsTr("Press Me")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<RCC>
|
||||
<qresource prefix="/org/kde/kirigami/">
|
||||
<file alias="icons/open-menu-symbolic.svg">../3rdparty/breeze-icons/icons/actions/24/open-menu-symbolic.svg</file>
|
||||
<file alias="icons/document-decrypt.svg">../3rdparty/breeze-icons/icons/actions/32/document-decrypt.svg</file>
|
||||
<file alias="icons/folder-sync.svg">../3rdparty/breeze-icons/icons/actions/32/folder-sync.svg</file>
|
||||
<file alias="icons/go-next.svg">../3rdparty/breeze-icons/icons/actions/22/go-next.svg</file>
|
||||
<file alias="icons/go-previous.svg">../3rdparty/breeze-icons/icons/actions/22/go-previous.svg</file>
|
||||
<file alias="icons/go-up.svg">../3rdparty/breeze-icons/icons/actions/22/go-up.svg</file>
|
||||
<file alias="icons/handle-left.svg">../3rdparty/breeze-icons/icons/actions/22/handle-left.svg</file>
|
||||
<file alias="icons/handle-right.svg">../3rdparty/breeze-icons/icons/actions/22/handle-right.svg</file>
|
||||
<file alias="icons/view-list-icons.svg">../3rdparty/breeze-icons/icons/actions/32/view-list-icons.svg</file>
|
||||
<file alias="icons/applications-graphics.svg">../3rdparty/breeze-icons/icons/categories/32/applications-graphics.svg</file>
|
||||
<file alias="icons/media-record-symbolic.svg">../3rdparty/breeze-icons/icons/actions/symbolic/media-record-symbolic.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#include <QGuiApplication>
|
||||
#else
|
||||
#include <QApplication>
|
||||
#endif
|
||||
|
||||
#include <QColor>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QUrl>
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
#include <QtAndroid>
|
||||
|
||||
// WindowManager.LayoutParams
|
||||
#define FLAG_TRANSLUCENT_STATUS 0x04000000
|
||||
#define FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 0x80000000
|
||||
// View
|
||||
#define SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 0x00002000
|
||||
|
||||
#endif
|
||||
|
||||
Q_IMPORT_PLUGIN(KirigamiPlugin)
|
||||
|
||||
Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
{
|
||||
// The desktop QQC2 style needs it to be a QApplication
|
||||
#ifdef Q_OS_ANDROID
|
||||
QGuiApplication app(argc, argv);
|
||||
#else
|
||||
QApplication app(argc, argv);
|
||||
#endif
|
||||
|
||||
// qputenv("QML_IMPORT_TRACE", "1");
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
|
||||
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
|
||||
|
||||
if (engine.rootObjects().isEmpty()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// HACK to color the system bar on Android, use qtandroidextras and call the appropriate Java methods
|
||||
#ifdef Q_OS_ANDROID
|
||||
QtAndroid::runOnAndroidThread([=]() {
|
||||
QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;");
|
||||
window.callMethod<void>("addFlags", "(I)V", FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
window.callMethod<void>("clearFlags", "(I)V", FLAG_TRANSLUCENT_STATUS);
|
||||
window.callMethod<void>("setStatusBarColor", "(I)V", QColor("#2196f3").rgba());
|
||||
window.callMethod<void>("setNavigationBarColor", "(I)V", QColor("#2196f3").rgba());
|
||||
});
|
||||
#endif
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import org.kde.kirigami as Kirigami
|
||||
|
||||
Kirigami.ApplicationWindow {
|
||||
visible: true
|
||||
title: qsTr("Hello World")
|
||||
|
||||
pageStack.initialPage: Page1 {}
|
||||
|
||||
globalDrawer: Kirigami.GlobalDrawer {
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: "View"
|
||||
icon.name: "view-list-icons"
|
||||
Kirigami.Action {
|
||||
text: "action 1"
|
||||
}
|
||||
Kirigami.Action {
|
||||
text: "action 2"
|
||||
}
|
||||
Kirigami.Action {
|
||||
text: "action 3"
|
||||
}
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: "action 3"
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: "action 4"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
; This file can be edited to change the style of the application
|
||||
; See Styling Qt Quick Controls 2 in the documentation for details:
|
||||
; http://doc.qt.io/qt-5/qtquickcontrols2-styles.html
|
||||
|
||||
[Controls]
|
||||
Style=Material
|
||||
|
||||
[Universal]
|
||||
Theme=Light
|
||||
;Accent=Steel
|
||||
|
||||
[Material]
|
||||
Theme=Light
|
||||
Accent=BlueGrey
|
||||
Primary=BlueGray
|
||||
@@ -0,0 +1,8 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>main.qml</file>
|
||||
<file>Page1.qml</file>
|
||||
<file>Page1Form.ui.qml</file>
|
||||
<file>qtquickcontrols2.conf</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
Reference in New Issue
Block a user