#include "bookmarksdialog.h"
#include "book.h"
#include "bookmarkinfodialog.h"
-#include "listview.h"
+#include "trace.h"
BookmarksDialog::BookmarksDialog(Book *book_, QWidget *parent):
- ListWindow(parent), book(book_)
+ ListWindow(tr("(No bookmarks)\n"), parent), book(book_)
{
setWindowTitle(tr("Bookmarks"));
if (!book) {
return;
}
- addAction(tr("Add bookmark"), this, SLOT(onAdd()), ":/icons/add.png");
-#ifndef Q_WS_MAEMO_5
- addItemAction(tr("Go to"), this, SLOT(onGo()));
- addItemAction(tr("Delete"), this, SLOT(onDelete()));
-#endif // ! Q_WS_MAEMO_5
-
- // Build bookmark list
+ // Build and set bookmark model
// FIXME: Localize me
foreach (Book::Bookmark bookmark, book_->bookmarks()) {
QString label("At ");
label += QString::number((int)(100 * book_->
getProgress(bookmark.part, bookmark.pos))) + "%";
+ if (!bookmark.note.isEmpty()) {
+ label += ": " + bookmark.note;
+ }
+ label += "\n";
int chapterIndex = book_->chapterFromPart(bookmark.part);
if (chapterIndex != -1) {
QString chapterId = book_->chapters[chapterIndex];
- label += "\nIn \"" + book_->content[chapterId].name + "\"";
+ label += "In \"" + book_->content[chapterId].name + "\"";
}
data.append(label);
}
-
- // Create bookmark list view
QStringListModel *model = new QStringListModel(data, this);
- list = new ListView;
- list->setSelectionMode(QAbstractItemView::SingleSelection);
- list->setModel(model);
- addList(list);
- connect(list, SIGNAL(activated(const QModelIndex &)),
+ setModel(model);
+
+ addButton(tr("Add bookmark"), this, SLOT(onAdd()), "add");
+
+ connect(this, SIGNAL(activated(const QModelIndex &)),
this, SLOT(onItemActivated(const QModelIndex &)));
- addList(list);
}
void BookmarksDialog::onGo()
{
- QModelIndex current = list->currentIndex();
+ TRACE;
+ QModelIndex current = currentItem();
if (current.isValid()) {
emit goToBookmark(current.row());
close();
void BookmarksDialog::onAdd()
{
- emit addBookmark();
- close();
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Add bookmark"),
+ tr("Note (optional):"), QLineEdit::Normal, QString(), &ok);
+ if (ok) {
+ emit addBookmark(text);
+ close();
+ }
}
void BookmarksDialog::onDelete(bool really)
{
- QModelIndex current = list->currentIndex();
+ QModelIndex current = currentItem();
if (!current.isValid()) {
return;
}
}
}
int row = current.row();
- list->model()->removeRow(row);
+ model()->removeRow(row);
book->deleteBookmark(row);
}