[SailfishDevel] QML IconButton in SFOS 3.1

Rinigus rinigus.git at gmail.com
Wed Aug 14 14:14:34 UTC 2019


Thank you for suggestion! On my install, I get black icons ok, but the white on black background get to black on black. Whether its 0s or Fs. 

Rinigus

On Wednesday, 14 August 2019, Slava Monich wrote:
> Apparently properties of type color don't want to be undefined (now I 
> don't understand why I'm not getting the warning)  - have you tried 
> something like "#00000000" instead of undefined?
> 
> -S.
> 
> > Hi Slava,
> >
> > my code, corresponding snippet:
> >
> >             IconButton {
> >                 id: image
> >                 anchors.centerIn: parent
> >                 down: pressed || parent.pressed
> >                 icon.opacity: iconOpacity
> >                 icon.source: iconName || iconSource
> >                 icon.sourceSize.height: iconHeight
> >                 icon.sourceSize.width: iconWidth
> >                 onClicked: item.clicked()
> >
> >                 Component.onCompleted: {
> >                     if ("color" in icon) {
> >                         icon.color = undefined
> >                     }
> >                 }
> >             }
> >
> > On SFOS 3.0.3.9 (ported to OnePlus X), I get errors for a line with 
> > icon.color = undefined :
> >
> > file:///... Error: Cannot assign [undefined] to QColor
> >
> > So, it seems that this property was introduced before 3.1.x, but not 
> > used in 3.0.3.
> >
> > Rinigus
> >
> >
> >
> > On Wed, Aug 14, 2019 at 1:07 PM Slava Monich <slava.monich at jolla.com 
> > <mailto:slava.monich at jolla.com>> wrote:
> >
> >     Hi Rinigus,
> >
> >     AFAICT icon.color appeared in 3.1 and it wasn't there before.
> >
> >     This piece of QML seems to work for me without any warnings on
> >     both 2.0.1.7 (no icon.color) and 3.1.1.xxx (latest devel, has
> >     icon.color):
> >
> >         IconButton {
> >             icon.source: "image://theme/icon-m-refresh"
> >             Component.onCompleted: {
> >                 if ("color" in icon) {
> >                     icon.color = undefined
> >                 }
> >             }
> >         }
> >
> >     I'm not sure if it does what you want it to do, but it doesn't
> >     produce any warnings!
> >
> >     And no, I'm not in a position to formulate the official position :)
> >
> >     Cheers,
> >
> >     -Slava
> >
> >
> >>     Hi,
> >>
> >>     it would be good to get some kind of official position on QML
> >>     IconButton issue. Is it considered for fixing or it will stay as
> >>     it is? Slava's suggestion didn't work since color member is
> >>     available on older versions of SFOS as well.
> >>
> >>     Rinigus
> >>
> >>     On Wed, Aug 7, 2019 at 2:29 PM rinigus <rinigus.git at gmail.com
> >>     <mailto:rinigus.git at gmail.com>> wrote:
> >>
> >>         Hi,
> >>
> >>         any ideas on how to fix this IconButton issue? Is there a way
> >>         to query SFOS version and make an ugly fix on the basis of
> >>         that...
> >>
> >>         Cheers,
> >>
> >>         Rinigus
> >>
> >>         On Sat, Aug 3, 2019 at 6:06 PM rinigus <rinigus.git at gmail.com
> >>         <mailto:rinigus.git at gmail.com>> wrote:
> >>
> >>             Slava,
> >>
> >>             unfortunately, it doesn't work. IconButton property icon
> >>             has color subpropery defined in earlier SFOS versions as
> >>             well. So,
> >>
> >>             IconButton{
> >>
> >>             id:image
> >>
> >>             [...]
> >>
> >>             Component.onCompleted:{
> >>
> >>             if("color"inimage.icon)
> >>
> >>             image.icon.color=undefined;
> >>
> >>             }
> >>
> >>             }
> >>
> >>             results in lots of warnings (Cannot assigned [undefined]
> >>             to QColor).
> >>
> >>             Maybe there is some var I can check in QML to state that
> >>             SFOS version is >= 3.1.0.0?
> >>
> >>             Rinigus
> >>
> >>             On Sat, Aug 3, 2019 at 5:33 PM Slava Monich
> >>             <slava.monich at jolla.com <mailto:slava.monich at jolla.com>>
> >>             wrote:
> >>
> >>                 I don't think there's an "official" way of
> >>                 maintaining backward compatibility but I'd humbly
> >>                 suggest something like if ("color" in icon) ...
> >>
> >>                 e.g. I do this kind of thing to notifications:
> >>
> >>                     Notification {
> >>                         id: clipboardNotification
> >>                         previewBody: "Copied to clipboard"
> >>                         Component.onCompleted: {
> >>                             if ("icon" in clipboardNotification) {
> >>                                 clipboardNotification.icon =
> >>                 "icon-s-clipboard"
> >>                             }
> >>                         }
> >>                     }
> >>
> >>                 Cheers,
> >>
> >>                 -Slava
> >>
>


More information about the Devel mailing list