> On Sept. 1, 2014, 4:53 p.m., David Edmundson wrote: > > I need some the concept explaining, why would a developer set a > > fallbackpackage? > > Is it not always org.kde.breeze.desktop? > > Marco Martin wrote: > It would usually be the packagestructure setting it, in initPackage(), so > setFallbackPackage follows the same pattern as addFileDefinition(), > setRequired() and the likes. > > so, for the packages of type Plasma/LookAndFeel it would be > org.kde.breeze.desktop > for packages of types Plasma/Shell, it would be org.kde.desktop > > even tough at some point it will probably have to be something more > complicated, like the default lookandfeel one depending from the current > shell, if ever needed, will be feasible. > > David Edmundson wrote: > Ah, makes sense. Thanks. > > Do you really expect a linked link big enough to cycle? I can't really > see it going 3 deep. The cycle check is call cool though :) > > Could you add a warning in setFallbackPackage() if it finds a cycle and > no-ops. Could be confusing to debug otherwise. > > Marco Martin wrote: > added warning.. > i see it very unlikely that it's going to go deep, but better safe than > sorry :p > > Aaron J. Seigo wrote: > "Is it not always org.kde.breeze.desktop?" > > No, because of third party developers. Not every project targets the > desktop. > > That said, this applies to any use of Plasma::Package, which is meant to > be a generic concept not something just for the limited set of package types > plasmashell uses. It is helpful to think of it as a concept on its own rather > than in the context of Plasma Desktop. Other Frameworks using applications > really ought to be able to use Plasma::Package for their "bundles of data" > needs. > > "It would usually be the packagestructure setting it, in initPackage()" > > In the case of Shell and Look & Feel packages I would caution against > doing this, as it biases them to Plasma Desktop. The tablet interface in > Plasma Active will need its own "root" L&F; falling back to components from > breeze.desktop will likely be both an oversight and create undesirable > results. It also would mean that every time someone touches a component in > breeze.desktop that is used by the tablet UX, they will be required to ensure > it remains appropriate on touch. For devices even further afield from desktop > than tablets this becomes even more of an issue, and those devices may not > want to ship breeze.desktop at all. Of course, there is the alternative which > is to just tell system integrators to call their root package > "org.kde.breeze.desktop" but I'm not sure that would be desirable. > > While setting this in initPackage is a reasonable stop-gap for now, this > really ought to be something that gets defined in e.g. the shell package and > set in plasmashell so that it can be tied to the shell. If no fallback is > defined in the shell package, fair enough -> no fallback :) > > Marco Martin wrote: > "While setting this in initPackage is a reasonable stop-gap for now" > for now it does that, I think it's fine for a first step to get rid of > lookandfeelaccess. I would advise to provide a full complete package anyways, > soat start wouldn't matter much. > > Then, after this, how to make it depend from the shell? it may depend on > the shell kded, but it would depend from quite a lot of boilerplate, also it > should stay possible to configure it, so in the config file it would end up > with pairs shell/l&f packages i guess. > > Or, to make it a bit more primitive, but still functional for the scope, > the fallback could be from a configuration file as well, so integrators could > just ship such fine. > For the shell package instead, the fallback *may* be defined in its > metadata desktop file? (not sure this could really work for the l&f one) > > Aaron J. Seigo wrote: > "how to make it depend from the shell?" > > Looking only at the question of default fallback (not user config) then > your suggestion should work: > > "the fallback may be defined in its metadata desktop file?" > > This would indeed allow L&F customizations to define the source theme as > its fallback. (We'll ignore dependency resolution..) The default fallback > could be defined in the shell package's metadata file (so org.kde.desktop > would set that to org.kde.breeze.desktop, e.g.) so L&F without a defined > fallback would get the default fallback. > > For shell packages, I would agree that having complete packages is > desirable and safest and there should perhaps be no default fallback for > them. All or nothing, or else an explicitly defined fallback in its metadata > (as with any other package supporting fallbacks) > > "it would depend from quite a lot of boilerplate" > > The default fallback should be determined in one central place > (plasmashell or an external daemon, exposing the setting as a DBus property > on a well-known DBus service?) which only leaves applying it appropriately > wherever these packages are used. That indeed means some boilerplate, but > *that* could go into the Plasma/LookAndFeel package structure. So it wouldn't > have a literal value, but the logic necessary to fetch what the current > fallback value is and apply it. > > Marco Martin wrote: > "That indeed means some boilerplate, but that could go into the > Plasma/LookAndFeel package structure" > hmm for that I can think it could make sense having the structure > changing the path of all its packages after a signal from given kded.. > but the structure bookeeping the packages kinda stinks..
If the L&F fallback changes, that implies the shell package has changed; perhaps it then makes more sense to just re-create the L&F package as well? Then there is no bookkeeping required in PackageStructure. The application would be responsible for refreshing its relevant packages, which is another kind of boilerplate though a simpler one and one that is likely to be application-specific? - Aaron J. ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/120029/#review65648 ----------------------------------------------------------- On Sept. 1, 2014, 7:04 p.m., Marco Martin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/120029/ > ----------------------------------------------------------- > > (Updated Sept. 1, 2014, 7:04 p.m.) > > > Review request for KDE Frameworks and Plasma. > > > Repository: plasma-framework > > > Description > ------- > > introduces the concept of fallback for packages. > this will replace the private statically linked class LookAndFeelAccess in > workspace and desktop, but be more generic so will be usable for things like > the shell package as well. > The feature has an autotest as well to check it's actually working and > doesn't break other stuff. > > the package structures that will use this, will just set a package in their > structure::initPackage() > tough for the user of Package in c++ is possible as well to set the fallback > package outside the structure if custm things are neede (it's guarded that > cycles don't occur in the fallback chain) > > > Diffs > ----- > > autotests/CMakeLists.txt 4e64f38 > autotests/data/testfallbackpackage/contents/ui/main.qml PRE-CREATION > autotests/data/testfallbackpackage/metadata.desktop PRE-CREATION > autotests/data/testpackage/contents/ui/otherfile.qml PRE-CREATION > autotests/fallbackpackagetest.h PRE-CREATION > autotests/fallbackpackagetest.cpp PRE-CREATION > src/plasma/data/servicetypes/plasma-shell.desktop e2c83ba > src/plasma/package.h 2c686d7 > src/plasma/package.cpp 6ad3321 > src/plasma/private/package_p.h d902eb1 > > Diff: https://git.reviewboard.kde.org/r/120029/diff/ > > > Testing > ------- > > > Thanks, > > Marco Martin > >
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel