int chapterIndex = book->chapterFromPart(bookmark.part);
if (chapterIndex != -1) {
QString chapterId = book->chapters[chapterIndex];
- label += ", in\n\"" + book->content[chapterId].name + "\"";
+ label += ", in\"" + book->content[chapterId].name + "\"";
+ }
+ if (!bookmark.note.isEmpty()) {
+ label += "\n" + bookmark.note;
}
QLabel *info = new QLabel(label, this);
addWidget(info);
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 + "\"";
+ }
+ if (!bookmark.note.isEmpty()) {
+ label += "\n" + bookmark.note;
}
data.append(label);
}
void BookmarksDialog::onAdd()
{
- emit addBookmark();
- close();
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Add bookmark"),
+ tr("Note:"), QLineEdit::Normal,
+ QString(), &ok);
+ if (ok) {
+ emit addBookmark(text);
+ close();
+ }
}
void BookmarksDialog::onDelete(bool really)
signals:
void goToBookmark(int index);
- void addBookmark();
+ void addBookmark(const QString ¬e);
public slots:
void onGo();
showProgress();
}
-void BookView::addBookmark()
+void BookView::addBookmark(const QString ¬e)
{
Trace t("BookView::addBookmark");
if (!mBook) {
int y = page()->mainFrame()->scrollPosition().y();
int height = page()->mainFrame()->contentsSize().height();
qDebug() << ((qreal)y / (qreal)height);
- mBook->addBookmark(contentIndex, (qreal)y / (qreal)height);
+ mBook->addBookmark(contentIndex, (qreal)y / (qreal)height, note);
update();
}
void setBook(Book *book);
Book *book();
void goToBookmark(const Book::Bookmark &bookmark);
- void addBookmark();
+ void addBookmark(const QString ¬e);
void setLastBookmark();
void restoreLastBookmark();
if (book) {
BookmarksDialog *bookmarks = new BookmarksDialog(book, this);
bookmarks->setWindowModality(Qt::WindowModal);
- connect(bookmarks, SIGNAL(addBookmark()), this, SLOT(onAddBookmark()));
+ connect(bookmarks, SIGNAL(addBookmark(const QString &)),
+ this, SLOT(onAddBookmark(const QString &)));
connect(bookmarks, SIGNAL(goToBookmark(int)),
this, SLOT(onGoToBookmark(int)));
bookmarks->show();
#endif // Q_WS_MAEMO_5
}
-void MainWindow::onAddBookmark()
+void MainWindow::onAddBookmark(const QString ¬e)
{
Trace t("MainWindow:onAddBookmark");
- view->addBookmark();
+ view->addBookmark(note);
}
void MainWindow::onGoToBookmark(int index)
void onSettingsChanged(const QString &key);
void onPartLoadStart();
void onPartLoadEnd(int index);
- void onAddBookmark();
+ void onAddBookmark(const QString ¬e);
void onGoToBookmark(int index);
void showChapters();
void onGoToChapter(int index);
for (int i = 0; i < size; i++) {
int part = data[QString("bookmark%1part").arg(i)].toInt();
qreal pos = data[QString("bookmark%1pos").arg(i)].toReal();
- mBookmarks.append(Bookmark(part, pos));
+ QString note = data[QString("bookmark%1note").arg(i)].toString();
+ mBookmarks.append(Bookmark(part, pos, note));
}
}
for (int i = 0; i < mBookmarks.size(); i++) {
data[QString("bookmark%1part").arg(i)] = mBookmarks[i].part;
data[QString("bookmark%1pos").arg(i)] = mBookmarks[i].pos;
+ data[QString("bookmark%1note").arg(i)] = mBookmarks[i].note;
}
BookDb::instance()->save(path(), data);
}
return Book::Bookmark(mLastBookmark);
}
-void Book::addBookmark(int part, qreal position)
+void Book::addBookmark(int part, qreal position, const QString ¬e)
{
- mBookmarks.append(Bookmark(part, position));
+ mBookmarks.append(Bookmark(part, position, note));
qSort(mBookmarks.begin(), mBookmarks.end());
save();
}
/** Bookmark: a volume index and a relative position in volume. */
struct Bookmark
{
- Bookmark(int part_, qreal pos_): part(part_), pos(pos_) {}
+ Bookmark(int part_, qreal pos_, const QString ¬e_ = QString()):
+ part(part_), pos(pos_), note(note_) {}
Bookmark(): part(0), pos(0.0) {}
int part;
qreal pos;
- bool operator<(const Bookmark&other) const {
+ QString note;
+ bool operator<(const Bookmark &other) const {
return (part == other.part)? (pos < other.pos): (part < other.part);
}
};
Bookmark lastBookmark() const;
/** Add bookmark. */
- void addBookmark(int part, qreal position);
+ void addBookmark(int part, qreal position, const QString ¬e);
/** Delete bookmark. */
void deleteBookmark(int index);