X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=5d2389f78a3fd727f3f0eff9c70e3a7e03aa4b70;hb=b8921e5fcde05a998f387b747925fa196863bafd;hp=6511bd994ac9ff95a7759ae5a31317c7fde1d0ac;hpb=6de16d43da4ef15e56e83bc4a1bb83f218a9ee3c;p=dorian diff --git a/mainwindow.cpp b/mainwindow.cpp index 6511bd9..5d2389f 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -39,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" @@ -116,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); @@ -125,13 +136,11 @@ 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/2BR02B.epub"); } @@ -297,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); } @@ -426,7 +434,7 @@ 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); @@ -456,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(); +} +