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:
parent
51c1daeb9a
commit
716a2f2c5c
3 changed files with 51 additions and 24 deletions
|
@ -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 ());
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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> );
|
||||
|
|
Loading…
Reference in a new issue