Fix naming: book parts vs. chapters.
[dorian] / mainwindow.cpp
index 385ecc0..b43f326 100755 (executable)
@@ -146,19 +146,20 @@ MainWindow::MainWindow(QWidget *parent):
     // Create thread for finding books in directories
     bookFinder = new BookFinder();
     connect(bookFinder, SIGNAL(add(const QString &)),
-            this, SLOT(onAddBook(const QString &)));
+            library, SLOT(add(const QString &)));
     connect(bookFinder, SIGNAL(remove(const QString &)),
-            this, SLOT(onRemoveBook(const QString &)));
+            library, SLOT(remove(const QString &)));
     bookFinder->moveToThread(&bookFinderThread);
     bookFinderThread.start();
-    qRegisterMetaType<QStringList>("QStringList");
 
+#if 0
     bool ret = QMetaObject::invokeMethod(
         bookFinder,
         "find",
-        Q_ARG(QStringList, QStringList(QString("/home/polster/Books"))),
+        Q_ARG(QStringList, QStringList(QString("/Users/polster/Books"))),
         Q_ARG(QStringList, library->bookPaths()));
     t.trace(QString("Invoking BookFinder::find ") + (ret?"succeeded":"failed"));
+#endif
 
 #ifdef DORIAN_TEST_MODEL
     (void)new ModelTest(Library::instance(), this);
@@ -199,7 +200,7 @@ void MainWindow::setCurrentBook(const QModelIndex &current)
     mCurrent = current;
     Book *book = Library::instance()->book(current);
     view->setBook(book);
-    setWindowTitle(book? book->name(): tr("Dorian"));
+    setWindowTitle(book? book->shortName(): tr("Dorian"));
 }
 
 QAction *MainWindow::addToolBarAction(const QObject *receiver,
@@ -212,29 +213,24 @@ QAction *MainWindow::addToolBarAction(const QObject *receiver,
 
 void MainWindow::showLibrary()
 {
-    LibraryDialog *dialog = new LibraryDialog(this);
-    dialog->show();
+    (new LibraryDialog(this))->show();
 }
 
 void MainWindow::showSettings()
 {
-    SettingsWindow *settings = new SettingsWindow(this);
-    settings->show();
+    (new SettingsWindow(this))->show();
 }
 
 void MainWindow::showInfo()
 {
     if (mCurrent.isValid()) {
-        InfoDialog *info =
-            new InfoDialog(Library::instance()->book(mCurrent), this);
-        info->exec();
+        (new InfoDialog(Library::instance()->book(mCurrent), this))->exec();
     }
 }
 
 void MainWindow::showDevTools()
 {
-    DevTools *devTools = new DevTools();
-    devTools->exec();
+    (new DevTools())->exec();
 }
 
 void MainWindow::showBookmarks()
@@ -286,17 +282,17 @@ void MainWindow::onSettingsChanged(const QString &key)
 #endif // Q_WS_MAEMO_5
 }
 
-void MainWindow::onChapterLoadStart()
+void MainWindow::onPartLoadStart()
 {
-    Trace t("MainWindow::onChapterLoadStart");
+    Trace t("MainWindow::onPartLoadStart");
 #ifdef Q_WS_MAEMO_5
     setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true);
 #endif
 }
 
-void MainWindow::onChapterLoadEnd(int index)
+void MainWindow::onPartLoadEnd(int index)
 {
-    Trace t("MainWindow::onChapterLoadEnd");
+    Trace t("MainWindow::onPartLoadEnd");
     bool enablePrevious = false;
     bool enableNext = false;
     Book *book = Library::instance()->book(mCurrent);
@@ -346,7 +342,15 @@ void MainWindow::showChapters()
 
 void MainWindow::onGoToChapter(int index)
 {
-    view->goToBookmark(Book::Bookmark(index, 0));
+    Trace t("MainWindow::onGoToChapter");
+
+    Book *book = Library::instance()->book(mCurrent);
+    if (book) {
+        int partIndex = book->tocFromChapter(index);
+        if (partIndex != -1) {
+            view->goToBookmark(Book::Bookmark(partIndex, 0));
+        }
+    }
 }
 
 void MainWindow::timerEvent(QTimerEvent *event)