1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-26 17:47:37 +00:00

(qt) experiment with making the statusbar's speed/ratio, the desktop icon's tooltip, and the delegate's shortTransferString() all behave the same wrt when to show which transfer speeds

This commit is contained in:
Jordan Lee 2013-02-07 21:07:16 +00:00
parent 51c1daeb9a
commit 716a2f2c5c
3 changed files with 51 additions and 24 deletions

View file

@ -746,21 +746,40 @@ TrMainWindow :: refreshTrayIconSoon ()
void
TrMainWindow :: refreshTrayIcon ()
{
const QString idle = tr ("Idle");
const Speed u (myModel.getUploadSpeed ());
const Speed d (myModel.getDownloadSpeed ());
Speed upSpeed, downSpeed;
size_t upCount, downCount;
QString tip;
myTrayIcon.setToolTip (tr ("Transmission\nUp: %1\nDown: %2")
.arg (u.isZero () ? idle : Formatter::speedToString (u))
.arg (d.isZero () ? idle : Formatter::speedToString (d)));
myModel.getTransferSpeed (upSpeed, upCount, downSpeed, downCount);
if (!upCount && !downCount)
{
tip = tr ("Idle");
}
else if (downCount)
{
tip = tr( "%1 %2" ).arg(Formatter::downloadSpeedToString(downSpeed))
.arg(Formatter::uploadSpeedToString(upSpeed));
}
else if (upCount)
{
tip = Formatter::uploadSpeedToString(upSpeed);
}
myTrayIcon.setToolTip (tip);
}
void
TrMainWindow :: refreshStatusBar ()
{
myUploadSpeedLabel->setText (Formatter::uploadSpeedToString(myModel.getUploadSpeed()));
Speed upSpeed, downSpeed;
size_t upCount, downCount;
myModel.getTransferSpeed (upSpeed, upCount, downSpeed, downCount);
myDownloadSpeedLabel->setText (Formatter::downloadSpeedToString(myModel.getDownloadSpeed()));
myUploadSpeedLabel->setText (Formatter::uploadSpeedToString(upSpeed));
myUploadSpeedLabel->setVisible (downCount || upCount);
myDownloadSpeedLabel->setText (Formatter::downloadSpeedToString(downSpeed));
myDownloadSpeedLabel->setVisible (downCount);
myNetworkLabel->setVisible (!mySession.isServer ());

View file

@ -230,22 +230,28 @@ TorrentModel :: removeTorrent( int id )
}
}
Speed
TorrentModel :: getUploadSpeed( ) const
void
TorrentModel :: getTransferSpeed (Speed & uploadSpeed,
size_t & uploadPeerCount,
Speed & downloadSpeed,
size_t & downloadPeerCount)
{
Speed up;
foreach( const Torrent * tor, myTorrents )
up += tor->uploadSpeed( );
return up;
}
Speed upSpeed, downSpeed;
size_t upCount=0, downCount=0;
Speed
TorrentModel :: getDownloadSpeed( ) const
{
Speed down;
foreach( const Torrent * tor, myTorrents )
down += tor->downloadSpeed( );
return down;
foreach (const Torrent * const tor, myTorrents)
{
upSpeed += tor->uploadSpeed ();
upCount += tor->peersWeAreUploadingTo ();
downSpeed += tor->downloadSpeed ();
downCount += tor->webseedsWeAreDownloadingFrom();
downCount += tor->peersWeAreDownloadingFrom();
}
uploadSpeed = upSpeed;
uploadPeerCount = upCount;
downloadSpeed = downSpeed;
downloadPeerCount = downCount;
}
QSet<int>

View file

@ -57,8 +57,10 @@ class TorrentModel: public QAbstractListModel
QSet<int> getIds( ) const;
public:
Speed getUploadSpeed( ) const;
Speed getDownloadSpeed( ) const;
void getTransferSpeed (Speed & uploadSpeed,
size_t & uploadPeerCount,
Speed & downloadSpeed,
size_t & downloadPeerCount);
signals:
void torrentsAdded( QSet<int> );