diff --git a/src/statusbar.cpp b/src/statusbar.cpp index 408f2a2bd..6073ed98c 100644 --- a/src/statusbar.cpp +++ b/src/statusbar.cpp @@ -55,12 +55,10 @@ StatusBar::StatusBar(QStatusBar *bar) connecStatusLblIcon = new QPushButton(bar); connecStatusLblIcon->setFlat(true); connecStatusLblIcon->setFocusPolicy(Qt::NoFocus); - connecStatusLblIcon->setFixedWidth(32); connecStatusLblIcon->setCursor(Qt::PointingHandCursor); connecStatusLblIcon->setIcon(QIcon(":/Icons/skin/firewalled.png")); connecStatusLblIcon->setToolTip(QString::fromUtf8("")+tr("Connection status:")+QString::fromUtf8("
")+QString::fromUtf8("")+tr("No direct connections. This may indicate network configuration problems.")+QString::fromUtf8("")); dlSpeedLbl = new QPushButton(bar); - dlSpeedLbl->setIconSize(QSize(16,16)); dlSpeedLbl->setIcon(QIcon(":/Icons/skin/download.png")); //dlSpeedLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); connect(dlSpeedLbl, SIGNAL(clicked()), this, SLOT(capDownloadSpeed())); @@ -68,18 +66,7 @@ StatusBar::StatusBar(QStatusBar *bar) dlSpeedLbl->setFocusPolicy(Qt::NoFocus); dlSpeedLbl->setCursor(Qt::PointingHandCursor); - altSpeedsBtn = new QPushButton(bar); - altSpeedsBtn->setFixedWidth(36); - altSpeedsBtn->setIconSize(QSize(32,32)); - altSpeedsBtn->setFlat(true); - altSpeedsBtn->setFocusPolicy(Qt::NoFocus); - altSpeedsBtn->setCursor(Qt::PointingHandCursor); - updateAltSpeedsBtn(pref->isAltBandwidthEnabled()); - - connect(altSpeedsBtn, SIGNAL(clicked()), this, SLOT(toggleAlternativeSpeeds())); - upSpeedLbl = new QPushButton(bar); - upSpeedLbl->setIconSize(QSize(16,16)); upSpeedLbl->setIcon(QIcon(":/Icons/skin/seeding.png")); //upSpeedLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); connect(upSpeedLbl, SIGNAL(clicked()), this, SLOT(capUploadSpeed())); @@ -88,20 +75,39 @@ StatusBar::StatusBar(QStatusBar *bar) upSpeedLbl->setCursor(Qt::PointingHandCursor); DHTLbl = new QLabel(tr("DHT: %1 nodes").arg(0), bar); DHTLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); + + altSpeedsBtn = new QPushButton(bar); + altSpeedsBtn->setFlat(true); + altSpeedsBtn->setFocusPolicy(Qt::NoFocus); + altSpeedsBtn->setCursor(Qt::PointingHandCursor); + updateAltSpeedsBtn(pref->isAltBandwidthEnabled()); + connect(altSpeedsBtn, SIGNAL(clicked()), this, SLOT(toggleAlternativeSpeeds())); + + QRect labelRect = dlSpeedLbl->fontMetrics().boundingRect(" XX [0.000,0 XiX/s] 0.000,00 XiX/s (000,0 XiX) "); + if (labelRect.height() < 26) + labelRect.setHeight(26); + dlSpeedLbl->setIconSize(QSize(16,16)); + upSpeedLbl->setIconSize(QSize(16,16)); + connecStatusLblIcon->setFixedHeight(labelRect.height()); + altSpeedsBtn->setIconSize(QSize(30,30)); // cut out blank parts + altSpeedsBtn->setFixedHeight(labelRect.height()); + dlSpeedLbl->setMinimumSize(labelRect.width(), labelRect.height()); + upSpeedLbl->setMinimumSize(labelRect.width(), labelRect.height()); + statusSep1 = new QFrame(bar); - statusSep1->setFixedSize(3, dlSpeedLbl->fontMetrics().height()); + statusSep1->setFixedSize(3, labelRect.height()); statusSep1->setFrameStyle(QFrame::VLine); statusSep1->setFrameShadow(QFrame::Raised); statusSep2 = new QFrame(bar); - statusSep2->setFixedSize(3, dlSpeedLbl->fontMetrics().height()); + statusSep2->setFixedSize(3, labelRect.height()); statusSep2->setFrameStyle(QFrame::VLine); statusSep2->setFrameShadow(QFrame::Raised); statusSep3 = new QFrame(bar); - statusSep3->setFixedSize(3, dlSpeedLbl->fontMetrics().height()); + statusSep3->setFixedSize(3, labelRect.height()); statusSep3->setFrameStyle(QFrame::VLine); statusSep3->setFrameShadow(QFrame::Raised); statusSep4 = new QFrame(bar); - statusSep4->setFixedSize(3, dlSpeedLbl->fontMetrics().height()); + statusSep4->setFixedSize(3, labelRect.height()); statusSep4->setFrameStyle(QFrame::VLine); statusSep4->setFrameShadow(QFrame::Raised); layout->addWidget(DHTLbl); @@ -116,11 +122,9 @@ StatusBar::StatusBar(QStatusBar *bar) bar->addPermanentWidget(container); container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - //bar->setStyleSheet("QWidget {padding-top: 0; padding-bottom: 0; margin-top: 0; margin-bottom: 0;}\n"); - container->setContentsMargins(0, 0, 0, 1); - bar->setContentsMargins(0, 0, 0, 0); - container->setFixedHeight(dlSpeedLbl->fontMetrics().height()+7); - bar->setFixedHeight(dlSpeedLbl->fontMetrics().height()+9); + bar->setStyleSheet("QWidget {padding: 0; margin: 0;}\n QPushButton {padding: 3px;}\n"); + container->adjustSize(); + bar->adjustSize(); // Is DHT enabled DHTLbl->setVisible(pref->isDHTEnabled()); refreshTimer = new QTimer(bar); @@ -182,8 +186,16 @@ void StatusBar::refreshStatusBar() { //statusSep1->setVisible(false); } // Update speed labels - dlSpeedLbl->setText(tr("%1/s", "Per second").arg(misc::friendlyUnit(sessionStatus.payload_download_rate))+" ("+misc::friendlyUnit(sessionStatus.total_payload_download)+")"); - upSpeedLbl->setText(tr("%1/s", "Per second").arg(misc::friendlyUnit(sessionStatus.payload_upload_rate))+" ("+misc::friendlyUnit(sessionStatus.total_payload_upload)+")"); + QString speedLbl = misc::friendlyUnit(sessionStatus.payload_download_rate, true)+" ("+misc::friendlyUnit(sessionStatus.total_payload_download)+")"; + int speedLimit = QBtSession::instance()->getSession()->settings().download_rate_limit; + if (speedLimit) + speedLbl = "["+misc::friendlyUnit(speedLimit, true)+"] " + speedLbl; + dlSpeedLbl->setText(speedLbl); + speedLimit = QBtSession::instance()->getSession()->settings().upload_rate_limit; + speedLbl = misc::friendlyUnit(sessionStatus.payload_upload_rate, true)+" ("+misc::friendlyUnit(sessionStatus.total_payload_upload)+")"; + if (speedLimit) + speedLbl = "["+misc::friendlyUnit(speedLimit, true)+"] " + speedLbl; + upSpeedLbl->setText(speedLbl); } void StatusBar::updateAltSpeedsBtn(bool alternative) { @@ -196,6 +208,7 @@ void StatusBar::updateAltSpeedsBtn(bool alternative) { altSpeedsBtn->setToolTip(tr("Click to switch to alternative speed limits")); altSpeedsBtn->setDown(false); } + refreshStatusBar(); } void StatusBar::toggleAlternativeSpeeds() { @@ -225,6 +238,7 @@ void StatusBar::capDownloadSpeed() { if (!alt) pref->setGlobalDownloadLimit(new_limit/1024.); } + refreshStatusBar(); } } @@ -246,5 +260,6 @@ void StatusBar::capUploadSpeed() { if (!alt) Preferences::instance()->setGlobalUploadLimit(new_limit/1024.); } + refreshStatusBar(); } }