summaryrefslogtreecommitdiffstats
path: root/plugins/infowidget/statustab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infowidget/statustab.cpp')
-rw-r--r--plugins/infowidget/statustab.cpp267
1 files changed, 0 insertions, 267 deletions
diff --git a/plugins/infowidget/statustab.cpp b/plugins/infowidget/statustab.cpp
deleted file mode 100644
index a4eab2c..0000000
--- a/plugins/infowidget/statustab.cpp
+++ /dev/null
@@ -1,267 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2005 by Joris Guisson *
- * joris.guisson@gmail.com *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
- ***************************************************************************/
-#include <math.h>
-#include <float.h>
-#include <tqdatetime.h>
-#include <tqcheckbox.h>
-#include <tdeglobal.h>
-#include <tdelocale.h>
-#include <interfaces/functions.h>
-#include <interfaces/torrentinterface.h>
-
-#include "downloadedchunkbar.h"
-#include "availabilitychunkbar.h"
-#include "floatspinbox.h"
-#include "statustab.h"
-
-namespace kt
-{
-
- StatusTab::StatusTab(TQWidget* parent, const char* name, WFlags fl)
- : StatusTabBase(parent,name,fl),curr_tc(0)
- {
- TQColorGroup cg = colorGroup();
- // do not use hardcoded colors
- m_info_caption->setPaletteBackgroundColor(cg.mid());
- m_chunks_caption->setPaletteBackgroundColor(cg.mid());
- m_sharing_caption->setPaletteBackgroundColor(cg.mid());
-
- maxRatio->setMinValue(0.0f);
- maxRatio->setMaxValue(100.0f);
- maxRatio->setStep(0.1f);
- connect(maxRatio, TQT_SIGNAL(valueHasChanged()), this, TQT_SLOT(maxRatioReturnPressed()));
- connect(useLimit, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( useLimitToggled(bool) ) );
-
- maxTime->setMinValue(0.0f);
- maxTime->setMaxValue(10000000.0f);
- maxTime->setStep(0.05f);
- maxTime->setSpecialValueText(i18n("No limit"));
- connect(useTimeLimit,TQT_SIGNAL(toggled(bool)), this,TQT_SLOT(useTimeLimitToggled(bool)));
- connect(maxTime,TQT_SIGNAL(valueHasChanged()), this, TQT_SLOT(timeValueChanged()));
-
- int h = (int)ceil(fontMetrics().height()*1.25);
- m_chunk_bar->setFixedHeight(h);
- m_av_chunk_bar->setFixedHeight(h);
- }
-
- StatusTab::~StatusTab()
- {}
-
- void StatusTab::changeTC(kt::TorrentInterface* tc)
- {
- if (tc == curr_tc)
- return;
-
- curr_tc = tc;
-
- m_chunk_bar->setTC(tc);
- m_av_chunk_bar->setTC(tc);
- setEnabled(tc != 0);
-
- if (curr_tc)
- {
- float ratio = curr_tc->getMaxShareRatio();
- if(ratio > 0)
- {
- useLimit->setChecked(true);
- maxRatio->setValue(ratio);
- }
- else
- {
- maxRatio->setValue(0.0);
- useLimit->setChecked(false);
- maxRatio->setEnabled(false);
- }
-
- float hours = curr_tc->getMaxSeedTime();
- if (hours > 0)
- {
- maxTime->setEnabled(true);
- useTimeLimit->setChecked(true);
- maxTime->setValue(hours);
- }
- else
- {
- maxTime->setEnabled(false);
- useTimeLimit->setChecked(false);
- }
- }
- else
- {
- maxRatio->setValue(0.00f);
- m_share_ratio->clear();
- m_tracker_status->clear();
- m_seeders->clear();
- m_leechers->clear();
- m_tracker_update_time->clear();
- m_avg_up->clear();
- m_avg_down->clear();
- }
-
- update();
- }
-
- void StatusTab::update()
- {
- if (!curr_tc)
- return;
-
- const TorrentStats & s = curr_tc->getStats();
-
- m_chunk_bar->updateBar();
- m_av_chunk_bar->updateBar();
-
- if (s.running)
- {
- TQTime t;
- t = t.addSecs(curr_tc->getTimeToNextTrackerUpdate());
- m_tracker_update_time->setText(t.toString("mm:ss"));
- }
- else
- {
- m_tracker_update_time->setText("");
- }
-
- m_tracker_status->setText(s.trackerstatus);
-
- m_seeders->setText(TQString("%1 (%2)")
- .arg(s.seeders_connected_to).arg(s.seeders_total));
-
- m_leechers->setText(TQString("%1 (%2)")
- .arg(s.leechers_connected_to).arg(s.leechers_total));
-
- float ratio = kt::ShareRatio(s);
- if(!maxRatio->hasFocus() && useLimit->isChecked())
- maxRatioUpdate();
-
- m_share_ratio->setText(TQString("<font color=\"%1\">%2</font>").arg(ratio <= 0.8 ? "#ff0000" : "#1c9a1c").arg(TDEGlobal::locale()->formatNumber(ratio,2)));
-
- Uint32 secs = curr_tc->getRunningTimeUL();
- if (secs == 0)
- {
- m_avg_up->setText(KBytesPerSecToString(0));
-
- }
- else
- {
- double r = (double)s.bytes_uploaded / 1024.0;
- m_avg_up->setText(KBytesPerSecToString(r / secs));
- }
-
- secs = curr_tc->getRunningTimeDL();
- if (secs == 0)
- {
- m_avg_down->setText(KBytesPerSecToString(0));
- }
- else
- {
- double r = (double)(s.bytes_downloaded - s.imported_bytes)/ 1024.0;
- m_avg_down->setText(KBytesPerSecToString(r / secs));
- }
- }
-
- void StatusTab::maxRatioReturnPressed()
- {
- if(!curr_tc)
- return;
-
- curr_tc->setMaxShareRatio(maxRatio->value());
- }
-
- void StatusTab::useLimitToggled(bool state)
- {
- if(!curr_tc)
- return;
-
- maxRatio->setEnabled(state);
- if (!state)
- {
- curr_tc->setMaxShareRatio(0.00f);
- maxRatio->setValue(0.00f);
- }
- else
- {
- float msr = curr_tc->getMaxShareRatio();
- if(msr == 0.00f)
- {
- curr_tc->setMaxShareRatio(1.00f);
- maxRatio->setValue(1.00f);
- }
-
- float sr = kt::ShareRatio(curr_tc->getStats());
- if(sr >= 1.00f)
- {
- //always add 1 to max share ratio to prevent stopping if torrent is running.
- curr_tc->setMaxShareRatio(sr + 1.00f);
- maxRatio->setValue(sr + 1.00f);
- }
- }
- }
-
- void StatusTab::maxRatioUpdate()
- {
- if(!curr_tc)
- return;
-
- float ratio = curr_tc->getMaxShareRatio();
- if(ratio > 0.00f)
- {
- maxRatio->setEnabled(true);
- useLimit->setChecked(true);
- maxRatio->setValue(ratio);
- }
- else
- {
- maxRatio->setEnabled(false);
- useLimit->setChecked(false);
- maxRatio->setValue(0.00f);
- }
- }
-
- void StatusTab::useTimeLimitToggled(bool on)
- {
- if(!curr_tc)
- return;
-
- maxTime->setEnabled(on);
- if (on)
- {
- Uint32 dl = curr_tc->getRunningTimeDL();
- Uint32 ul = curr_tc->getRunningTimeUL();
- float hours = (ul - dl) / 3600.0f + 1.0; // add one hour to current seed time to not stop immediatly
- maxTime->setValue(hours);
- curr_tc->setMaxSeedTime(hours);
- }
- else
- {
- curr_tc->setMaxSeedTime(0.0f);
- }
- }
-
- void StatusTab::timeValueChanged()
- {
- if (curr_tc)
- curr_tc->setMaxSeedTime(maxTime->value());
- }
-
-}
-
-#include "statustab.moc"
-