https://bugs.kde.org/show_bug.cgi?id=385429

            Bug ID: 385429
           Summary: Ability to sepecify kns:/providerHost/productId/linkId
                    in order to download the 2nd or 3rd zip for a
                    lookandfeel
           Product: frameworks-frameworkintegration
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: general
          Assignee: kdelibs-b...@kde.org
          Reporter: zrenf...@gmail.com
  Target Milestone: ---

LookAndFeels introduced the ability to set dependencies, that are downloaded
first before installing the look and feel package.
https://userbase.kde.org/Plasma/Create_a_Look_and_Feel_Package

Eg: X-KPackage-Dependencies=kns://plasmoids.knsrc/api.kde-look.org/1160672

It will call:
/usr/lib/x86_64-linux-gnu/libexec/kf5/kpackagehandlers/knshandler
kns://colorschemes.knsrc/api.kde-look.org/1001720

Which has it's source code here:
https://github.com/KDE/frameworkintegration/blob/master/src/kpackage-install-handlers/kns/main.cpp

In the file, it calls engine.install(entry);
the second argument (linkId) isn't supplied so it defaults to 1.

void install(KNSCore::EntryInternal entry, int linkId = 1);

This means it downloads the first link, which for me is the oldest version of
the widget typically.

https://api.kde-look.org/ocs/v1/content/download/1160672/1
tells it to download tiledmenu-v05-kde5.5.plasmoid

while
https://api.kde-look.org/ocs/v1/content/download/1160672/3
tells it to download the latest version tiledmenu-v18-kde5.9.plasmoid

So back in the kpackage-install-handlers/kns/main.cpp, I'd like to request it
to either accept

kns://plasmoids.knsrc/api.kde-look.org/1160672
kns://plasmoids.knsrc/api.kde-look.org/1160672/3

So something like:

-if (pathParts.size() != 2) {
+if (pathParts.size() < 2) {


+auto linkId = 1;
+if (pathParts.size() >= 3) {
+linkId = pathParts.at(0) converted to int


-...[providerid, &engine, &installedCount]...
+...[providerid, linkId, &engine, &installedCount]...


-engine.install(entry);
+engine.install(entry, linkId);

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to