diff --git a/src/controls/labs/CSDControls.qml b/src/controls/labs/CSDControls.qml index bf916ea..2291c0d 100644 --- a/src/controls/labs/CSDControls.qml +++ b/src/controls/labs/CSDControls.qml @@ -1,125 +1,180 @@ import QtQuick 2.12 import QtQuick.Controls 2.3 import QtQuick.Layouts 1.3 import QtGraphicalEffects 1.0 import QtQuick.Window 2.3 import org.kde.mauikit 1.0 as Maui import org.kde.kirigami 2.7 as Kirigami import org.kde.appletdecoration 0.1 as AppletDecoration // import org.kde.plasma.plasmoid 2.0 Item { id: control readonly property bool maskButtons: Maui.App.theme.maskButtons implicitWidth: _controlsLayout.implicitWidth property var order : [] // TapHandler { // onTapped: if (tapCount === 2) toggleMaximized() // gesturePolicy: TapHandler.DragThreshold // } // DragHandler { // grabPermissions: TapHandler.CanTakeOverFromAnything // onActiveChanged: if (active) { root.startSystemMove(); } // } Row { id: _controlsLayout spacing: Maui.Style.space.medium width: parent.width height: parent.height Repeater { model: control.order - delegate: AppletDecoration.Button - { - width: 16 - height: 16 - anchors.verticalCenter: parent.verticalCenter - bridge: bridgeItem.bridge - sharedDecoration: sharedDecorationItem - scheme: plasmaThemeExtended.colors.schemeFile - type: mapControl(modelData) -// isOnAllDesktops: root.isLastActiveWindowPinned - isMaximized: Window.window.visibility === Window.Maximized -// isKeepAbove: root.isLastActiveWindowKeepAbove - - localX: x - localY: y - isActive: Window.window.active - - onClicked: performActiveWindowAction(type) - } + delegate: auroraeThemeEngine.isEnabled ? auroraeButton : pluginButton } } - AppletDecoration.PlasmaThemeExtended { + Component + { + id: pluginButton + + + AppletDecoration.Button + { + width: 22 + height: 22 + anchors.verticalCenter: parent.verticalCenter + bridge: bridgeItem.bridge + sharedDecoration: sharedDecorationItem + scheme: plasmaThemeExtended.colors.schemeFile + type: mapControl(modelData) + // isOnAllDesktops: root.isLastActiveWindowPinned + isMaximized: Window.window.visibility === Window.Maximized + // isKeepAbove: root.isLastActiveWindowKeepAbove + + // localX: x + // localY: y + isActive: Window.window.active + + onClicked: performActiveWindowAction(type) + } + } + + Component + { + id: auroraeButton + Item {} +// AppletDecoration.AuroraeButton +// { +// width: 22 +// height: 22 +// +// isMaximized: Window.window.visibility === Window.Maximized +// // isKeepAbove: root.isLastActiveWindowKeepAbove +// +// // localX: x +// // localY: y +// isActive: Window.window.active +// +// onClicked: performActiveWindowAction(buttonType) +// +// buttonType: mapControl(modelData) +// auroraeTheme: auroraeThemeEngine +// +// } + } + + AppletDecoration.WindowSystem + { + id: windowSystem + } + + AppletDecoration.PlasmaThemeExtended + { id: plasmaThemeExtended - // readonly property bool isActive: plasmoid.configuration.selectedScheme === "_plasmatheme_" - // - // function triggerUpdate() { - // if (isActive) { - // initButtons(); - // } - // } - // - // onThemeChanged: triggerUpdate(); - // onColorsChanged: triggerUpdate(); + readonly property bool isActive: plasmoid.configuration.selectedScheme === "_plasmatheme_" + + function triggerUpdate() + { + if (isActive) + { +// initButtons(); + sharedDecorationItem.createDecoration(); + } + } + + onThemeChanged: triggerUpdate(); + onColorsChanged: triggerUpdate(); } - AppletDecoration.Bridge { + AppletDecoration.Bridge + { id: bridgeItem plugin: decorations.currentPlugin theme: decorations.currentTheme } - AppletDecoration.Settings { + AppletDecoration.Settings + { id: settingsItem bridge: bridgeItem.bridge borderSizesIndex: 0 // Normal } - AppletDecoration.SharedDecoration { + AppletDecoration.SharedDecoration + { id: sharedDecorationItem bridge: bridgeItem.bridge settings: settingsItem } - AppletDecoration.DecorationsModel { + AppletDecoration.DecorationsModel + { id: decorations } + AppletDecoration.AuroraeTheme + { + id: auroraeThemeEngine + theme: isEnabled ? decorations.currentTheme : "" + + readonly property bool isEnabled: decorations.isAurorae(decorations.currentPlugin, decorations.currentTheme); + } + // PlasmaTasksModel{id: windowInfo} function mapControl(key) { switch(key) { case "X": return AppletDecoration.Types.Close; case "I": return AppletDecoration.Types.Minimize; case "A": return AppletDecoration.Types.Maximize; + case "F": return AppletDecoration.Types.KeepAbove; + case "S": return AppletDecoration.Types.OnAllDesktops; default: return null; } } function performActiveWindowAction(type) { if (type === AppletDecoration.Types.Close) { root.close() } else if (type === AppletDecoration.Types.Maximize) { root.toggleMaximized() } else if (type === AppletDecoration.Types.Minimize) { root.showMinimized() } else if (type === AppletDecoration.Types.TogglePinToAllDesktops) { windowInfo.togglePinToAllDesktops(); } else if (type === AppletDecoration.Types.ToggleKeepAbove){ windowInfo.toggleKeepAbove(); } } } diff --git a/src/csd/libappletdecoration/CMakeLists.txt b/src/csd/libappletdecoration/CMakeLists.txt index 852d82a..438972a 100644 --- a/src/csd/libappletdecoration/CMakeLists.txt +++ b/src/csd/libappletdecoration/CMakeLists.txt @@ -1,70 +1,70 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) set(KF5_MIN_VERSION "5.38.0") - set(KF5_LOCALE_PREFIX "") find_package(ECM ${KF5_MIN_VER} REQUIRED NO_MODULE) find_package(ECM 0.0.11 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) find_package(KDecoration2 REQUIRED) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons Declarative Plasma PlasmaQuick) include(ECMQMLModules) include(CheckIncludeFiles) include(KDECMakeSettings) include(KDEInstallDirs) set(KDECORATION2_VERSION_MINOR ${KDecoration2_VERSION_MINOR}) message(STATUS "KDECORATION2 VERSION MINOR : ${KDECORATION2_VERSION_MINOR}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-decoration.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-decoration.h) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings) set(appletdecoration_SRCS appletdecorationplugin.cpp auroraetheme.cpp buttonsmodel.cpp commontools.cpp decorationsmodel.cpp decorationpalette.cpp environment.cpp padding.cpp previewbutton.cpp previewclient.cpp previewbridge.cpp previewsettings.cpp previewshareddecoration.cpp schemecolors.cpp schemesmodel.cpp themeextended.cpp types.cpp windowsystem.cpp ) add_library(appletdecorationplugin SHARED ${appletdecoration_SRCS}) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Quick DBus Widgets) -find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Plasma WindowSystem I18n Service ConfigWidgets) -find_package(KDecoration2 REQUIRED) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Plasma PlasmaQuick WindowSystem I18n Service ConfigWidgets) target_link_libraries(appletdecorationplugin Qt5::Core Qt5::DBus Qt5::Widgets Qt5::Quick KF5::ConfigWidgets KF5::I18n KF5::Plasma + KF5::PlasmaQuick KF5::WindowSystem KF5::I18n KF5::Service KDecoration2::KDecoration KDecoration2::KDecoration2Private)