X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=5d2389f78a3fd727f3f0eff9c70e3a7e03aa4b70;hb=3b121044d50c15f5b82d986537b5f2ca115bc859;hp=850c07055c44296e7b0a4e7f99b05429d46d8be2;hpb=2cd5dacabee31add2369542fc21f34a81dd50294;p=dorian diff --git a/mainwindow.cpp b/mainwindow.cpp index 850c070..5d2389f 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include #ifdef Q_WS_MAEMO_5 # include @@ -37,12 +39,6 @@ # include "modeltest.h" #endif -#ifdef Q_WS_MAC -# define ICON_PREFIX ":/icons/mac/" -#else -# define ICON_PREFIX ":/icons/" -#endif - const int PROGRESS_HEIGHT = 17; static const char *DORIAN_VERSION = #include "pkg/version.txt" @@ -114,8 +110,25 @@ MainWindow::MainWindow(QWidget *parent): connect(Library::instance(), SIGNAL(nowReadingChanged()), this, SLOT(onCurrentBookChanged())); - // Load book on command line, or load last read book, or load default book + // Load library, upgrade it if needed + libraryProgress = new QProgressDialog(tr("Upgrading library"), "", 0, 0, this); + libraryProgress->reset(); + libraryProgress->setMinimumDuration(0); + libraryProgress->setWindowModality(Qt::WindowModal); + libraryProgress->setCancelButton(0); Library *library = Library::instance(); + 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())); + connect(library, SIGNAL(beginLoad(int)), this, SLOT(onBeginLoad(int))); + connect(library, SIGNAL(loading(const QString &)), + this, SLOT(onLoading(const QString &))); + connect(library, SIGNAL(endLoad()), this, SLOT(onEndLoad())); + library->upgrade(); + library->load(); + + // Load book on command line, or load last read book, or load default book if (QCoreApplication::arguments().size() == 2) { QString path = QCoreApplication::arguments()[1]; library->add(path); @@ -123,15 +136,13 @@ MainWindow::MainWindow(QWidget *parent): if (index.isValid()) { library->setNowReading(index); } - } - else { + } else { QModelIndex index = library->nowReading(); if (index.isValid()) { library->setNowReading(index); - } - else { + } else { if (!library->rowCount()) { - library->add(":/books/2 B R 0 2 B.epub"); + library->add(":/books/2BR02B.epub"); } library->setNowReading(library->index(0)); } @@ -199,7 +210,7 @@ void MainWindow::showRegular() #else previousButton->setGeometry(0, geo.height() - TranslucentButton::pixels, TranslucentButton::pixels, TranslucentButton::pixels); - nextButton->setGeometry(geo.width() - 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(); @@ -218,8 +229,13 @@ void MainWindow::showBig() otherChildren << progress << nextButton << previousButton; QRect screen = QApplication::desktop()->screenGeometry(); progress->setGeometry(0, 0, screen.width(), PROGRESS_HEIGHT); +#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); @@ -251,7 +267,8 @@ void MainWindow::showSettings() void MainWindow::showInfo() { if (mCurrent.isValid()) { - (new InfoDialog(Library::instance()->book(mCurrent), this, false))->exec(); + (new InfoDialog(Library::instance()->book(mCurrent), this, false))-> + exec(); } } @@ -289,8 +306,7 @@ void MainWindow::onSettingsChanged(const QString &key) if (value == "portrait") { setAttribute(Qt::WA_Maemo5LandscapeOrientation, false); setAttribute(Qt::WA_Maemo5PortraitOrientation, true); - } - else { + } else { setAttribute(Qt::WA_Maemo5PortraitOrientation, false); setAttribute(Qt::WA_Maemo5LandscapeOrientation, true); } @@ -407,7 +423,7 @@ void MainWindow::resizeEvent(QResizeEvent *e) #else previousButton->setGeometry(0, e->size().height() - TranslucentButton::pixels, TranslucentButton::pixels, TranslucentButton::pixels); - nextButton->setGeometry(e->size().width() - TranslucentButton::pixels, + nextButton->setGeometry(e->size().width() - TranslucentButton::pixels - 25, toolBar->height(), TranslucentButton::pixels, TranslucentButton::pixels); #endif // Q_WS_MAEMO_5 qDebug() << "previousButton geometry" << previousButton->geometry(); @@ -418,17 +434,19 @@ void MainWindow::resizeEvent(QResizeEvent *e) void MainWindow::about() { - Dyalog *aboutDialog = new Dyalog(this); + Dyalog *aboutDialog = new Dyalog(this, false); aboutDialog->setWindowTitle(tr("About Dorian")); QLabel *label = new QLabel(aboutDialog); 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: " "garage.maemo.org/projects/dorian").arg(DORIAN_VERSION)); aboutDialog->addWidget(label); + aboutDialog->addStretch(); aboutDialog->show(); } @@ -446,3 +464,45 @@ void MainWindow::goToPreviousPage() previousButton->flash(1500); view->goPreviousPage(); } + +void MainWindow::onBeginUpgrade(int total) +{ + libraryProgress->setVisible(total > 0); + libraryProgress->setWindowTitle(tr("Upgrading library")); + libraryProgress->setMaximum(total); +} + +void MainWindow::onUpgrading(const QString &path) +{ + libraryProgress->setLabelText(tr("Upgrading %1"). + arg(QFileInfo(path).fileName())); + libraryProgress->setValue(libraryProgress->value() + 1); +} + +void MainWindow::onEndUpgrade() +{ + libraryProgress->hide(); + libraryProgress->reset(); +} + + +void MainWindow::onBeginLoad(int total) +{ + libraryProgress->setVisible(total > 0); + libraryProgress->setWindowTitle(tr("Loading library")); + libraryProgress->setMaximum(total); +} + +void MainWindow::onLoading(const QString &path) +{ + libraryProgress->setLabelText(tr("Loading %1"). + arg(QFileInfo(path).fileName())); + libraryProgress->setValue(libraryProgress->value() + 1); +} + +void MainWindow::onEndLoad() +{ + libraryProgress->hide(); + libraryProgress->reset(); +} +