X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=8694cd24ebce2cad3f28cbf1e10a4a8f6a7652cb;hb=HEAD;hp=4ab3b90b5b147e5a19a7a59333ab939e63bedad9;hpb=64d9b66f8f115b249a18b08d41eeb034cb5763d9;p=dorian diff --git a/mainwindow.cpp b/mainwindow.cpp index 4ab3b90..8694cd2 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -43,10 +43,6 @@ MainWindow::MainWindow(QWidget *parent): setAttribute(Qt::WA_Maemo5StackedWindow, true); #endif -#ifndef Q_OS_SYMBIAN - setWindowTitle("Dorian"); -#endif - // Central widget. Must be an intermediate, because the book view widget // might be re-parented later QFrame *central = new QFrame(this); @@ -122,7 +118,7 @@ MainWindow::MainWindow(QWidget *parent): connect(view, SIGNAL(progress(qreal)), prog, SLOT(setProgress(qreal))); // Shadow window for full screen reading - fullScreenWindow = new FullScreenWindow(this); + fullScreenWindow = new FullScreenWindow(); connect(fullScreenWindow, SIGNAL(restore()), this, SLOT(showRegular())); // Handle settings changes @@ -138,11 +134,19 @@ MainWindow::MainWindow(QWidget *parent): #endif } +MainWindow::~MainWindow() +{ + delete fullScreenWindow; +} + 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(); @@ -167,9 +171,6 @@ void MainWindow::initialize() library->setNowReading(sorted.mapToSource(sorted.index(0, 0))); } } - - // Show in regular (non full-screen) mode - showRegular(); } void MainWindow::onCurrentBookChanged() @@ -182,28 +183,30 @@ void MainWindow::showRegular() { TRACE; - // Re-parent children + view->setLastBookmark(); fullScreenWindow->leaveBookView(); takeBookView(view, prog, prev, next); fullScreenWindow->hide(); show(); + view->scheduleRestoreLastBookmark(); } void MainWindow::showBig() { TRACE; - // Re-parent children + view->setLastBookmark(); leaveBookView(); fullScreenWindow->takeBookView(view, prog, prev, next); -#ifdef Q_WS_MAEMO_5 +#if defined(Q_WS_MAEMO_5) fullScreenWindow->raise(); #else hide(); #endif fullScreenWindow->showFullScreen(); + view->scheduleRestoreLastBookmark(); } void MainWindow::setCurrentBook(const QModelIndex ¤t) @@ -229,6 +232,7 @@ void MainWindow::rotate() QString current = Settings::instance()->value("orientation", Platform::instance()->defaultOrientation()).toString(); QString target = (current == "landscape")? "portrait": "landscape"; + view->setLastBookmark(); Settings::instance()->setValue("orientation", target); } @@ -256,7 +260,6 @@ void MainWindow::onSettingsChanged(const QString &key) qDebug() << "Key" << key; if (key == "orientation") { - view->setLastBookmark(); QString value = Settings::instance()->value(key, Platform::instance()->defaultOrientation()).toString(); qDebug() << "Value: orientation" << value; @@ -355,6 +358,12 @@ void MainWindow::about() Dyalog *aboutDialog = new Dyalog(this, false); aboutDialog->setWindowTitle(tr("About Dorian")); QString version = Platform::instance()->version(); +#if !defined(Q_WS_MAEMO_5) && !defined(Q_OS_SYMBIAN) + QLabel *icon = new QLabel(aboutDialog); + QPixmap pixmap(Platform::instance()->icon("dorian")); + icon->setPixmap(pixmap); + aboutDialog->addWidget(icon); +#endif QLabel *label = new QLabel(aboutDialog); label->setTextFormat(Qt::RichText); label->setOpenExternalLinks(true);