X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=21194523b96fac76723ad0b37ab3dead38c5cbca;hb=e3bd4bc7d42d381abe498a83545923fdd1b5ad6c;hp=8f6e2efdb84ef41187778de7df702985adda9d11;hpb=549e8d8b51f631005863aa7f4f3cb2683a901669;p=dorian diff --git a/mainwindow.cpp b/mainwindow.cpp index 8f6e2ef..2119452 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -42,17 +42,9 @@ MainWindow::MainWindow(QWidget *parent): #ifdef Q_WS_MAEMO_5 setAttribute(Qt::WA_Maemo5StackedWindow, true); #endif - setWindowTitle("Dorian"); -#ifdef Q_OS_SYMBIAN - // Tool bar - toolBar = new QToolBar("", this /*frame*/); - toolBar->setFixedWidth(QApplication::desktop()-> - availableGeometry().width()); - toolBar->setFixedHeight(65); - toolBar->setStyleSheet("margin:0;border:0;padding:0"); - toolBar->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Maximum); - addToolBar(Qt::BottomToolBarArea, toolBar); +#ifndef Q_OS_SYMBIAN + setWindowTitle("Dorian"); #endif // Central widget. Must be an intermediate, because the book view widget @@ -64,12 +56,7 @@ MainWindow::MainWindow(QWidget *parent): setCentralWidget(central); // Book view - view = new BookView(central); - view->show(); - layout->addWidget(view); - - // Dialogs - progress = new Progress(this); + view = new BookView(this); // Tool bar actions @@ -110,9 +97,10 @@ MainWindow::MainWindow(QWidget *parent): (void)addToolBarAction(this, SLOT(close()), "", tr("Exit")); #endif - // Buttons on top of the book view - previousButton = new TranslucentButton("back", this); - nextButton = new TranslucentButton("forward", this); + // Decorations + prev = new TranslucentButton("back", this); + next = new TranslucentButton("forward", this); + prog = new Progress(this); // Handle model changes connect(Library::instance(), SIGNAL(nowReadingChanged()), @@ -121,7 +109,8 @@ MainWindow::MainWindow(QWidget *parent): // Load library, upgrade it if needed libraryProgress = new ProgressDialog(tr("Upgrading library"), this); Library *library = Library::instance(); - connect(library, SIGNAL(beginUpgrade(int)), this, SLOT(onBeginUpgrade(int))); + connect(library, SIGNAL(beginUpgrade(int)), + this, SLOT(onBeginUpgrade(int))); connect(library, SIGNAL(upgrading(const QString &)), this, SLOT(onUpgrading(const QString &))); connect(library, SIGNAL(endUpgrade()), this, SLOT(onEndUpgrade())); @@ -131,7 +120,7 @@ MainWindow::MainWindow(QWidget *parent): connect(view, SIGNAL(partLoadEnd(int)), this, SLOT(onPartLoadEnd(int))); // Handle progress - connect(view, SIGNAL(progress(qreal)), progress, SLOT(setProgress(qreal))); + connect(view, SIGNAL(progress(qreal)), prog, SLOT(setProgress(qreal))); // Shadow window for full screen reading fullScreenWindow = new FullScreenWindow(this); @@ -142,11 +131,8 @@ MainWindow::MainWindow(QWidget *parent): this, SLOT(onSettingsChanged(const QString &))); // Handle book view buttons - connect(nextButton, SIGNAL(triggered()), this, SLOT(goToNextPage())); - connect(previousButton, SIGNAL(triggered()), this, SLOT(goToPreviousPage())); - - // Adopt view, show window - showRegular(); + connect(next, SIGNAL(triggered()), this, SLOT(goToNextPage())); + connect(prev, SIGNAL(triggered()), this, SLOT(goToPreviousPage())); #ifdef DORIAN_TEST_MODEL (void)new ModelTest(Library::instance(), this); @@ -182,6 +168,9 @@ void MainWindow::initialize() library->setNowReading(sorted.mapToSource(sorted.index(0, 0))); } } + + // Show in regular (non full-screen) mode + showRegular(); } void MainWindow::onCurrentBookChanged() @@ -195,55 +184,15 @@ void MainWindow::showRegular() TRACE; // Re-parent children - fullScreenWindow->leaveChildren(); - QList otherChildren; - otherChildren << progress << previousButton << nextButton; - takeChildren(view, otherChildren); - - // Adjust geometry of decorations - - QRect geo = geometry(); - qDebug() << geo; - int y = geo.height() - progress->thickness(); -#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) - bool hasToolBar = false; -# if defined(Q_OS_SYMBIAN) - hasToolBar = - (QApplication::desktop()->width() < QApplication::desktop()->height()); - qDebug() << (hasToolBar? "Portrait": "Landscape"); -# endif - if (!hasToolBar) { - y -= toolBar->height(); - } -#endif - progress->setGeometry(0, y, geo.width(), y + progress->thickness()); - -#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) - y = geo.height() - TranslucentButton::pixels; - if (!hasToolBar) { - y -= toolBar->height(); - } - previousButton->setGeometry(0, y, 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 - 25, - toolBar->height(), TranslucentButton::pixels, - TranslucentButton::pixels); -#endif // Q_WS_MAEMO_5 - qDebug() << "previousButton geometry" << previousButton->geometry(); + fullScreenWindow->leaveBookView(); + takeBookView(view, prog, prev, next); fullScreenWindow->hide(); show(); + #if defined(Q_OS_SYMBIAN) activateWindow(); #endif - progress->flash(); - nextButton->flash(); - previousButton->flash(); } void MainWindow::showBig() @@ -251,33 +200,15 @@ void MainWindow::showBig() TRACE; // Re-parent children - leaveChildren(); - fullScreenWindow->takeChildren(view, progress, previousButton, nextButton); - - // Adjust geometry of decorations - QRect screen = QApplication::desktop()->screenGeometry(); - int y = screen.height() - progress->thickness(); - progress->setGeometry(0, y, screen.width(), y + progress->thickness()); -#if defined(Q_WS_MAEMO_5) - nextButton->setGeometry(screen.width() - TranslucentButton::pixels, 0, - TranslucentButton::pixels, TranslucentButton::pixels); -#else - nextButton->setGeometry(screen.width() - TranslucentButton::pixels - 25, 0, - TranslucentButton::pixels, TranslucentButton::pixels); -#endif // Q_WS_MAEMO_5 - previousButton->setGeometry(0, screen.height() - TranslucentButton::pixels, - TranslucentButton::pixels, TranslucentButton::pixels); + leaveBookView(); + fullScreenWindow->takeBookView(view, prog, prev, next); -#ifdef Q_OS_SYMBIAN - hide(); -#endif fullScreenWindow->showFullScreen(); + hide(); + #ifdef Q_OS_SYMBIAN fullScreenWindow->activateWindow(); #endif - progress->flash(); - nextButton->flash(); - previousButton->flash(); } void MainWindow::setCurrentBook(const QModelIndex ¤t) @@ -324,13 +255,6 @@ void MainWindow::showBookmarks() } } -void MainWindow::closeEvent(QCloseEvent *event) -{ - TRACE; - view->setLastBookmark(); - AdopterWindow::closeEvent(event); -} - void MainWindow::onSettingsChanged(const QString &key) { #if defined(Q_WS_MAEMO_5) @@ -440,37 +364,6 @@ void MainWindow::timerEvent(QTimerEvent *event) AdopterWindow::timerEvent(event); } -void MainWindow::resizeEvent(QResizeEvent *e) -{ - TRACE; - - int toolBarHeight = 0; - -#ifdef Q_OS_SYMBIAN - // Tool bar is only useful in portrait mode - bool isPortrait = (e->size().width() < e->size().height()); - toolBar->setVisible(isPortrait); - if (!isPortrait) { - toolBarHeight = toolBar->height(); - } -#endif // Q_OS_SYMBIAN - - if (bookView) { - qDebug() << "BookView geometry" << bookView->geometry(); - QRect geo = bookView->geometry(); - progress->setGeometry(geo.x(), - geo.y() + geo.height() - progress->thickness() + toolBarHeight, - geo.width(), progress->thickness()); - previousButton->setGeometry(geo.x(), - geo.y() + geo.height() - TranslucentButton::pixels + toolBarHeight, - TranslucentButton::pixels, TranslucentButton::pixels); - nextButton->setGeometry( - geo.x() + geo.width() - TranslucentButton::pixels, - geo.y(), TranslucentButton::pixels, TranslucentButton::pixels); - } - QMainWindow::resizeEvent(e); -} - void MainWindow::about() { Dyalog *aboutDialog = new Dyalog(this, false); @@ -483,8 +376,8 @@ void MainWindow::about() label->setText(tr("Dorian %1

Copyright © 2010 " "Akos Polster <akos@pipacs.com>
" "Licensed under GNU General Public License, Version 3
" - "Source code:
" - "garage.maemo.org/projects/dorian").arg(version)); + "Source code:
" + "dorian.garage.maemo.org").arg(version)); aboutDialog->addWidget(label); aboutDialog->addStretch(); aboutDialog->show(); @@ -492,15 +385,15 @@ void MainWindow::about() void MainWindow::goToNextPage() { - nextButton->flash(); - previousButton->flash(); + next->flash(); + prev->flash(); view->goNextPage(); } void MainWindow::goToPreviousPage() { - nextButton->flash(); - previousButton->flash(); + next->flash(); + prev->flash(); view->goPreviousPage(); }