1 /* This file is part of the KDE project
3 Copyright (C) 2007 Lukas Appelhans <l.appelhans@gmx.de>
4 Copyright (C) 2007 Joris Guisson <joris.guisson@gmail.com>
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
12 #include "btadvanceddetailswidget.h"
14 #include <interfaces/torrentinterface.h>
15 #include <interfaces/trackerslist.h>
17 #include "bttransferhandler.h"
18 #include "bittorrentsettings.h"
20 #include "chunkdownloadview.h"
23 #include "trackerview.h"
28 #include <ktabwidget.h>
29 #include <QGridLayout>
33 BTAdvancedDetailsWidget::BTAdvancedDetailsWidget(BTTransferHandler
* transfer
)
34 : m_transfer(transfer
)
36 tc
= m_transfer
->torrentControl();
40 transfer
->addObserver(this);
41 //This updates the widget with the right values
42 transferChangedEvent(transfer
);
45 BTAdvancedDetailsWidget::~BTAdvancedDetailsWidget()
47 m_transfer
->delObserver(this);
50 void BTAdvancedDetailsWidget::init()
52 setWindowTitle(i18n("Advanced-Details for %1", m_transfer
->source().fileName()));
54 QGridLayout
*layout
= new QGridLayout();
55 KTabWidget
*tabWidget
= new KTabWidget(this);
56 layout
->addWidget(tabWidget
);
58 file_view
= new FileView(this);
59 file_view
->changeTC(tc
, KGlobal::config());
60 tabWidget
->insertTab(0, file_view
, i18n("Files"));
61 peer_view
= new PeerView(this);
62 tabWidget
->insertTab(1, peer_view
, i18n("Peers"));
63 cd_view
= new ChunkDownloadView(this);
64 cd_view
->changeTC(tc
);
65 tabWidget
->insertTab(2, cd_view
, i18n("Chunks"));
66 tracker_view
= new TrackerView(this);
67 tracker_view
->changeTC(tc
);
68 tabWidget
->insertTab(3, tracker_view
, i18n("Trackers"));
69 monitor
= new Monitor(tc
,peer_view
,cd_view
);
72 void BTAdvancedDetailsWidget::transferChangedEvent(TransferHandler
* transfer
)
76 TransferHandler::ChangesFlags transferFlags
= m_transfer
->changesFlags(this);
78 if (m_transfer
->status() == Job::Running
)
82 tracker_view
->update();
88 m_transfer
->resetChangesFlags(this);
91 void BTAdvancedDetailsWidget::hideEvent(QHideEvent
* event
)
99 #include "btadvanceddetailswidget.moc"