Making a Plasmoid resizable in Plasma 6

To make a plasmoid popup resizeable like the Kickoff widget, FullRepresentation must have an appletInterface property.

In plasma 5 this worked with : readonly property var appletInterface: Plasmoid.self

In plasma 6 this doesn’t work anymore.

I searched around an found : readonly property alias appletInterface: widget

widget is the id from PlasmoidItem (root)

PlasmoidItem {

id: widget

But it seems widget is unknown.

AppletInterface is part of id popup.

Anyone knows how to get this to work?

I’ve been test several options, but so far no luck.

I try to use the following code in fullRepresentation in main.qml:

		var width
		switch (config.defaultAppListView) {
		case "TilesOnly":
			width = config.leftSectionWidth + tileGridWidth
			break
		case "Categories":
		case "Alphabetical":
			width = config.leftSectionWidth + config.appListWidth + tileGridWidth
			break
		default:
			width = 0
		}
		popup.implicitWidth = width
		popup.implicitHeight = config.popupHeight
		plasmoid.resize(popup.implicitWidth, popup.implicitHeight)    

The idea is when clicking a button “cathegories”, Alphabetical” of '“TilesOnly”, the main widget (PlasmoidItem) should resize.

config.defaultAppListView is a value in .config/plasma-org.kde.plasma.desktop-appletsrc

It does change:

[Containments][66][Applets][97][Configuration][General]
appDescription=below
appListWidth=450
defaultAppListView=TilesOnly
defaultTileColor=#00000000

Anyone did something similar that actually works?

I also tried with Layout without any luck:

Layout.minimumWidth: config.leftSectionWidth
Layout.minimumHeight: config.minimumHeight

Layout.preferredWidth: {
    switch (config.defaultAppListView) {
    case "TilesOnly":
        return leftSectionWidth + tileGridWidth
    case "Categories":
    case "Alphabetical":
        return leftSectionWidth + config.appListWidth + tileGridWidth
    default:
        return 0
    }
}

Layout.preferredHeight: config.popupHeight

Layout.maximumWidth: 1920 // config.popupWidth
Layout.maximumHeight: 1080 // config.popupHeight

Min and max are working if resizing manually, but autoresizing is not successful.

Also tried with timers - no luck

All thats needed to resize is following code:

	readonly property var appletInterface: Plasmoid

	Layout.minimumWidth: config.leftSectionWidth
	Layout.minimumHeight: config.minimumHeight
	Layout.preferredWidth: config.popupWidth
	Layout.preferredHeight: config.popupHeight

It works fine when the plasmoid is installed / added to the taskbar.

Resizing works as expected.

After a reboot Its stops working.

Can I conclude that this is a bug in Plasma 6?

Bugreport 511240.

After installing the widget, before rebooting PC all is fine. Widget expands its width

After reboot It doesn’t expand anymore. the right side ‘falling of’ the widget because it’s not expanding its width:

I had a look at plasma-org.kde.plasma.desktop-appletsrc inside my .config hidden homedirectory.

That’s the place where the plasmoid configuration is stored.

[Containments][66][Applets][104]
immutability=1
plugin=com.github.JohanW1977.tiledmenu

[Containments][66][Applets][104][Configuration]
PreloadWeight=100
popupHeight=565
popupWidth=812

[Containments][66][Applets][104][Configuration][ConfigDialog]
DialogHeight=2088
DialogWidth=3840

[Containments][66][Applets][104][Configuration][General]
appDescription=below
appListWidth=450
defaultAppListView=TilesOnly
defaultTileColor=#00000000
defaultTileGradient=true
favGridCols=19
icon=applications-all-symbolic
menuItemHeight=47
numRecentApps=4
popupHeight=564
recentOrdering=0

I noticed ‘popupHeight’ is set twice in this configuration.

The [General] section stores the correct parameters.

When I remove popupHeight=565 and popupWidth=812 from [Configuration] and reboot my PC PreferredWidth works as expected…. as long as I don’t reboot.

Something is re-adding these 2 lines again when rebooting the machine.

Maybe It’s the plasma system? Is it somewhere in the plasmoid code? thats unknown at this point.

Maybe popupHeight and popupWidth are standard namevariables and I need to change popupWidth/Height to something else inside the entire plasmoid to remove the conflict in the system.