X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=mainwindow.cpp;h=c8f5dfe93646f7059993750de18f110579809ca8;hb=7a3717897911dc312fc22afe687a42ed0afd1da1;hp=22a06fe594050bc14818853a56fa1ada046ab693;hpb=166f29f9d4d6e2ed8080e78d38f45edd68315be4;p=dorian
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 22a06fe..c8f5dfe 100755
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -42,10 +42,13 @@ MainWindow::MainWindow(QWidget *parent):
#ifdef Q_WS_MAEMO_5
setAttribute(Qt::WA_Maemo5StackedWindow, true);
#endif
+
+#ifndef Q_OS_SYMBIAN
setWindowTitle("Dorian");
+#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);
@@ -54,46 +57,44 @@ MainWindow::MainWindow(QWidget *parent):
// Book view
view = new BookView(this);
- view->show();
// 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
- addToolBarSpace();
+ 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);
@@ -107,7 +108,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()));
@@ -183,13 +185,13 @@ void MainWindow::showRegular()
// Re-parent children
fullScreenWindow->leaveBookView();
takeBookView(view, prog, prev, next);
-
fullScreenWindow->hide();
- show();
-#if 0 // #if defined(Q_OS_SYMBIAN)
- activateWindow();
+#ifdef Q_OS_SYMBIAN
+ view->setFixedSize(Platform::availableSize().width(),
+ Platform::availableSize().height() - Platform::softKeyHeight());
#endif
+ show();
}
void MainWindow::showBig()
@@ -199,13 +201,12 @@ void MainWindow::showBig()
// Re-parent children
leaveBookView();
fullScreenWindow->takeBookView(view, prog, prev, next);
-
- fullScreenWindow->showFullScreen();
hide();
-#if 0 // #ifdef Q_OS_SYMBIAN
- fullScreenWindow->activateWindow();
+#ifdef Q_OS_SYMBIAN
+ view->setFixedSize(Platform::size());
#endif
+ fullScreenWindow->showFullScreen();
}
void MainWindow::setCurrentBook(const QModelIndex ¤t)
@@ -226,12 +227,12 @@ 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";
+ Settings::instance()->setValue("orientation", target);
}
void MainWindow::showDevTools()
@@ -252,45 +253,29 @@ void MainWindow::showBookmarks()
}
}
-void MainWindow::closeEvent(QCloseEvent *event)
+void MainWindow::onSettingsChanged(const QString &key)
{
TRACE;
- view->setLastBookmark();
- AdopterWindow::closeEvent(event);
-}
+ qDebug() << "Key" << key;
-void MainWindow::onSettingsChanged(const QString &key)
-{
-#if defined(Q_WS_MAEMO_5)
if (key == "orientation") {
+ view->setLastBookmark();
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()
@@ -377,11 +362,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();