Обновить мой новый плазмоид - источник повторного анализа

Я учусь разрабатывать плазмоиды Kde Plasma 5 и тестирую их с помощью небольшого виджета, совместимого всего с двумя qmls. Я прочитал некоторые источники информации, такие как https://techbase.kde.org/ или https://api.kde.org/frameworks/ и создал структуру пакета и источники для моего тестового плазмоида, который выглядит следующим образом:

$ ls -lR test
test:
total 8
drwxr-xr-x 3 alberto alberto 4096 nov 26 14:28 contents
-rw-r--r-- 1 alberto alberto  459 nov 26 14:28 metadata.desktop

test/contents:
total 4
drwxr-xr-x 2 alberto alberto 4096 nov 26 14:33 ui

test/contents/ui:
total 8
-rw-r--r-- 1 alberto alberto 275 nov 26 14:28 main.qml
-rw-r--r-- 1 alberto alberto 465 nov 26 14:33 RootContainer.qml

RootContainer - это просто полное представление виджета, которое содержит только метку с текстом "prueba1". Итак, как я прочитал в документации, я использовал команду plasmapkg2 для установки виджета следующим образом:

$ plasmapkg2 --install test
pluginname:  "org.matrixland.test"
Generated  "/home/xxx/.local/share/plasma/plasmoids//kpluginindex.json"  ( 3  plugins)
/home/xxx/Programación/proyectos/plasmoides/test instalado con éxito

Затем я могу использовать его на рабочем столе KDE, и все в порядке. Это показано на рабочем столе, с текстовой меткой.

Но теперь, если я изменю текст метки "prueba2", я удалю и переустановлю плагин следующим образом

$ plasmapkg2 --remove test 
Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() for "" instead of kservice_desktop_to_json() in your CMake code.
Calling KPluginInfo::property("X-KDE-PluginInfo-Name") is deprecated, use KPluginInfo::pluginName() in "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/packagestructure/plasma_packagestructure_share.so" instead.
Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() for "" instead of kservice_desktop_to_json() in your CMake code.
Calling KPluginInfo::property("X-KDE-PluginInfo-Name") is deprecated, use KPluginInfo::pluginName() in "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/packagestructure/plasma_packagestructure_share.so" instead.
Generated  "/home/xxx/.local/share/plasma/plasmoids//kpluginindex.json"  ( 2  plugins)
/home/xxx/Programación/proyectos/plasmoides/test desinstalado con éxito

>xxx@eleanor:~/Programación/proyectos/plasmoides$ plasmapkg2 --install test
pluginname:  "org.matrixland.test"
Generated  "/home/alberto/.local/share/plasma/plasmoids//kpluginindex.json"  ( 3  plugins)
/home/alberto/Programación/proyectos/plasmoides/test instalado con éxito

Если сейчас, я добавляю его снова на рабочий стол, я вижу старый текст вместо нового. В каталоге /home/xxx/.local/share/plasma/plasmoids/org.matrixland.test я проверил, что источник обновлен и обновлен, поэтому я не могу догадаться, почему я получаю старый текст вместо новый.

Очевидно, моя проблема в том, что ни одно из изменений, которые я делаю в qml, не отражается в виджете, а не только текстовые изменения. Я не знаю, делаю ли я что-то не так, или я должен сделать что-то еще, чтобы обновить виджет. Кто-нибудь может мне помочь с этим?

Информация о версии KDE и Qt

1 ответ

Решение

Это потому, что старый QML все еще "кэшируется". Вам нужно будет перезапустить Plasmashell, чтобы увидеть изменения.

killall plasmashell; kstart5 plasmashell

Я использовал этот скрипт для переустановки апплетов, когда я хочу протестировать вживую. Когда я хочу быстро протестировать, я буду использовать plasmoidviewer с:

plasmoidviewer -a package -l bottomedge -f horizontal

как в этом сценарии.

Другие вопросы по тегам