Improve icons. Move some menu items to the toolbar. Don't show buttons in current...
[dorian] / mainwindow.cpp
index aad12c5..b049ab7 100755 (executable)
@@ -49,7 +49,7 @@ const char *DORIAN_VERSION =
 ;
 
 MainWindow::MainWindow(QWidget *parent):
-    BookWindow(parent), view(0), preventBlankingTimer(-1)
+    AdopterWindow(parent), view(0), preventBlankingTimer(-1)
 {
     Trace t("MainWindow::MainWindow");
 #ifdef Q_WS_MAEMO_5
@@ -74,6 +74,7 @@ MainWindow::MainWindow(QWidget *parent):
     progress = new Progress(central);
 
     // Tool bar
+
     setUnifiedTitleAndToolBarOnMac(true);
     settings = new QDialog(this);
     toolBar = addToolBar("controls");
@@ -84,16 +85,12 @@ MainWindow::MainWindow(QWidget *parent):
     toolBar->setIconSize(QSize(42, 42));
 #endif
 
-    previousAction = addToolBarAction(view, SLOT(goPrevious()), "previous");
-    nextAction = addToolBarAction(view, SLOT(goNext()), "next");
     chaptersAction = addToolBarAction(this, SLOT(showChapters()), "chapters");
     bookmarksAction = addToolBarAction(this, SLOT(showBookmarks()), "bookmarks");
+    infoAction = addToolBarAction(this, SLOT(showInfo()), "info");
+    libraryAction = addToolBarAction(this, SLOT(showLibrary()), "library");
 
 #ifdef Q_WS_MAEMO_5
-    infoAction = menuBar()->addAction(tr("Book details"));
-    connect(infoAction, SIGNAL(triggered()), this, SLOT(showInfo()));
-    libraryAction = menuBar()->addAction(tr("Library"));
-    connect(libraryAction, SIGNAL(triggered()), this, SLOT(showLibrary()));
     settingsAction = menuBar()->addAction(tr("Settings"));
     connect(settingsAction, SIGNAL(triggered()), this, SLOT(showSettings()));
     devToolsAction = menuBar()->addAction(tr("Developer"));
@@ -101,9 +98,6 @@ MainWindow::MainWindow(QWidget *parent):
     QAction *aboutAction = menuBar()->addAction(tr("About"));
     connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
 #else
-    infoAction = addToolBarAction(this, SLOT(showInfo()), "document-properties");
-    libraryAction = addToolBarAction(this, SLOT(showLibrary()),
-                                     "system-file-manager");
     settingsAction = addToolBarAction(this, SLOT(showSettings()),
                                       "preferences-system");
     devToolsAction = addToolBarAction(this, SLOT(showDevTools()), "developer");
@@ -117,7 +111,7 @@ MainWindow::MainWindow(QWidget *parent):
     fullScreenAction = addToolBarAction(this, SLOT(showBig()),
                                         "view-fullscreen");
 
-    // Buttons for paging
+    // Buttons on top of the book view
     previousButton = new TranslucentButton("back", this);
     nextButton = new TranslucentButton("forward", this);
 
@@ -167,9 +161,9 @@ MainWindow::MainWindow(QWidget *parent):
     settings->setValue("lightson", settings->value("lightson"));
     settings->setValue("usevolumekeys", settings->value("usevolumekeys"));
 
-    // Handle next/previous buttons
-    connect(nextButton, SIGNAL(triggered()), view, SLOT(goNextPage()));
-    connect(previousButton, SIGNAL(triggered()), view, SLOT(goPreviousPage()));
+    // Handle book view buttons
+    connect(nextButton, SIGNAL(triggered()), this, SLOT(goToNextPage()));
+    connect(previousButton, SIGNAL(triggered()), this, SLOT(goToPreviousPage()));
 
 #ifdef DORIAN_TEST_MODEL
     (void)new ModelTest(Library::instance(), this);
@@ -190,16 +184,31 @@ void MainWindow::showRegular()
     Trace t("MainWindow::showRegular");
     fullScreenWindow->hide();
     fullScreenWindow->leaveChildren();
-    QRect geo = geometry();
-    progress->setGeometry(0, 0, geo.width(), PROGRESS_HEIGHT);
-    nextButton->setGeometry(geo.width() - 95, 0, 95, 95);
-    previousButton->setGeometry(0, geo.height() - 95, 95, 95);
+
     QList<QWidget *> otherChildren;
     otherChildren << progress << previousButton << nextButton;
     takeChildren(view, otherChildren);
+    QRect geo = geometry();
+    qDebug() << "Geometry" << geo << "toolbar" << toolBar->height();
+    progress->setGeometry(0, 0, geo.width(), PROGRESS_HEIGHT);
+#ifdef Q_WS_MAEMO_5
+    previousButton->setGeometry(0,
+        geo.height() - toolBar->height() - TranslucentButton::pixels,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+    nextButton->setGeometry(geo.width() - TranslucentButton::pixels, 0,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+#else
+    previousButton->setGeometry(0, geo.height() - TranslucentButton::pixels,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+    nextButton->setGeometry(geo.width() - TranslucentButton::pixels,
+        toolBar->height(), TranslucentButton::pixels, TranslucentButton::pixels);
+#endif // Q_WS_MAEMO_5
+    qDebug() << "previousButton geometry" << previousButton->geometry();
     progress->flash();
-    nextButton->flash();
-    previousButton->flash();
+    nextButton->show();
+    previousButton->show();
+    nextButton->flash(1500);
+    previousButton->flash(1500);
 }
 
 void MainWindow::showBig()
@@ -210,14 +219,16 @@ void MainWindow::showBig()
     otherChildren << progress << nextButton << previousButton;
     QRect screen = QApplication::desktop()->screenGeometry();
     progress->setGeometry(0, 0, screen.width(), PROGRESS_HEIGHT);
-    nextButton->setGeometry(screen.width() - 95, 0, 95, 95);
-    previousButton->setGeometry(0, screen.height() - 95, 95, 95);
+    nextButton->setGeometry(screen.width() - TranslucentButton::pixels, 0,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+    previousButton->setGeometry(0, screen.height() - TranslucentButton::pixels,
+        TranslucentButton::pixels, TranslucentButton::pixels);
 
     fullScreenWindow->takeChildren(view, otherChildren);
     fullScreenWindow->showFullScreen();
     progress->flash();
-    nextButton->flash();
-    previousButton->flash();
+    nextButton->flash(1500);
+    previousButton->flash(1500);
 }
 
 void MainWindow::setCurrentBook(const QModelIndex &current)
@@ -249,7 +260,7 @@ void MainWindow::showSettings()
 void MainWindow::showInfo()
 {
     if (mCurrent.isValid()) {
-        (new InfoDialog(Library::instance()->book(mCurrent), this))->exec();
+        (new InfoDialog(Library::instance()->book(mCurrent), this, false))->exec();
     }
 }
 
@@ -334,13 +345,7 @@ void MainWindow::onPartLoadEnd(int index)
     }
 #ifdef Q_WS_MAEMO_5
     setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false);
-    previousAction->setIcon(QIcon(enablePrevious?
-        ":/icons/previous.png" : ":/icons/previous-disabled.png"));
-    nextAction->setIcon(QIcon(enableNext?
-        ":/icons/next.png": ":/icons/next-disabled.png"));
 #endif // Q_WS_MAEMO_5
-    previousAction->setEnabled(enablePrevious);
-    nextAction->setEnabled(enableNext);
 }
 
 void MainWindow::onAddBookmark()
