Fix forward navigation control on Linux.
[dorian] / bookmarkinfodialog.cpp
index 42544fd..18c16f7 100644 (file)
@@ -4,26 +4,31 @@
 #include "book.h"
 
 BookmarkInfoDialog::BookmarkInfoDialog(Book *b, int i, QWidget *parent):
-    Dialog(parent),
+    Dyalog(parent, true),
     book(b),
     index(i)
 {
-    setWindowTitle(tr("Bookmark Details"));
+    setWindowTitle(tr("Bookmark details"));
 
     Book::Bookmark bookmark = book->bookmarks()[index];
-    QString contentId = book->parts[bookmark.part];
-    QString contentTitle = book->content[contentId].name;
-    QLabel *info = new QLabel(contentTitle + "\nAt " +
-        QString::number((int)(bookmark.pos*100)) + "%", this);
+    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 += "In\"" + book->content[chapterId].name + "\"";
+    }
+    QLabel *info = new QLabel(label, this);
     addWidget(info);
     addStretch();
-
-    QPushButton *read = new QPushButton(tr("Go to"), this);
-    QPushButton *remove = new QPushButton(tr("Delete"), this);
-    connect(read, SIGNAL(clicked()), this, SLOT(onRead()));
-    connect(remove, SIGNAL(clicked()), this, SLOT(onRemove()));
-    addButton(read, QDialogButtonBox::ActionRole);
-    addButton(remove, QDialogButtonBox::DestructiveRole);
+    addButton(tr("Go to"), this, SLOT(onRead()), QDialogButtonBox::ActionRole);
+    addButton(tr("Delete"), this, SLOT(onRemove()),
+              QDialogButtonBox::DestructiveRole);
 }
 
 void BookmarkInfoDialog::onRead()