Bug 116429 - [Patch] Display Transfer remaining time xx:xx:xx
Summary: [Patch] Display Transfer remaining time xx:xx:xx
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: 0.18
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Ismail Donmez
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-15 16:13 UTC by Stephen Leaf
Modified: 2010-07-01 16:16 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Patch to fix the reported problems. (919 bytes, patch)
2005-11-15 16:15 UTC, Stephen Leaf
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stephen Leaf 2005-11-15 16:13:57 UTC
Version:           0.18 (using KDE KDE 3.4.3)
Installed from:    Gentoo Packages

Here is a patch to always have the remaining time being displayed in a xx:xx:xx format.
exp: 01:00:09
currently the example would get displayed as 
1:9
which is obviously not right.

This will also make it look cleaner than
2:15:3
30:9
Comment 1 Stephen Leaf 2005-11-15 16:15:15 UTC
Created attachment 13469 [details]
Patch to fix the reported problems.
Comment 2 Stephen Leaf 2005-11-15 16:23:26 UTC
Comment on attachment 13469 [details]
Patch to fix the reported problems.

>--- konversation-0.18/konversation/src/dcctransfer.cpp.old	2005-11-15 08:41:12.760682384 -0600
>+++ konversation-0.18/konversation/src/dcctransfer.cpp	2005-11-15 08:43:25.387520040 -0600
>@@ -475,14 +475,15 @@
>     int remHour = remTime / 3600; remTime -= remHour * 3600;
>     int remMin = remTime / 60; remTime -= remMin * 60;
>     QString text;
>-    if ( remHour )
>-      text += QString::number( remHour ) + ":";
>-    if ( remMin )
>-      text += QString::number( remMin ) + ":";
>-    if ( text.isEmpty() )
>-      text = i18n("%1 sec").arg( QString::number( remTime ) );
>-    else
>-      text += QString::number( remTime );
>+    if ( remHour < 10 )
>+      text += "0";
>+    text += QString::number( remHour ) + ":";
>+    if ( remMin < 10 )
>+      text += "0";
>+    text += QString::number( remMin ) + ":";
>+    if ( remTime < 10 )
>+      text += "0";
>+    text += QString::number( remTime );
>     return text;
>   }
> }
Comment 3 Ismail Donmez 2005-11-15 16:26:28 UTC
strm, please review and apply this patch. Currently remaining time looks real bad.
Comment 4 Ismail Donmez 2005-11-15 16:27:29 UTC
Wishlist->Normal
Comment 5 Shintaro Matsuoka 2005-11-15 18:49:18 UTC
SVN commit 480603 by shin:

change the format of remaining time on DCC panel to simple HH:MM:SS style.

BUG: 116429
Thank you for the report and the patch.

 M  +7 -17     dcctransfer.cpp  


--- trunk/extragear/network/konversation/src/dcctransfer.cpp #480602:480603
@@ -469,26 +469,16 @@
 
 QString DccTransfer::getTimeRemainingPrettyText() const
 {
+    QString text;
+
     if ( m_timeRemaining == TIME_REMAINING_NOT_AVAILABLE )
-        return QString::null;
+        ;
     else if ( m_timeRemaining == TIME_REMAINING_INFINITE )
-        return QString( "?" );
+        text = "?";
     else
-    {
-        int remTime = m_timeRemaining;
-        int remHour = remTime / 3600; remTime -= remHour * 3600;
-        int remMin = remTime / 60; remTime -= remMin * 60;
-        QString text;
-        if ( remHour )
-            text += QString::number( remHour ) + ":";
-        if ( remMin )
-            text += QString::number( remMin ) + ":";
-        if ( text.isEmpty() )
-            text = i18n("%1 sec").arg( QString::number( remTime ) );
-        else
-            text += QString::number( remTime );
-        return text;
-    }
+        text = QTime().addSecs( m_timeRemaining ).toString( "hh:mm:ss" );
+
+    return text;
 }
 
 QString DccTransfer::getCPSPrettyText() const
Comment 6 Shintaro Matsuoka 2005-11-16 08:48:42 UTC
SVN commit 480693 by shin:

stupid me
CCBUG: 116429

 M  +11 -1     dcctransfer.cpp  


--- trunk/extragear/network/konversation/src/dcctransfer.cpp #480692:480693
@@ -476,8 +476,18 @@
     else if ( m_timeRemaining == TIME_REMAINING_INFINITE )
         text = "?";
     else
-        text = QTime().addSecs( m_timeRemaining ).toString( "hh:mm:ss" );
+    {
+        int remSec = m_timeRemaining; 
+        int remHour = remSec / 3600; remSec -= remHour * 3600; 
+        int remMin = remSec / 60; remSec -= remMin * 60; 
 
+        // remHour can be more than 25, so we can't use QTime here.
+        text = QString( "%1:%2:%3" )
+	  .arg( QString::number( remHour ).rightJustify( 2, '0', false ) )
+	  .arg( QString::number( remMin ).rightJustify( 2, '0' ) )
+	  .arg( QString::number( remSec ).rightJustify( 2, '0' ) );
+    }
+
     return text;
 }
 
Comment 7 Shintaro Matsuoka 2010-07-01 16:16:47 UTC
commit 63be6aa23a5dc2c914682d9d765a4fffba50c89f
Author: Shintaro Matsuoka <shin@shoegazed.org>
Date:   Tue Nov 15 17:49:12 2005 +0000

    change the format of remaining time on DCC panel to simple HH:MM:SS style.
    
    BUG: 116429
    Thank you for the report and the patch.
    
    svn path=/trunk/extragear/network/konversation/; revision=480603

diff --git a/src/dcctransfer.cpp b/src/dcctransfer.cpp
index 6b46e38..847733a 100644
--- a/src/dcctransfer.cpp
+++ b/src/dcctransfer.cpp
@@ -469,26 +469,16 @@ QString DccTransfer::getPositionPrettyText( bool detailed ) const
 
 QString DccTransfer::getTimeRemainingPrettyText() const
 {
+    QString text;
+
     if ( m_timeRemaining == TIME_REMAINING_NOT_AVAILABLE )
-        return QString::null;
+        ;
     else if ( m_timeRemaining == TIME_REMAINING_INFINITE )
-        return QString( "?" );
+        text = "?";
     else
-    {
-        int remTime = m_timeRemaining;
-        int remHour = remTime / 3600; remTime -= remHour * 3600;
-        int remMin = remTime / 60; remTime -= remMin * 60;
-        QString text;
-        if ( remHour )
-            text += QString::number( remHour ) + ":";
-        if ( remMin )
-            text += QString::number( remMin ) + ":";
-        if ( text.isEmpty() )
-            text = i18n("%1 sec").arg( QString::number( remTime ) );
-        else
-            text += QString::number( remTime );
-        return text;
-    }
+        text = QTime().addSecs( m_timeRemaining ).toString( "hh:mm:ss" );
+
+    return text;
 }
 
 QString DccTransfer::getCPSPrettyText() const