diff --git a/YACReaderLibrary/headless/console_ui_library_creator.cpp b/YACReaderLibrary/headless/console_ui_library_creator.cpp index e280ff21..3246fbdb 100644 --- a/YACReaderLibrary/headless/console_ui_library_creator.cpp +++ b/YACReaderLibrary/headless/console_ui_library_creator.cpp @@ -33,11 +33,24 @@ void ConsoleUILibraryCreator::createLibrary(const QString & name, const QString void ConsoleUILibraryCreator::updateLibrary(const QString & path) { - //TODO - //connect(libraryCreator,SIGNAL(failedUpdatingDB(QString)),this,SLOT(manageUpdatingError(QString))); + QEventLoop eventLoop; + LibraryCreator * libraryCreator = new LibraryCreator(); + + libraryCreator->updateLibrary(QDir::cleanPath(path),QDir::cleanPath(path)+"/.yacreaderlibrary"); + + connect(libraryCreator, &LibraryCreator::finished, this, &ConsoleUILibraryCreator::done); + connect(libraryCreator, &LibraryCreator::comicAdded, this, &ConsoleUILibraryCreator::newComic); + connect(libraryCreator, &LibraryCreator::failedOpeningDB, this, &ConsoleUILibraryCreator::manageUpdatingError); + + connect(libraryCreator, &LibraryCreator::finished, &eventLoop, &QEventLoop::quit); + + std::cout << "Processing comics"; + + libraryCreator->start(); + eventLoop.exec(); } -void ConsoleUILibraryCreator::newComic(const QString & relativeComicPath, const QString & coverPath) +void ConsoleUILibraryCreator::newComic(const QString & /*relativeComicPath*/, const QString & /*coverPath*/) { numComicsProcessed++; std::cout << "."; @@ -48,8 +61,15 @@ void ConsoleUILibraryCreator::manageCreatingError(const QString & error) std::cout << std::endl << "Error creating library! " << error.toUtf8().constData(); } +void ConsoleUILibraryCreator::manageUpdatingError(const QString & error) +{ + std::cout << std::endl << "Error updating library! " << error.toUtf8().constData(); +} + void ConsoleUILibraryCreator::done() { - std::cout << "Done!" << std::endl; - std::cout << "Number of comis processed = " << numComicsProcessed << std::endl; + std::cout << "Done!" << std::endl; + + if(numComicsProcessed > 0) + std::cout << "Number of comis processed = " << numComicsProcessed << std::endl; } diff --git a/YACReaderLibrary/headless/console_ui_library_creator.h b/YACReaderLibrary/headless/console_ui_library_creator.h index cec80248..73f1e67d 100644 --- a/YACReaderLibrary/headless/console_ui_library_creator.h +++ b/YACReaderLibrary/headless/console_ui_library_creator.h @@ -20,6 +20,7 @@ public slots: protected slots: void newComic(const QString & relativeComicPath, const QString & coverPath); void manageCreatingError(const QString & error); + void manageUpdatingError(const QString & error); void done(); }; diff --git a/YACReaderLibrary/headless/main.cpp b/YACReaderLibrary/headless/main.cpp index 60714606..d9c3889e 100644 --- a/YACReaderLibrary/headless/main.cpp +++ b/YACReaderLibrary/headless/main.cpp @@ -175,7 +175,15 @@ int main( int argc, char ** argv ) if(args.length() != 2) { parser.showHelp(); + return 0; } + + const QStringList updateArgs = parser.positionalArguments(); + + ConsoleUILibraryCreator * libraryCreatorUI = new ConsoleUILibraryCreator; + libraryCreatorUI->updateLibrary(updateArgs.at(1)); + + return 0; } else if(command == "list-libraries") {