Browse Source

- Allow to add several trackers at once

adaptive-webui-19844
Christophe Dumez 17 years ago
parent
commit
cb7e48b2e8
  1. 1
      Changelog
  2. 53
      src/TrackersAdditionDlg.h
  3. 18
      src/properties_imp.cpp
  4. 1
      src/properties_imp.h
  5. 6
      src/src.pro
  6. 73
      src/trackersAdd.ui

1
Changelog

@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
- FEATURE: Added support for PeerGuardian p2p filters (text)
- FEATURE: Added support for PeerGuardian p2b filters (binary)
- FEATURE: Allow to customize folder scan interval
- FEATURE: Allow to add several trackers at once
- BUGFIX: Do not display seeds number in seeding list (always 0)
- BUGFIX: Threadified IP filter file parser to avoid GUI freeze
- COSMETIC: Do not display progress bar in seeding list (always 100%)

53
src/TrackersAdditionDlg.h

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
/*
* Bittorrent Client using Qt4 and libtorrent.
* Copyright (C) 2006 Christophe Dumez
*
* 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.
*
* Contact : chris@qbittorrent.org
*/
#ifndef TRACKERSADDITION_H
#define TRACKERSADDITION_H
#include <QDialog>
#include <QStringList>
#include "ui_trackersAdd.h"
class TrackersAddDlg : public QDialog, private Ui::TrackersAdditionDlg{
Q_OBJECT
public:
TrackersAddDlg(QWidget *parent): QDialog(parent){
setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
show();
}
~TrackersAddDlg(){}
signals:
void TrackersToAdd(QStringList trackers);
public slots:
void on_buttonBox_accepted() {
QStringList trackers = trackers_list->toPlainText().trimmed().split("\n");
if(trackers.size()) {
emit TrackersToAdd(trackers);
}
}
};
#endif

18
src/properties_imp.cpp

@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
#include "arborescence.h"
#include "realprogressbar.h"
#include "realprogressbarthread.h"
#include "TrackersAdditionDlg.h"
#include <QInputDialog>
#include <QMessageBox>
@ -482,18 +483,19 @@ void properties::askWebSeed(){ @@ -482,18 +483,19 @@ void properties::askWebSeed(){
// and add it to the download list
// if it is not already in it
void properties::askForTracker(){
bool ok;
// Ask user for a new tracker
QString trackerUrl = QInputDialog::getText(this, tr("New tracker"),
tr("New tracker url:"), QLineEdit::Normal,
"http://www.", &ok);
if(!ok) return;
// Add the tracker to the list
TrackersAddDlg *dlg = new TrackersAddDlg(this);
connect(dlg, SIGNAL(TrackersToAdd(QStringList)), this, SLOT(addTrackerList(QStringList)));
}
void properties::addTrackerList(QStringList myTrackers) {
// Add the trackers to the list
std::vector<announce_entry> trackers = h.trackers();
announce_entry new_tracker(misc::toString(trackerUrl.toUtf8().data()));
foreach(QString tracker, myTrackers) {
announce_entry new_tracker(misc::toString(tracker.toUtf8().data()));
new_tracker.tier = 0; // Will be fixed a bit later
trackers.push_back(new_tracker);
misc::fixTrackersTiers(trackers);
}
h.replace_trackers(trackers);
h.force_reannounce();
// Reload Trackers

1
src/properties_imp.h

@ -77,6 +77,7 @@ class properties : public QDialog, private Ui::properties{ @@ -77,6 +77,7 @@ class properties : public QDialog, private Ui::properties{
void updateParentsPriority(QStandardItem *item, int priority);
void updatePriorities(QStandardItem *item);
void getPriorities(QStandardItem *parent, int *priorities);
void addTrackerList(QStringList myTrackers);
void writeSettings();
void loadSettings();

6
src/src.pro

@ -147,12 +147,14 @@ HEADERS += GUI.h misc.h options_imp.h about_imp.h \ @@ -147,12 +147,14 @@ HEADERS += GUI.h misc.h options_imp.h about_imp.h \
realprogressbarthread.h qrealarray.h \
httpserver.h httpconnection.h \
httprequestparser.h httpresponsegenerator.h \
json.h eventmanager.h filterParserThread.h
json.h eventmanager.h filterParserThread.h \
TrackersAdditionDlg.h
FORMS += MainWindow.ui options.ui about.ui \
properties.ui createtorrent.ui preview.ui \
login.ui downloadFromURL.ui addTorrentDialog.ui \
search.ui rss.ui seeding.ui bandwidth_limit.ui \
download.ui engineSelect.ui pluginSource.ui
download.ui engineSelect.ui pluginSource.ui \
trackersAdd.ui
SOURCES += GUI.cpp \
main.cpp \
options_imp.cpp \

73
src/trackersAdd.ui

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
<ui version="4.0" >
<class>TrackersAdditionDlg</class>
<widget class="QDialog" name="TrackersAdditionDlg" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>367</width>
<height>201</height>
</rect>
</property>
<property name="windowTitle" >
<string>Trackers addition dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout" >
<item>
<widget class="QLabel" name="label" >
<property name="text" >
<string>List of trackers to add (one per line):</string>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="trackers_list" />
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>TrackersAdditionDlg</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel" >
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel" >
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>TrackersAdditionDlg</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel" >
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel" >
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>
Loading…
Cancel
Save