#include <stdio.h>
+
#include <QtGui>
+#include <QStringListModel>
+#include <QDir>
+#include <QFile>
-#include "listview.h"
#include "searchresultsdialog.h"
#include "searchresultinfodialog.h"
#include "trace.h"
#include "platform.h"
SearchResultsDialog::SearchResultsDialog(const QList<Search::Result> results_,
- QWidget *parent): ListWindow(parent), results(results_)
+ QWidget *parent): ListWindow(tr("(No results)"), parent), results(results_)
{
- setWindowTitle(tr("Search Results"));
+ setWindowTitle(tr("Search results"));
foreach (Search::Result result, results) {
QString author;
}
QStringListModel *model = new QStringListModel(data, this);
- list = new ListView;
- list->setSelectionMode(QAbstractItemView::SingleSelection);
- list->setModel(model);
- list->setUniformItemSizes(true);
- addList(list);
- addItemAction(tr("Download book"), this, SLOT(onDownload()));
- connect(list, SIGNAL(activated(const QModelIndex &)),
+ setModel(model);
+ connect(this, SIGNAL(activated(const QModelIndex &)),
this, SLOT(onItemActivated(const QModelIndex &)));
Search *search = Search::instance();
connect(search, SIGNAL(beginDownload(int)), this, SLOT(onBeginDownload(int)));
this,
SLOT(onEndDownload(int, const Search::Result &, const QString &)));
- progress = new ProgressDialog(tr("Downloading Book"), this);
+ progress = new ProgressDialog(tr("Downloading book"), this);
}
void SearchResultsDialog::onItemActivated(const QModelIndex &index)
{
- Trace t("SearchResultsDialog::onItemActivated");
+ TRACE;
Search::Result result = results[index.row()];
qDebug() << "Book" << index.row() << ":" << result.title;
SearchResultInfoDialog *d = new SearchResultInfoDialog(result, this);
}
}
-void SearchResultsDialog::onDownload()
-{
- onItemActivated(list->currentIndex());
-}
-
QString SearchResultsDialog::downloadName() const
{
- Trace t("SearchResultsDialog::downloadName");
- QString dir = Platform::downloadDir();
+ TRACE;
+ QString dir = Platform::instance()->downloadDir();
QDir().mkpath(dir); // Not sure if this works. QDir API is quiet lame.
unsigned i = 0;
QString fileName;
void SearchResultsDialog::onBeginDownload(int size)
{
Q_UNUSED(size);
- Trace t("SearchResultsDialog::onBeginDownload");
- progress->setMinimum(0);
- progress->setMaximum(0);
- progress->setValue(0);
- progress->show();
+ TRACE;
+ progress->showWait();
}
void SearchResultsDialog::onEndDownload(int status, const Search::Result &result,
const QString &fileName)
{
Q_UNUSED(result);
- Trace t("SearchResultsDialog::onEndDownload");
+ TRACE;
progress->reset();
if (Search::Ok == status) {
Library::instance()->add(fileName);
int row = results.indexOf(result);
if (-1 != row) {
- list->model()->removeRow(row);
+ results.removeAt(row);
+ model()->removeRow(row);
}
+ Platform::instance()->
+ information(tr("Downloaded \"%1\"\nand added to the "
+ "library").arg(result.title), this);
}
}