D6188: [Desktop] Pad cellWidth/cellHeight with the extra space

Chris Holland noreply at phabricator.kde.org
Wed Jun 21 18:34:40 UTC 2017


Zren added a comment.


  So before my commit, it was only needing to do:
  
    qml: cellHeight iconHeight 108
    qml: cellWidth iconWidth 92
    qml: cellHeight iconHeight 108
  
  with no updates after the panel is added.
  
  - After my patch logs: https://gist.github.com/Zren/2272e7c5ad6e8ff8e65b3480cddb9910
  - With isRootView check logs: https://gist.github.com/Zren/e9ad15929d376a5dc828b5ce8a8eda7f
  - Code I mentioned above: https://gist.github.com/Zren/e9fa35350673da3cb1dde8e7bb44b28c
  
  When the panel slides in, it seems to sometimes update at height=1979px, but it may skip that and just calculate at height=1050px (I have a 30px panel).
  
  We could check if ` && scrollArea.viewportHeight > 0` however that's still calculating the extra space a few times before the panel is added.
  
  https://gist.github.com/Zren/1d93dfb5e687e68732d470d26104bf6d
  
  Ideally we'd only want to calculate cellWidth/cellHeight once like it was before. seeing as how viewportHeight/viewportWidth is recalculated.
  
  We could also wait for the scrollArea component to complete loading.
  
    PlasmaExtras.ScrollArea {
        id: scrollArea
    
        readonly property int viewportWidth: ready && viewport ? Math.ceil(viewport.width) : 0
        readonly property int viewportHeight: ready && viewport ? Math.ceil(viewport.height) : 0
        property bool ready: false
        Component.onCompleted: {
            ready = true
        }
  
  which brings us to this before the panels are added.
  
    qml: cellHeight iconHeight 108
    qml: onCellHeightChanged 108
    qml: cellWidth iconWidth 92
    qml: onCellWidthChanged 92
    qml: cellHeight iconHeight 108
    qml: cellHeight iconHeight 108
    qml: cellWidth iconWidth 92
    qml: scrollArea.onCompleted
    qml: cellWidth iconWidth 92
    qml: cellHeight iconHeight 108
    qml: cellHeight iconHeight 108
    qml: cellWidth iconWidth 92
    qml:     availableColumns 20.869565217391305  = containerSize / cellSize 1920 92
    qml:     availableColumns 20  floored
    qml:     allColumnSize 1840
    qml:     extraSpace 80
    qml:     extraSpacing 4
    qml: cellWidth extraWidth 4
    qml: onCellWidthChanged 96
    qml: cellHeight iconHeight 108
    qml:     availableColumns 10  = containerSize / cellSize 1080 108
    qml:     availableColumns 10  floored
    qml:     allColumnSize 1080
    qml:     extraSpace 0
    qml:     extraSpacing 0                                                                                                                                                                                                                                                        
    qml: cellHeight extraHeight 0                                                         
  
  That seems good enough to me.
  
  After the panels are added... I'm not sure what else to do. There isn't really a way to tell plasmoid.screenGeomertry is animating. As for the binding loops, I'd need to rewrite https://phabricator.kde.org/D6201 to get rid of the binding loops on the label without breaking other stuff.

REPOSITORY
  R119 Plasma Desktop

REVISION DETAIL
  https://phabricator.kde.org/D6188

To: Zren, hein
Cc: anthonyfieroni, broulik, plasma-devel, ZrenBot, spstarr, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170621/d7da3197/attachment.html>


More information about the Plasma-devel mailing list