Make orientation switch explicit on Symbian, too.
[dorian] / searchresultsdialog.cpp
index 09bc217..db0192b 100644 (file)
@@ -1,7 +1,10 @@
 #include <stdio.h>
+
 #include <QtGui>
+#include <QStringListModel>
+#include <QDir>
+#include <QFile>
 
-#include "listview.h"
 #include "searchresultsdialog.h"
 #include "searchresultinfodialog.h"
 #include "trace.h"
@@ -10,9 +13,9 @@
 #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;
@@ -23,13 +26,8 @@ SearchResultsDialog::SearchResultsDialog(const QList<Search::Result> results_,
     }
 
     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)));
@@ -38,12 +36,12 @@ SearchResultsDialog::SearchResultsDialog(const QList<Search::Result> results_,
             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);
@@ -57,15 +55,10 @@ void SearchResultsDialog::onItemActivated(const QModelIndex &index)
     }
 }
 
-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;
@@ -82,24 +75,25 @@ QString SearchResultsDialog::downloadName() const
 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);
     }
 }