X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=4b778ad1dd2fabc9fb2889d03fcbc4fb2849c68e;hb=d32af855518f5b94cda767f60c8a1b98b4602f99;hp=21194523b96fac76723ad0b37ab3dead38c5cbca;hpb=5b90676a3adb2b9df8504684093c165f684eac29;p=dorian diff --git a/mainwindow.cpp b/mainwindow.cpp index 2119452..4b778ad 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -48,7 +48,7 @@ MainWindow::MainWindow(QWidget *parent): #endif // Central widget. Must be an intermediate, because the book view widget - // can be re-parented later + // might be re-parented later QFrame *central = new QFrame(this); QVBoxLayout *layout = new QVBoxLayout(central); layout->setMargin(0); @@ -60,42 +60,41 @@ MainWindow::MainWindow(QWidget *parent): // Tool bar actions -#ifdef Q_OS_SYMBIAN - fullScreenAction = addToolBarAction(this, SLOT(showBig()), - "view-fullscreen", tr("Full screen")); -#endif - chaptersAction = addToolBarAction(this, SLOT(showChapters()), "chapters", tr("Chapters"), true); bookmarksAction = addToolBarAction(this, SLOT(showBookmarks()), "bookmarks", tr("Bookmarks"), true); - infoAction = addToolBarAction(this, SLOT(showInfo()), - "info", tr("Book info"), true); libraryAction = addToolBarAction(this, SLOT(showLibrary()), - "library", tr("Library"), true); + "library", tr("Library"), false); #ifdef Q_WS_MAEMO_5 settingsAction = menuBar()->addAction(tr("Settings")); connect(settingsAction, SIGNAL(triggered()), this, SLOT(showSettings())); devToolsAction = menuBar()->addAction(tr("Developer")); connect(devToolsAction, SIGNAL(triggered()), this, SLOT(showDevTools())); - QAction *aboutAction = menuBar()->addAction(tr("About")); - connect(aboutAction, SIGNAL(triggered()), this, SLOT(about())); #else settingsAction = addToolBarAction(this, SLOT(showSettings()), "preferences-system", tr("Settings")); devToolsAction = addToolBarAction(this, SLOT(showDevTools()), "developer", tr("Developer")); - addToolBarAction(this, SLOT(about()), "about", tr("About")); -#endif // Q_WS_MAEMO_5 +#endif -#ifndef Q_OS_SYMBIAN + rotateAction = addToolBarAction(this, SLOT(rotate()), + "rotate", tr("Rotate"), true); addToolBarSpace(); fullScreenAction = addToolBarAction(this, SLOT(showBig()), - "view-fullscreen", tr("Full screen")); + "view-fullscreen", tr("Full screen"), true); + +#if defined(Q_WS_MAEMO_5) + QAction *aboutAction = menuBar()->addAction(tr("About")); + connect(aboutAction, SIGNAL(triggered()), this, SLOT(about())); #else - (void)addToolBarAction(this, SLOT(close()), "", tr("Exit")); -#endif + addToolBarAction(this, SLOT(about()), "about", tr("About")); +#endif // defined(Q_WS_MAEMO_5) + +#if defined(Q_OS_SYMBIAN) + (void)addToolBarAction(this, SLOT(close()), "", tr("Exit"), false); +#endif // defined(Q_OS_SYMBIAN) // Decorations prev = new TranslucentButton("back", this); @@ -144,6 +143,9 @@ void MainWindow::initialize() TRACE; Library *library = Library::instance(); + // Show in regular (non full-screen) mode + showRegular(); + // Upgrade library if needed, then load it library->upgrade(); library->load(); @@ -168,9 +170,6 @@ void MainWindow::initialize() library->setNowReading(sorted.mapToSource(sorted.index(0, 0))); } } - - // Show in regular (non full-screen) mode - showRegular(); } void MainWindow::onCurrentBookChanged() @@ -183,32 +182,30 @@ void MainWindow::showRegular() { TRACE; - // Re-parent children + view->setLastBookmark(); fullScreenWindow->leaveBookView(); takeBookView(view, prog, prev, next); fullScreenWindow->hide(); show(); - -#if defined(Q_OS_SYMBIAN) - activateWindow(); -#endif + view->scheduleRestoreLastBookmark(); } void MainWindow::showBig() { TRACE; - // Re-parent children + view->setLastBookmark(); leaveBookView(); fullScreenWindow->takeBookView(view, prog, prev, next); - fullScreenWindow->showFullScreen(); +#ifdef Q_WS_MAEMO_5 + fullScreenWindow->raise(); +#else hide(); - -#ifdef Q_OS_SYMBIAN - fullScreenWindow->activateWindow(); #endif + fullScreenWindow->showFullScreen(); + view->scheduleRestoreLastBookmark(); } void MainWindow::setCurrentBook(const QModelIndex ¤t) @@ -229,17 +226,18 @@ void MainWindow::showSettings() (new SettingsWindow(this))->show(); } -void MainWindow::showInfo() +void MainWindow::rotate() { - if (mCurrent.isValid()) { - (new InfoDialog(Library::instance()->book(mCurrent), this, false))-> - exec(); - } + QString current = Settings::instance()->value("orientation", + Platform::instance()->defaultOrientation()).toString(); + QString target = (current == "landscape")? "portrait": "landscape"; + view->setLastBookmark(); + Settings::instance()->setValue("orientation", target); } void MainWindow::showDevTools() { - (new DevTools())->exec(); + (new DevTools(this))->exec(); } void MainWindow::showBookmarks() @@ -257,36 +255,26 @@ void MainWindow::showBookmarks() void MainWindow::onSettingsChanged(const QString &key) { -#if defined(Q_WS_MAEMO_5) + TRACE; + qDebug() << "Key" << key; + if (key == "orientation") { QString value = Settings::instance()->value(key, Platform::instance()->defaultOrientation()).toString(); - qDebug() << "MainWindow::onSettingsChanged: orientation" << value; - if (value == "portrait") { - setAttribute(Qt::WA_Maemo5LandscapeOrientation, false); - setAttribute(Qt::WA_Maemo5PortraitOrientation, true); - fullScreenWindow->setAttribute(Qt::WA_Maemo5LandscapeOrientation, - false); - fullScreenWindow->setAttribute(Qt::WA_Maemo5PortraitOrientation, true); - } else { - setAttribute(Qt::WA_Maemo5PortraitOrientation, false); - setAttribute(Qt::WA_Maemo5LandscapeOrientation, true); - fullScreenWindow->setAttribute(Qt::WA_Maemo5PortraitOrientation, - false); - fullScreenWindow->setAttribute(Qt::WA_Maemo5LandscapeOrientation, - true); - } - } else if (key == "lightson") { + qDebug() << "Value: orientation" << value; + Platform::instance()->setOrientation(this, value); + Platform::instance()->setOrientation(fullScreenWindow, value); + } + +#if defined(Q_WS_MAEMO_5) + else if (key == "lightson") { bool enable = Settings::instance()->value(key, false).toBool(); - qDebug() << "MainWindow::onSettingsChanged: lightson" << enable; killTimer(preventBlankingTimer); if (enable) { preventBlankingTimer = startTimer(29 * 1000); } } -#else - Q_UNUSED(key); -#endif // Q_WS_MAEMO_5 +#endif // defined(Q_WS_MAEMO_5) } void MainWindow::onPartLoadStart() @@ -373,11 +361,13 @@ void MainWindow::about() label->setTextFormat(Qt::RichText); label->setOpenExternalLinks(true); label->setWordWrap(true); - label->setText(tr("Dorian %1

Copyright © 2010 " - "Akos Polster <akos@pipacs.com>
" - "Licensed under GNU General Public License, Version 3
" - "Source code:
" - "dorian.garage.maemo.org").arg(version)); + label->setText(tr("Dorian %1

" + "Copyright © 2010-2011 by " + "Akos Polster <akos@pipacs.com>

" + "Licensed under GNU General Public License, Version 3

" + "" + "dorian.garage.maemo.org

" + ).arg(version)); aboutDialog->addWidget(label); aboutDialog->addStretch(); aboutDialog->show();