23 #include "wadseekersitestable.h" 25 #include <QHeaderView> 26 #include <QProgressBar> 27 #include <QPushButton> 30 WadseekerSitesTable::WadseekerSitesTable(QWidget* pParent)
33 d.bAlreadyShownOnce =
false;
34 this->connect(&d.urlAborter, SIGNAL(mapped(QString)),
35 SLOT(requestUrlAbort(QString)));
36 this->connect(&d.serviceAborter, SIGNAL(mapped(QString)),
37 SIGNAL(serviceAbortRequested(QString)));
40 void WadseekerSitesTable::addUrl(
const QUrl& url)
45 setSortingEnabled(
false);
47 insertRow(rowCount());
48 int rowIndex = rowCount() - 1;
50 QProgressBar* pBar =
new QProgressBar();
51 pBar->setAlignment(Qt::AlignCenter);
55 QPushButton* abortButton =
new QPushButton(tr(
"Abort"));
56 d.urlAborter.connect(abortButton, SIGNAL(clicked()), SLOT(map()));
57 d.urlAborter.setMapping(abortButton, url.toString());
59 setItem(rowIndex, IDX_URL_COLUMN,
new QTableWidgetItem(url.toString()));
60 setCellWidget(rowIndex, IDX_PROGRESS_COLUMN, pBar);
61 setCellWidget(rowIndex, IDX_ABORT_COLUMN, abortButton);
63 setSortingEnabled(
true);
67 int WadseekerSitesTable::findRow(
const QString &text)
69 QList<QTableWidgetItem *> list = findItems(text, Qt::MatchFixedString);
72 return list.first()->row();
78 int WadseekerSitesTable::findRow(
const QUrl &url)
80 return findRow(url.toString());
84 void WadseekerSitesTable::removeUrl(
const QUrl& url)
86 int row = findRow(url);
93 void WadseekerSitesTable::addService(
const QString &service)
95 if (findRow(service) < 0)
97 setSortingEnabled(
false);
99 insertRow(rowCount());
100 int rowIndex = rowCount() - 1;
102 QProgressBar* pBar =
new QProgressBar();
103 pBar->setAlignment(Qt::AlignCenter);
107 QPushButton* abortButton =
new QPushButton(tr(
"Abort"));
108 d.serviceAborter.connect(abortButton, SIGNAL(clicked()), SLOT(map()));
109 d.serviceAborter.setMapping(abortButton, service);
111 setItem(rowIndex, IDX_URL_COLUMN,
new QTableWidgetItem(service));
112 setCellWidget(rowIndex, IDX_PROGRESS_COLUMN, pBar);
113 setCellWidget(rowIndex, IDX_ABORT_COLUMN, abortButton);
115 setSortingEnabled(
true);
119 void WadseekerSitesTable::removeService(
const QString &service)
121 int row = findRow(service);
128 void WadseekerSitesTable::requestUrlAbort(
const QString &urlAsString)
130 emit urlAbortRequested(urlAsString);
133 void WadseekerSitesTable::setUrlProgress(
const QUrl& url, qint64 current, qint64 total)
135 int row = findRow(url);
139 QProgressBar* pBar = (QProgressBar*) this->cellWidget(row, IDX_PROGRESS_COLUMN);
140 pBar->setMaximum(total);
141 pBar->setValue(current);
145 void WadseekerSitesTable::showEvent(QShowEvent* pEvent)
147 if (!d.bAlreadyShownOnce)
151 QHeaderView* pHeader = horizontalHeader();
154 #if QT_VERSION >= 0x050000 155 pHeader->setSectionResizeMode(IDX_URL_COLUMN, QHeaderView::Stretch);
157 pHeader->setResizeMode(IDX_URL_COLUMN, QHeaderView::Stretch);
160 pHeader->resizeSection(IDX_PROGRESS_COLUMN, 85);