Mailinglist Archive: yast-devel (73 mails)

< Previous Next >
[yast-devel] patch disk usage (was: repodata.c - clarification)
  • From: "Roberto Mannai" <robermann@xxxxxxxxx>
  • Date: Fri, 22 Aug 2008 23:34:57 +0200
  • Message-id: <414e44f70808221434r3265750aof05aadd21a48a4fd@xxxxxxxxxxxxxx>
Oops, forwarding to the right mailing list IMHO...


---------- Forwarded message ----------
From: Roberto Mannai <robermann@xxxxxxxxx>
Date: Fri, Aug 22, 2008 at 11:32 PM
Subject: [yast-devel] patch disk usage (was: repodata.c - clarification)
To: Stanislav Visnovsky <visnov@xxxxxxx>
Cc: zypp-devel@xxxxxxxxxxxx


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@xxxxxxxxxxxx
For additional commands, e-mail: yast-devel+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages