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:
2026-04-14 10:51:06 +01:00
parent 51f3c21121
commit cf12defd28
15214 changed files with 20594243 additions and 269 deletions
@@ -0,0 +1,118 @@
# SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
# SPDX-License-Identifier: BSD-2-Clause
set(bindings_library "KWidgetsAddons")
set(wrapped_header ${CMAKE_SOURCE_DIR}/python/bindings.h)
set(typesystem_file ${CMAKE_SOURCE_DIR}/python/bindings.xml)
set(generated_sources
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kwidgetsaddons_module_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kacceleratormanager_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kactionmenu_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kactionselector_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kanimatedbutton_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kassistantdialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kbusyindicatorwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcapacitybar_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcharselect_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcollapsiblegroupbox_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcolorbutton_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcolorcombo_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcolumnresizer_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcontextualhelpbutton_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kcursor_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdatecombobox_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdatepicker_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdatepickerpopup_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdatetimeedit_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdragwidgetdecoratorbase_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kdualaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/keditlistwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kfontaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kfontchooser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kfontchooserdialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kfontrequester_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kfontsizeaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kgradientselector_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kguiitem_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kjobwidgets_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kled_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/klineediteventhandler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/klineediturldropeventfilter_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmessagebox_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmessageboxnotifyinterface_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmessagedialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmessagewidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmimetypechooser_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmimetypechooserdialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmimetypeeditor_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmultitabbar_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmultitabbarbutton_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kmultitabbartab_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/knewpassworddialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/knewpasswordwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpagedialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpagemodel_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpageview_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpagewidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpagewidgetitem_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpagewidgetmodel_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpassword_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpassworddialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpasswordlineedit_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpixmapregionselectordialog_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpixmapregionselectorwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpixmapsequence_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpixmapsequenceoverlaypainter_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpixmapsequencewidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kpopupframe_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kratingpainter_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kratingwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/krecentfilesmenu_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kruler_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kselectaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kselector_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kseparator_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ksplittercollapserbutton_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kstandardguiitem_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kstyleextensions_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ksqueezedtextlabel_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktimecombobox_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktitlewidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktoggleaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktogglefullscreenaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktoolbarlabelaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktoolbarpopupaction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktoolbarspaceraction_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktooltipwidget_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktwofingerswipe_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktwofingerswiperecognizer_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktwofingertap_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/ktwofingertaprecognizer_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kurllabel_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kviewstateserializer_wrapper.cpp
${CMAKE_CURRENT_BINARY_DIR}/KWidgetsAddons/kxyselector_wrapper.cpp)
ecm_generate_python_bindings(
PACKAGE_NAME ${bindings_library}
VERSION ${KF_VERSION}
WRAPPED_HEADER ${wrapped_header}
TYPESYSTEM ${typesystem_file}
GENERATED_SOURCES ${generated_sources}
DEPENDENCIES KF6::WidgetsAddons
QT_VERSION ${REQUIRED_QT_VERSION}
HOMEPAGE_URL "https://invent.kde.org/frameworks/kwidgetsaddons"
ISSUES_URL "https://bugs.kde.org/describecomponents.cgi?product=frameworks-kwidgetsaddons"
AUTHOR "The KDE Community"
README ../README.md
)
target_link_libraries(${bindings_library} PRIVATE KF6WidgetsAddons)
execute_process(COMMAND ${Python_EXECUTABLE} -Esc "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '${CMAKE_INSTALL_PREFIX}', 'base': '${CMAKE_INSTALL_PREFIX}'}))" OUTPUT_VARIABLE sysconfig_output)
string(STRIP ${sysconfig_output} PYTHON_INSTALL_DIR)
install(TARGETS ${bindings_library} LIBRARY DESTINATION "${PYTHON_INSTALL_DIR}")
@@ -0,0 +1,92 @@
// SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
#pragma once
// Make "signals:", "slots:" visible as access specifiers
#define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a)))
#include "pysidesignal.h"
#include <KAcceleratorManager>
#include <KActionMenu>
#include <KActionSelector>
#include <KAnimatedButton>
#include <KAssistantDialog>
#include <KBusyIndicatorWidget>
#include <KCapacityBar>
#include <KCharSelect>
#include <KCollapsibleGroupBox>
#include <KColorButton>
#include <KColorCombo>
#include <KColumnResizer>
#include <KContextualHelpButton>
#include <KCursor>
#include <KDateComboBox>
#include <KDatePicker>
#include <KDatePickerPopup>
#include <KDateTimeEdit>
#include <KDragWidgetDecorator>
#include <KDualAction>
#include <KEditListWidget>
#include <KFontAction>
#include <KFontChooser>
#include <KFontChooserDialog>
#include <KFontRequester>
#include <KFontSizeAction>
#include <KGradientSelector>
#include <KGuiItem>
#include <KJobWidgets>
#include <KLed>
#include <KLineEditEventHandler>
#include <KLineEditUrlDropEventFilter>
#include <KMessageBox>
#include <KMessageBoxNotifyInterface>
#include <KMessageDialog>
#include <KMessageWidget>
#include <KMimeTypeChooser>
#include <KMimeTypeChooserDialog>
#include <KMimeTypeEditor>
#include <KMultiTabBar>
#include <KMultiTabBarButton>
#include <KMultiTabBarTab>
#include <KNewPasswordDialog>
#include <KNewPasswordWidget>
#include <KPageDialog>
#include <KPageModel>
#include <KPageView>
#include <KPageWidget>
#include <KPageWidgetItem>
#include <KPageWidgetModel>
#include <KPasswordDialog>
#include <KPasswordLineEdit>
#include <KPixmapRegionSelectorDialog>
#include <KPixmapRegionSelectorWidget>
#include <KPixmapSequence>
#include <KPixmapSequenceOverlayPainter>
#include <KPixmapSequenceWidget>
#include <KPopupFrame>
#include <KRatingPainter>
#include <KRatingWidget>
#include <KRecentFilesMenu>
#include <KRuler>
#include <KSelectAction>
#include <KSelector>
#include <KSeparator>
#include <KSplitterCollapserButton>
#include <KSqueezedTextLabel>
#include <KStandardGuiItem>
#include <KStyleExtensions>
#include <KTimeComboBox>
#include <KTitleWidget>
#include <KToggleAction>
#include <KToggleFullScreenAction>
#include <KToolBarLabelAction>
#include <KToolBarPopupAction>
#include <KToolBarSpacerAction>
#include <KToolTipWidget>
#include <KTwoFingerSwipe>
#include <KTwoFingerTap>
#include <KUrlLabel>
#include <KViewStateSerializer>
#include <KXYSelector>
@@ -0,0 +1,264 @@
<?xml version="1.0"?>
<typesystem package="KWidgetsAddons">
<!--
SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
-->
<load-typesystem name="typesystem_widgets.xml" generate="no" />
<object-type name="KAcceleratorManager" />
<object-type name="KActionMenu" />
<object-type name="KActionSelector">
<enum-type name="InsertionPolicy" />
<enum-type name="MoveButton" />
</object-type>
<object-type name="KAnimatedButton" />
<object-type name="KAssistantDialog" />
<object-type name="KBusyIndicatorWidget" />
<object-type name="KCapacityBar">
<enum-type name="DrawTextMode" />
</object-type>
<object-type name="KCharSelect">
<enum-type name="Control" flags="Controls" />
</object-type>
<object-type name="KCollapsibleGroupBox" />
<object-type name="KColorButton" />
<object-type name="KColorCombo" />
<object-type name="KColumnResizer" />
<object-type name="KContextualHelpButton" />
<object-type name="KCursor" />
<object-type name="KDateComboBox">
<enum-type name="Option" flags="Options" />
</object-type>
<object-type name="KDatePicker" />
<object-type name="KDatePickerPopup">
<enum-type name="Mode" flags="Modes" />
</object-type>
<object-type name="KDateTimeEdit">
<enum-type name="Option" flags="Options" />
</object-type>
<object-type name="KDragWidgetDecoratorBase" />
<object-type name="KDualAction" />
<object-type name="KEditListWidget">
<enum-type name="Button" flags="Buttons" />
</object-type>
<object-type name="CustomEditor" />
<object-type name="KFontAction" />
<object-type name="KFontChooser">
<enum-type name="DisplayFlag" flags="DisplayFlags" />
<enum-type name="FontColumn" />
<enum-type name="FontDiff" flags="FontDiffFlags" />
<enum-type name="FontListCriteria" />
</object-type>
<object-type name="KFontChooserDialog" />
<object-type name="KFontRequester" />
<object-type name="KFontSizeAction">
<extra-includes>
<include file-name="pysidesignal.h" location="global" />
</extra-includes>
</object-type>
<object-type name="KGradientSelector" />
<object-type name="KGuiItem" />
<namespace-type name="KJobWidgets" />
<object-type name="KLed">
<enum-type name="Look" />
<enum-type name="Shape" />
<enum-type name="State" />
</object-type>
<namespace-type name="KLineEditEventHandler" />
<object-type name="KLineEditUrlDropEventFilter" />
<namespace-type name="KMessageBox">
<enum-type name="ButtonCode" />
<enum-type name="DialogType" />
<enum-type name="Option" flags="Options" />
<modify-function signature="messageBox(QWidget*,KMessageBox::DialogType,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="7">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="messageBoxWId(WId,KMessageBox::DialogType,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="7">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="questionTwoActionsCancel(QWidget*,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="questionTwoActionsCancelWId(WId,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningContinueCancel(QWidget*,QString,QString,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="4">
<remove-default-expression />
</modify-argument>
<modify-argument index="5">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningContinueCancelDetailed(QWidget*,QString,QString,KGuiItem,KGuiItem,QString,KMessageBox::Options,QString)">
<modify-argument index="4">
<remove-default-expression />
</modify-argument>
<modify-argument index="5">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningContinueCancelList(QWidget*,QString,QStringList,QString,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="5">
<remove-default-expression />
</modify-argument>
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningContinueCancelListWId(WId,QString,QStringList,QString,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="5">
<remove-default-expression />
</modify-argument>
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningContinueCancelWId(WId,QString,QString,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="4">
<remove-default-expression />
</modify-argument>
<modify-argument index="5">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningTwoActionsCancel(QWidget*,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningTwoActionsCancelList(QWidget*,QString,QStringList,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="7">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningTwoActionsCancelListWId(WId,QString,QStringList,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="7">
<remove-default-expression />
</modify-argument>
</modify-function>
<modify-function signature="warningTwoActionsCancelWId(WId,QString,QString,KGuiItem,KGuiItem,KGuiItem,QString,KMessageBox::Options)">
<modify-argument index="6">
<remove-default-expression />
</modify-argument>
</modify-function>
</namespace-type>
<object-type name="KMessageBoxNotifyInterface" />
<object-type name="KMessageDialog">
<enum-type name="ButtonType" />
<enum-type name="Type" />
<modify-function signature="setButtons(const KGuiItem &amp;,const KGuiItem &amp;,const KGuiItem &amp;)">
<modify-argument index="1">
<remove-default-expression />
</modify-argument>
<modify-argument index="2">
<remove-default-expression />
</modify-argument>
<modify-argument index="3">
<remove-default-expression />
</modify-argument>
</modify-function>
</object-type>
<object-type name="KMessageWidget">
<enum-type name="MessageType" />
<enum-type name="Position" />
</object-type>
<object-type name="KMimeTypeChooser">
<enum-type name="Visuals" />
<modify-function signature="KMimeTypeChooser(const QString &amp;,const QStringList &amp;,const QString &amp;,const QStringList &amp;,int,QWidget*)">
<modify-argument index="5">
<replace-default-expression with="KMimeTypeChooser::Visuals::Comments | KMimeTypeChooser::Visuals::Patterns | KMimeTypeChooser::Visuals::EditButton" />
</modify-argument>
</modify-function>
</object-type>
<object-type name="KMimeTypeChooserDialog" />
<namespace-type name="KMimeTypeEditor" />
<object-type name="KMultiTabBar">
<enum-type name="KMultiTabBarPosition" />
<enum-type name="KMultiTabBarStyle" />
</object-type>
<object-type name="KMultiTabBarButton" />
<object-type name="KMultiTabBarTab" />
<object-type name="KNewPasswordDialog" />
<object-type name="KNewPasswordWidget">
<enum-type name="PasswordStatus" />
<enum-type name="RevealPasswordMode" />
</object-type>
<object-type name="KPageDialog">
<enum-type name="FaceType" />
</object-type>
<object-type name="KPageModel">
<enum-type name="Role" />
</object-type>
<object-type name="KPageView">
<enum-type name="FaceType" />
</object-type>
<object-type name="KPageWidget" />
<object-type name="KPageWidgetItem" />
<object-type name="KPageWidgetModel" />
<namespace-type name="KPassword">
<enum-type name="RevealMode" />
</namespace-type>
<object-type name="KPasswordDialog">
<enum-type name="ErrorType" />
<enum-type name="KPasswordDialogFlag" flags="KPasswordDialogFlags" />
</object-type>
<object-type name="KPasswordLineEdit" />
<object-type name="KPixmapRegionSelectorDialog" />
<object-type name="KPixmapRegionSelectorWidget">
<enum-type name="RotateDirection" />
</object-type>
<object-type name="KPixmapSequence" />
<object-type name="KPixmapSequenceOverlayPainter" />
<object-type name="KPixmapSequenceWidget" />
<object-type name="KPopupFrame" />
<object-type name="KRatingPainter" />
<object-type name="KRatingWidget" />
<object-type name="KRecentFilesMenu" />
<object-type name="KRuler">
<enum-type name="MetricStyle" />
</object-type>
<object-type name="KSelectAction">
<enum-type name="ToolBarMode" />
</object-type>
<object-type name="KSelector" />
<object-type name="KSeparator" />
<object-type name="KSplitterCollapserButton" />
<namespace-type name="KStandardGuiItem">
<enum-type name="BidiMode" />
<enum-type name="StandardItem" />
</namespace-type>
<namespace-type name="KStyleExtensions" />
<object-type name="KSqueezedTextLabel" />
<object-type name="KTimeComboBox">
<enum-type name="Option" flags="Options" />
</object-type>
<object-type name="KTitleWidget">
<enum-type name="ImageAlignment" />
<enum-type name="MessageType" />
</object-type>
<object-type name="KToggleAction" />
<object-type name="KToggleFullScreenAction" />
<object-type name="KToolBarLabelAction" />
<object-type name="KToolBarPopupAction">
<enum-type name="PopupMode" />
</object-type>
<object-type name="KToolBarSpacerAction" />
<object-type name="KToolTipWidget" />
<object-type name="KTwoFingerSwipe" />
<object-type name="KTwoFingerSwipeRecognizer" />
<object-type name="KTwoFingerTap" />
<object-type name="KTwoFingerTapRecognizer" />
<object-type name="KUrlLabel" />
<object-type name="KViewStateSerializer" />
<object-type name="KXYSelector" />
</typesystem>
@@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
# SPDX-License-Identifier: BSD-2-Clause
import sys
from KWidgetsAddons import KLed
from PySide6 import QtWidgets
class KLedDemo(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.text = QtWidgets.QLabel("KLed example")
self.led = KLed()
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.led)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = KLedDemo()
widget.show()
sys.exit(app.exec())
@@ -0,0 +1,50 @@
# SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
# SPDX-License-Identifier: BSD-2-Clause
import sys
from KWidgetsAddons import KMessageWidget
from PySide6 import QtCore, QtWidgets
class KMessageWidgetDemo(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.text = QtWidgets.QLabel("KMessageWidget demo", alignment=QtCore.Qt.AlignCenter)
self.message_type = QtWidgets.QComboBox()
self.message_type.addItems(["Positive", "Information", "Warning", "Error"])
self.button = QtWidgets.QPushButton("Show message")
self.button.clicked.connect(self.show_message)
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.message_type)
self.layout.addWidget(self.button)
def show_message(self):
self.message = KMessageWidget("Be carefull!")
match self.message_type.currentText():
case "Positive":
self.message.setMessageType(KMessageWidget.MessageType.Positive)
case "Information":
self.message.setMessageType(KMessageWidget.MessageType.Information)
case "Warning":
self.message.setMessageType(KMessageWidget.MessageType.Warning)
case "Error":
self.message.setMessageType(KMessageWidget.MessageType.Error)
self.layout.insertWidget(0, self.message)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = KMessageWidgetDemo()
widget.resize(500, 500)
widget.show()
sys.exit(app.exec())
@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
# SPDX-License-Identifier: BSD-2-Clause
import sys
from KWidgetsAddons import KPasswordDialog
from PySide6 import QtWidgets
class KPasswordDialogDemo(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.text = QtWidgets.QLabel("KPasswordDialog example")
self.button = QtWidgets.QPushButton("Change password")
self.button.clicked.connect(self.open_dialog)
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.button)
def open_dialog(self):
self.dialog = KPasswordDialog(self)
self.dialog.setPrompt("Enter a password")
self.dialog.gotPassword.connect(lambda password: self.text.setText(f"Your password is: {password}"))
self.dialog.show()
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = KPasswordDialogDemo()
widget.show()
sys.exit(app.exec())
@@ -0,0 +1,31 @@
# SPDX-FileCopyrightText: 2024 Manuel Alcaraz Zambrano <manuelalcarazzam@gmail.com>
# SPDX-License-Identifier: BSD-2-Clause
import sys
from KWidgetsAddons import KSeparator
from PySide6 import QtCore, QtWidgets
class KSeparatorDemo(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.text = QtWidgets.QLabel("Hey there's a separator below me", alignment=QtCore.Qt.AlignCenter)
self.separator = KSeparator()
self.text2 = QtWidgets.QLabel("I'm below the separator", alignment=QtCore.Qt.AlignCenter)
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.addWidget(self.text)
self.layout.addWidget(self.separator)
self.layout.addWidget(self.text2)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = KSeparatorDemo()
widget.resize(500, 200)
widget.show()
sys.exit(app.exec())