Oops, forwarding to the right mailing list IMHO... ---------- Forwarded message ---------- From: Roberto Mannai <robermann@gmail.com> Date: Fri, Aug 22, 2008 at 11:32 PM Subject: [yast-devel] patch disk usage (was: repodata.c - clarification) To: Stanislav Visnovsky <visnov@suse.cz> Cc: zypp-devel@opensuse.org Hi Stano
I believe zypp-devel is the proper mailing list for this. Yes, thank you, they clared the question.
I append the patch, trying to resolve the enhancement in: https://bugzilla.novell.com/show_bug.cgi?id=399239 - "YaST's software installation modules should show disk space modification". It adds the string " - Installing x MB" or " - Removing x MB" to the tooltip on the "Free space" column (in the disk usage widget) . The disk usage variation will work for the same packages that change the disk usage bar; the zypp-devel mailing list pointed out that the repositories with disk usage attribute are those soddisfying the command: dumpsolv /var/cache/zypp/solv/MYREPO/solv | grep diskusage Here the patch, feel free to change (or throw away :)): Index: qt/src/QY2DiskUsageList.cc =================================================================== --- qt/src/QY2DiskUsageList.cc (revision 50308) +++ qt/src/QY2DiskUsageList.cc (working copy) @@ -229,9 +229,20 @@ if ( nameCol() >= 0 ) setText( nameCol(), name() ); if ( deviceNameCol() >= 0 ) setText( deviceNameCol(), deviceName() ); } + - if ( usedSizeCol() < 0 ) - setToolTip( freeSizeCol(), _( "Used %1" ).arg( usedSize().form( 0, 1, true ).c_str() ) ); + if ( usedSizeCol() < 0 ) { + QString message = _( "Used %1" ).arg( usedSize().form( 0, 1, true ).c_str()); + + if(deltaSize() > 0){ + message = message + _( " - Installing %1" ).arg( deltaSize().form( 0, 1, true ).c_str() ); + + } else if(deltaSize() < 0){ + message = message + _( " - Removing %1" ).arg( deltaSize().form( 0, 1, true ).c_str() ); + + } + setToolTip( freeSizeCol(), message); + } } Index: qt/src/QY2DiskUsageList.h =================================================================== --- qt/src/QY2DiskUsageList.h (revision 50308) +++ qt/src/QY2DiskUsageList.h (working copy) @@ -132,6 +132,13 @@ * is the default implementation. **/ virtual FSize freeSize() const; + + /** + * The delta partition space, after installation / removal. + * Derived classes may choose to reimplement this method. + * Default implementation returns 0. + **/ + virtual FSize deltaSize() const { return 0; } /** * The currently used percentage ( 0..100 ) of this partition. Index: qt-pkg/src/YQPkgDiskUsageList.cc =================================================================== --- qt-pkg/src/YQPkgDiskUsageList.cc (revision 50323) +++ qt-pkg/src/YQPkgDiskUsageList.cc (working copy) @@ -114,9 +114,16 @@ const ZyppPartitionDu & partitionDu = *it; YQPkgDiskUsageListItem * item = _items[ QString::fromUtf8(partitionDu.dir.c_str()) ]; - if ( item ) - item->updateDuData( partitionDu ); - else + if ( item ) { + int usedBefore = item->usedSize(); + item->updateDuData( partitionDu ); + int usedAfter = item->usedSize(); + int usedDelta= usedAfter - usedBefore; + if (usedDelta != 0){ + item->setDeltaSize(usedDelta); + } + + } else yuiError() << "No entry for mount point " << partitionDu.dir << endl; } @@ -258,6 +265,7 @@ , _partitionDu( partitionDu ) , _pkgDiskUsageList( parent ) { + _deltaSize = 0; yuiDebug() << "disk usage list entry for " << partitionDu.dir << endl; } @@ -268,8 +276,20 @@ return FSize( _partitionDu.pkg_size, FSize::K ); } +void +YQPkgDiskUsageListItem::setDeltaSize(FSize aDelta) +{ + _deltaSize += aDelta; +} FSize +YQPkgDiskUsageListItem::deltaSize() const +{ + return _deltaSize; +} + + +FSize YQPkgDiskUsageListItem::totalSize() const { return FSize( _partitionDu.total_size, FSize::K ); Index: qt-pkg/src/YQPkgDiskUsageList.h =================================================================== --- qt-pkg/src/YQPkgDiskUsageList.h (revision 50323) +++ qt-pkg/src/YQPkgDiskUsageList.h (working copy) @@ -234,6 +234,19 @@ * Reimplemented from QY2DiskUsageListItem. **/ virtual FSize totalSize() const; + + /** + * The delta partition space, after installation / removal. + * + * Reimplemented from QY2DiskUsageListItem. + **/ + virtual FSize deltaSize() const; + + /** + * Set delta partition space, after marking packages for installation / removal. + * + **/ + virtual void setDeltaSize(FSize aSize) ; /** * The name to display for this partition ( the mount point ). @@ -263,6 +276,7 @@ ZyppPartitionDu _partitionDu; YQPkgDiskUsageList * _pkgDiskUsageList; + FSize _deltaSize; }; Best regards Roberto Mannai -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org