From 77c97b5b430cce35dcb878242393b800b1894e3a Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Thu, 10 Jul 2008 20:19:28 +0000 Subject: [PATCH] - FEATURE: DHT is always ON (no longer used as fallback) - FEATURE: The number of DHT nodes is displayed - COSMETIC: Transfer speed, ratio and DHT nodes are displayed in status bar --- Changelog | 5 ++ src/GUI.cpp | 49 ++++++++--- src/GUI.h | 8 ++ src/Icons/smile.png | Bin 1293 -> 0 bytes src/Icons/stare.png | Bin 1204 -> 0 bytes src/Icons/unhappy.png | Bin 1213 -> 0 bytes src/MainWindow.ui | 194 +++--------------------------------------- src/icons.qrc | 167 ++++++++++++++++++------------------ src/lang.qrc | 36 ++++---- src/main.cpp | 1 + src/search.qrc | 10 +-- src/src.pro | 4 +- 12 files changed, 168 insertions(+), 306 deletions(-) delete mode 100644 src/Icons/smile.png delete mode 100644 src/Icons/stare.png delete mode 100644 src/Icons/unhappy.png diff --git a/Changelog b/Changelog index 42a05b86f..2e9f1a38d 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,8 @@ +* Unknown - Christophe Dumez - v1.2.0 + - FEATURE: DHT is always ON (no longer used as fallback) + - FEATURE: The number of DHT nodes is displayed + - COSMETIC: Transfer speed, ratio and DHT nodes are displayed in status bar + * Unknown - Christophe Dumez - v1.1.0 - FEATURE: Web interface to control qbittorrent (Ishan Arora) - FEATURE: Can spoof Azureus peer id to avoid ban diff --git a/src/GUI.cpp b/src/GUI.cpp index 067cc304a..54f5cd082 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -23,6 +23,8 @@ #include #include #include +#include +#include #ifdef QT_4_4 #include #include @@ -115,8 +117,6 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis actionDelete_Permanently->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete_perm.png"))); actionTorrent_Properties->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/properties.png"))); actionCreate_torrent->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/new.png"))); - // Set default ratio - lbl_ratio_icon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/stare.png"))); // Fix Tool bar layout toolBar->layout()->setSpacing(7); // creating options @@ -208,12 +208,39 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis show(); } createKeyboardShortcuts(); + dlSpeedLbl = new QLabel(tr("DL: %1 KiB/s").arg("0.0")); + upSpeedLbl = new QLabel(tr("UP: %1 KiB/s").arg("0.0")); + ratioLbl = new QLabel(tr("Ratio: %1").arg("1.0")); + DHTLbl = new QLabel(tr("DHT: %1 Nodes").arg(0)); + statusSep1 = new QFrame(); + statusSep1->setFixedWidth(1); + statusSep1->setFrameStyle(QFrame::Box); + statusSep2 = new QFrame(); + statusSep2->setFixedWidth(1); + statusSep2->setFrameStyle(QFrame::Box); + statusSep3 = new QFrame(); + statusSep3->setFixedWidth(1); + statusSep3->setFrameStyle(QFrame::Box); + QMainWindow::statusBar()->addPermanentWidget(DHTLbl); + QMainWindow::statusBar()->addPermanentWidget(statusSep1); + QMainWindow::statusBar()->addPermanentWidget(dlSpeedLbl); + QMainWindow::statusBar()->addPermanentWidget(statusSep2); + QMainWindow::statusBar()->addPermanentWidget(upSpeedLbl); + QMainWindow::statusBar()->addPermanentWidget(statusSep3); + QMainWindow::statusBar()->addPermanentWidget(ratioLbl); qDebug("GUI Built"); } // Destructor GUI::~GUI() { qDebug("GUI destruction"); + delete dlSpeedLbl; + delete upSpeedLbl; + delete ratioLbl; + delete DHTLbl; + delete statusSep1; + delete statusSep2; + delete statusSep3; delete rssWidget; delete searchEngine; delete refresher; @@ -261,16 +288,9 @@ void GUI::updateRatio() { if(ratio > 10.) ratio = 10.; } - LCD_Ratio->display(QString(QByteArray::number(ratio, 'f', 1))); - if(ratio < 0.5) { - lbl_ratio_icon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/unhappy.png"))); - }else{ - if(ratio > 1.0) { - lbl_ratio_icon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/smile.png"))); - }else{ - lbl_ratio_icon->setPixmap(QPixmap(QString::fromUtf8(":/Icons/stare.png"))); - } - } + ratioLbl->setText(tr("Ratio: %1").arg(QString(QByteArray::number(ratio, 'f', 1)))); + // Update DHT nodes + DHTLbl->setText(tr("DHT: %1 Nodes").arg(QString::number(sessionStatus.dht_nodes))); } void GUI::on_actionWebsite_triggered() const { @@ -999,6 +1019,7 @@ void GUI::configureSession(bool deleteOptions) { sessionSettings.user_agent = "qBittorrent "VERSION; } sessionSettings.upnp_ignore_nonrouters = true; + sessionSettings.use_dht_as_fallback = false; BTSession->setSessionSettings(sessionSettings); // Bittorrent // * Max connections limit @@ -1282,8 +1303,8 @@ void GUI::on_actionTorrent_Properties_triggered() { void GUI::updateLists() { // update global informations - LCD_UpSpeed->display(QString(QByteArray::number(BTSession->getPayloadUploadRate()/1024., 'f', 1))); // UP LCD - LCD_DownSpeed->display(QString(QByteArray::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1))); // DL LCD + dlSpeedLbl = new QLabel(tr("DL: %1 KiB/s").arg(QString(QByteArray::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1)))); + upSpeedLbl = new QLabel(tr("UP: %1 KiB/s").arg(QString(QByteArray::number(BTSession->getPayloadUploadRate()/1024., 'f', 1)))); switch(getCurrentTabIndex()){ case 0: downloadingTorrentTab->updateDlList(); diff --git a/src/GUI.h b/src/GUI.h index 41e482b85..9b1af6a4f 100644 --- a/src/GUI.h +++ b/src/GUI.h @@ -52,6 +52,7 @@ class QTabWidget; class QLabel; class QModelIndex; class HttpServer; +class QFrame; class GUI : public QMainWindow, private Ui::MainWindow{ Q_OBJECT @@ -75,6 +76,13 @@ class GUI : public QMainWindow, private Ui::MainWindow{ bool force_exit; unsigned int refreshInterval; QTimer *refresher; + QLabel *dlSpeedLbl; + QLabel *upSpeedLbl; + QLabel *ratioLbl; + QLabel *DHTLbl; + QFrame *statusSep1; + QFrame *statusSep2; + QFrame *statusSep3; // Keyboard shortcuts QShortcut *switchSearchShortcut; QShortcut *switchSearchShortcut2; diff --git a/src/Icons/smile.png b/src/Icons/smile.png deleted file mode 100644 index 829967ff09f117f99cbbc465d97b3c49ffaadf0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1293 zcmV+o1@iidP)O(ZKvRKqt>r~b zB|{{~FHfWGhLxK?`eO<3%)Jvk(b+av>7jz52amYk-honrtyLS@Ub`Jb8q0!foh3Q? z^)$lFgNym_ljCi@?y|!L7u&AU-Z{?EqaRRGQo`fMql}H*X4j4?9F|2gm7ue$hv5ey zyxtYOTwY4mmI_cQ5+fI;U4e!wSDjj@NfICi7~W3CH3@%UT+_A`gX+~Da=$+64* z&b9l+7vFcYY1?6{DyuL}GaqU?on~lofbi5Huhuo<@pup-mqpvQ>Fn&}$-|#`b6+{B z&=u_pHf=F8(Vk{)$A!wo(0K3__?VfQK}v}bf{BR&8Esk>H$<@gd)F}Y&J_OmCCd2=;+|mrArJC4>J)85ucmm zHk zV=cCAqm%+Pwrvys=Lr?7!`ShsQr6j8F?D^fMrU*R5^iozypCtpcHC}vKGZ}aK_cA6 zD}np;J*gro%djj5N-46b2pfHODRB>=?f6p>n=AqbNZKC$4DTi(%W*iIq|+%pdWf1e zow%$FN=v3w1*B{jQVM+5B&Lpm&Mas<6A`}ghE}Pm#ezo?P85-`ojA-4h3*(a=;ylv zP~>OG0+Y_wmYy*Ojkn%CLP<#p zD^{$)FpRuP0F+Xs(`mxtFjubpf)0KDjI80&mcQnl^p+nVFg#_g^B23et->z{ky7IE zc(5!B!!VFi=G`<+oK7c}WidH&n}Y`ed0@j+*6J-kJ|F>H!KN1J3QPk?DR^gJmh)#n zB^HZe+e?e1lwx*vmJ45Mq&$N>i$M=f7vT(|UQQEnjuR{J>u_=rggu+EjA903e;oa_wf6 z$#f+}Yby{!G8-AeoxVeT-O5EwEnoG25Bi0xDLHoelpP;AIA73ZRb_az;VEl%1)KhV zH7!}D(Vk|NiPWRBwJIIWv2*xAnBCGUylVNEU#9;8L?arARHmU-00000NkvXXu0mjf Df2Cw1 diff --git a/src/Icons/stare.png b/src/Icons/stare.png deleted file mode 100644 index f003fbf716b572c3b7b05e0b6ed09b5df2e173e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1204 zcmV;l1WWsgP)P2H>42kuENfS&th$eWc0!>*0s6bn{Kw;^!E3nJ5?9R^Y%zGXdmIX@1FPY2#X1@3R zZ@%~a1czYj!F7+3@OOckZA5Z4fSZ{GVgc8qlc1I%!S3mG)O7ow^gY>MNUi)-ky;tN zD&(E&l!{s;A*1OTGG555!ZRTl$sH@@u~$K_A2!0B{?5CYCQ zHa4PITOLD!UBmFi3To@l!Rk1uIreeyN}4)9L_d(z-F_7kjyEXrU{?VhtNF|+DLik^TdN??q^(4wezPN7`64{j#6O)Ov!F#x1Y8~%)(gG#F)Nml5(1{7(huFx~QZv2?Tz+-P9>#-r z-ub>GSRkgaAFH*K11(6WNtnSpl#@>g7s`rvqq*92f9>(2HJ=R3_q}-XMP}sZrJ0e| z!}_At`^>UNQ(sgInrH4InZZsBV2yWJcH*Cto{HwLJQcf!76eXQJ<T zEFm*dGQ&SbLF``i;ujrH0Vl2=X++tro~3(>Z{5Df`Swnv6s!-gqQ0&km*!d!Tq&E( z(5Wee-aG>?3gr)U5%pBQv&B=fYe)dZBOiXJ`)l?OB`W#m`MZH073|q zQcO(58M}9h5`UKVt`XL)-$rF+HK|mJ_Vzy+zH^C>KWN64?7~joJQ3XT{YPT@`mx$< z^w(Z@d9!)^bT?}^?IXM{jIQg2QZ38k*3E0g#%{8?VHZB14v?%? zIl>I#I1W-uK;bwJvGIr0E{@@(9*wfH>%`dkHxa3q}iEzY-R##vEa#Os@iSYBab=z_5chbuQS zMEa+BWu3vH_m|-FXphNirsWRp3>PHrByaBrupRjP>j&75#=$+M)K+WrvdZQJ9e?Ne zBQnLIy(KIT3csOmg(Vrvw!HkQ>B@f=B+&Gt$y#nSJP9=bb6pg=Hg8#yG~jYkJy!f(7QDw*rpdP byiETE$0Y(fiwOvI00000NkvXXu0mjf2M$Ep diff --git a/src/MainWindow.ui b/src/MainWindow.ui index 230a88aea..d548c031d 100644 --- a/src/MainWindow.ui +++ b/src/MainWindow.ui @@ -21,190 +21,10 @@ 0 58 849 - 505 + 482 - - - - - 6 - - - 0 - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Total DL Speed: - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - true - - - QFrame::Raised - - - false - - - 6 - - - QLCDNumber::Flat - - - 0.000000000000000 - - - 0 - - - - - - - KiB/s - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Session ratio: - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - true - - - 4 - - - QLCDNumber::Flat - - - 1.000000000000000 - - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Total UP Speed: - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - true - - - false - - - 6 - - - QLCDNumber::Flat - - - 0.000000000000000 - - - - - - - KiB/s - - - Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - + @@ -310,6 +130,16 @@ + + + + 0 + 540 + 849 + 23 + + + Open diff --git a/src/icons.qrc b/src/icons.qrc index 614098e28..752c56698 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -1,106 +1,103 @@ - Icons/folder.png - Icons/qbittorrent32.png + Icons/add_file.png + Icons/add_folder.png + Icons/bt_settings.png + Icons/button_cancel.png + Icons/button_ok.png + Icons/configure.png + Icons/connection.png + Icons/description.png + Icons/downarrow.png + Icons/download.png + Icons/edit_clear.png + Icons/encrypted.png Icons/file.png - Icons/smile.png - Icons/qbittorrent22.png + Icons/filter.png + Icons/folder.png + Icons/gear.png + Icons/gnome-shutdown.png + Icons/home.png + Icons/loading.png + Icons/locale.png + Icons/log.png Icons/mascot.png - Icons/downarrow.png - Icons/unavailable.png + Icons/money.png + Icons/newmsg.png + Icons/password.png Icons/proxy.png - Icons/description.png - Icons/log.png - Icons/uparrow.png - Icons/home.png - Icons/unsubscribe.png - Icons/url.png - Icons/unsubscribe16.png - Icons/stare.png Icons/qbittorrent16.png - Icons/locale.png + Icons/qbittorrent22.png + Icons/qbittorrent32.png + Icons/refresh.png + Icons/rss16.png + Icons/rss32.png + Icons/sphere.png + Icons/sphere2.png Icons/splash.png - Icons/subscribe16.png - Icons/loading.png Icons/star.png - Icons/gnome-shutdown.png Icons/style.png - Icons/rss16.png - Icons/configure.png - Icons/connection.png - Icons/systemtray.png - Icons/sphere.png - Icons/add_folder.png - Icons/button_cancel.png - Icons/encrypted.png - Icons/wizard.png - Icons/edit_clear.png - Icons/rss32.png Icons/subscribe.png - Icons/bt_settings.png - Icons/password.png - Icons/newmsg.png - Icons/sphere2.png - Icons/button_ok.png - Icons/unhappy.png - Icons/add_file.png - Icons/filter.png - Icons/money.png - Icons/download.png + Icons/subscribe16.png + Icons/systemtray.png Icons/time.png - Icons/refresh.png - Icons/gear.png - Icons/skin/new.png - Icons/skin/qb_question.png - Icons/skin/play.png - Icons/skin/connecting.png - Icons/skin/settings.png - Icons/skin/add.png - Icons/skin/open.png - Icons/skin/play_all.png - Icons/skin/info.png - Icons/skin/connected.png - Icons/skin/search.png - Icons/skin/url.png - Icons/skin/firewalled.png - Icons/skin/properties.png - Icons/skin/preview.png - Icons/skin/remove.png - Icons/skin/delete_perm.png - Icons/skin/pause_all.png - Icons/skin/delete_all.png - Icons/skin/stalled.png - Icons/skin/downloading.png - Icons/skin/delete.png - Icons/skin/exit.png - Icons/skin/seeding.png - Icons/skin/paused.png - Icons/skin/disconnected.png - Icons/skin/pause.png - Icons/flags/turkey.png - Icons/flags/portugal.png - Icons/flags/finland.png - Icons/flags/ukraine.png - Icons/flags/bulgaria.png - Icons/flags/spain_catalunya.png + Icons/unavailable.png + Icons/unsubscribe.png + Icons/unsubscribe16.png + Icons/uparrow.png + Icons/url.png + Icons/wizard.png Icons/flags/brazil.png - Icons/flags/norway.png - Icons/flags/slovakia.png - Icons/flags/romania.png - Icons/flags/united_kingdom.png - Icons/flags/netherlands.png + Icons/flags/bulgaria.png Icons/flags/china.png Icons/flags/denmark.png - Icons/flags/hungary.png + Icons/flags/finland.png + Icons/flags/france.png + Icons/flags/germany.png Icons/flags/greece.png - Icons/flags/spain.png + Icons/flags/hungary.png Icons/flags/italy.png - Icons/flags/germany.png - Icons/flags/russia.png Icons/flags/japan.png + Icons/flags/netherlands.png + Icons/flags/norway.png + Icons/flags/poland.png + Icons/flags/portugal.png + Icons/flags/romania.png + Icons/flags/russia.png + Icons/flags/slovakia.png Icons/flags/south_korea.png - Icons/flags/france.png + Icons/flags/spain.png + Icons/flags/spain_catalunya.png Icons/flags/sweden.png - Icons/flags/poland.png + Icons/flags/turkey.png + Icons/flags/ukraine.png + Icons/flags/united_kingdom.png + Icons/skin/add.png + Icons/skin/connected.png + Icons/skin/connecting.png + Icons/skin/delete.png + Icons/skin/delete_all.png + Icons/skin/delete_perm.png + Icons/skin/disconnected.png + Icons/skin/downloading.png + Icons/skin/exit.png + Icons/skin/firewalled.png + Icons/skin/info.png + Icons/skin/new.png + Icons/skin/open.png + Icons/skin/pause.png + Icons/skin/pause_all.png + Icons/skin/paused.png + Icons/skin/play.png + Icons/skin/play_all.png + Icons/skin/preview.png + Icons/skin/properties.png + Icons/skin/qb_question.png + Icons/skin/remove.png + Icons/skin/search.png + Icons/skin/seeding.png + Icons/skin/settings.png + Icons/skin/stalled.png + Icons/skin/url.png \ No newline at end of file diff --git a/src/lang.qrc b/src/lang.qrc index 82e9d2cd0..f7a837950 100644 --- a/src/lang.qrc +++ b/src/lang.qrc @@ -1,29 +1,29 @@ - lang/qbittorrent_uk.qm - lang/qbittorrent_tr.qm - lang/qbittorrent_nl.qm - lang/qbittorrent_de.qm - lang/qbittorrent_ru.qm - lang/qbittorrent_fr.qm + lang/qbittorrent_bg.qm + lang/qbittorrent_ca.qm lang/qbittorrent_da.qm - lang/qbittorrent_fi.qm - lang/qbittorrent_pl.qm - lang/qbittorrent_ko.qm - lang/qbittorrent_nb.qm - lang/qbittorrent_sv.qm - lang/qbittorrent_zh.qm + lang/qbittorrent_de.qm lang/qbittorrent_el.qm - lang/qbittorrent_sk.qm - lang/qbittorrent_ca.qm + lang/qbittorrent_en.qm + lang/qbittorrent_es.qm + lang/qbittorrent_fi.qm + lang/qbittorrent_fr.qm lang/qbittorrent_hu.qm - lang/qbittorrent_bg.qm lang/qbittorrent_it.qm + lang/qbittorrent_ja.qm + lang/qbittorrent_ko.qm + lang/qbittorrent_nb.qm + lang/qbittorrent_nl.qm + lang/qbittorrent_pl.qm lang/qbittorrent_pt.qm - lang/qbittorrent_en.qm lang/qbittorrent_pt_BR.qm - lang/qbittorrent_ja.qm lang/qbittorrent_ro.qm - lang/qbittorrent_es.qm + lang/qbittorrent_ru.qm + lang/qbittorrent_sk.qm + lang/qbittorrent_sv.qm + lang/qbittorrent_tr.qm + lang/qbittorrent_uk.qm + lang/qbittorrent_zh.qm \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 682e2b775..a36810fe0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -145,6 +145,7 @@ int main(int argc, char *argv[]){ #endif QApplication app(argc, argv); useStyle(&app, settings.value("Preferences/General/Style", 0).toInt()); + app.setStyleSheet("QStatusBar::item { border: 0px solid black }; "); QSplashScreen *splash = new QSplashScreen(QPixmap(QString::fromUtf8(":/Icons/splash.png"))); splash->show(); // Open options file to read locale diff --git a/src/search.qrc b/src/search.qrc index 1c76ded1b..074110bca 100644 --- a/src/search.qrc +++ b/src/search.qrc @@ -1,16 +1,16 @@ - search_engine/novaprinter.py search_engine/nova2.py + search_engine/novaprinter.py + search_engine/engines/btjunkie.png + search_engine/engines/btjunkie.py search_engine/engines/isohunt.png - search_engine/engines/piratebay.png + search_engine/engines/isohunt.py search_engine/engines/mininova.png search_engine/engines/mininova.py - search_engine/engines/btjunkie.py + search_engine/engines/piratebay.png search_engine/engines/piratebay.py - search_engine/engines/isohunt.py search_engine/engines/torrentreactor.png - search_engine/engines/btjunkie.png search_engine/engines/torrentreactor.py \ No newline at end of file diff --git a/src/src.pro b/src/src.pro index 9ae369bee..cb6210d5d 100644 --- a/src/src.pro +++ b/src/src.pro @@ -11,9 +11,9 @@ TARGET = qbittorrent CONFIG += qt thread x11 network # Update this VERSION for each release -DEFINES += VERSION=\\\"v1.1.0beta3\\\" +DEFINES += VERSION=\\\"v1.2.0alpha1\\\" DEFINES += VERSION_MAJOR=1 -DEFINES += VERSION_MINOR=1 +DEFINES += VERSION_MINOR=2 DEFINES += VERSION_BUGFIX=0 QMAKE_LFLAGS += -Wl,--as-needed