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

Reply via email to