@@ -398,10 +403,21 @@ void MainWindow::resizeEvent(QResizeEvent *e)
     Trace t("MainWindow::resizeEvent");
     progress->setGeometry(QRect(0, 0, e->size().width(), PROGRESS_HEIGHT));
     qDebug() << "Toolbar height" << toolBar->height();
-    previousButton->setGeometry(0, e->size().height() - 95, 95, 95);
-    nextButton->setGeometry(e->size().width() - 95, toolBar->height(), 95, 95);
-    previousButton->flash();
-    nextButton->flash();
+#ifdef Q_WS_MAEMO_5
+    previousButton->setGeometry(0,
+        e->size().height() - toolBar->height() - TranslucentButton::pixels,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+    nextButton->setGeometry(e->size().width() - TranslucentButton::pixels, 0,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+#else
+    previousButton->setGeometry(0, e->size().height() - TranslucentButton::pixels,
+        TranslucentButton::pixels, TranslucentButton::pixels);
+    nextButton->setGeometry(e->size().width() - TranslucentButton::pixels,
+        toolBar->height(), TranslucentButton::pixels, TranslucentButton::pixels);
+#endif // Q_WS_MAEMO_5
+    qDebug() << "previousButton geometry" << previousButton->geometry();
+    previousButton->flash(1500);
+    nextButton->flash(1500);
     QMainWindow::resizeEvent(e);
 }
 
@@ -420,3 +436,18 @@ void MainWindow::about()
     aboutDialog->addWidget(label);
     aboutDialog->show();
 }
+
+
+void MainWindow::goToNextPage()
+{
+    nextButton->flash(1500);
+    previousButton->flash(1500);
+    view->goNextPage();
+}
+
+void MainWindow::goToPreviousPage()
+{
+    nextButton->flash(1500);
+    previousButton->flash(1500);
+    view->goPreviousPage();
+}