diff --git a/YACReaderLibrary/library_creator.cpp b/YACReaderLibrary/library_creator.cpp index ab3d57bd..6402ef2f 100644 --- a/YACReaderLibrary/library_creator.cpp +++ b/YACReaderLibrary/library_creator.cpp @@ -69,10 +69,15 @@ void LibraryCreator::run() //se crea la base de datos .yacreaderlibrary/library.ydb _database = DataBaseManagement::createDatabase("library",_target);// - /*if(!_database.open()) - return; //TODO avisar del problema + if(!_database.isOpen()) + { + emit failedCreatingDB(_database.lastError().databaseText() + "-" + _database.lastError().driverText()); + emit finished(); + creation = false; + return; + } - QSqlQuery pragma("PRAGMA foreign_keys = ON",_database);*/ + /*QSqlQuery pragma("PRAGMA foreign_keys = ON",_database);*/ _database.transaction(); //se crea la librería create(QDir(_source)); @@ -87,8 +92,13 @@ void LibraryCreator::run() _currentPathFolders.append(Folder(1,1,"root","/")); _database = DataBaseManagement::loadDatabase(_target); //_database.setDatabaseName(_target+"/library.ydb"); - /*if(!_database.open()) - return; //TODO avisar del problema*/ + if(!_database.open()) + { + emit failedOpeningDB(_database.lastError().databaseText() + "-" + _database.lastError().driverText()); + emit finished(); + creation = false; + return; + } //QSqlQuery pragma("PRAGMA foreign_keys = ON",_database); _database.transaction(); update(QDir(_source)); @@ -101,7 +111,7 @@ void LibraryCreator::run() else emit(created()); } - msleep(100);//TODO try to solve the problem with the udpate dialog + msleep(100);//TODO try to solve the problem with the udpate dialog (ya no se usa más...) emit(finished()); creation = false; } diff --git a/YACReaderLibrary/library_creator.h b/YACReaderLibrary/library_creator.h index 925792a8..3b8aa210 100644 --- a/YACReaderLibrary/library_creator.h +++ b/YACReaderLibrary/library_creator.h @@ -55,6 +55,8 @@ void comicAdded(QString,QString); void updated(); void created(); + void failedCreatingDB(QString); + void failedOpeningDB(QString); }; class ThumbnailCreator : public QObject diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index be84fff4..f933887e 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -624,16 +624,16 @@ void LibraryWindow::createConnections() connect(importComicsInfoDialog,SIGNAL(finished(int)),this,SLOT(reloadCurrentLibrary())); connect(libraryCreator,SIGNAL(coverExtracted(QString)),createLibraryDialog,SLOT(showCurrentFile(QString))); - connect(libraryCreator,SIGNAL(finished()),createLibraryDialog,SLOT(close())); connect(libraryCreator,SIGNAL(coverExtracted(QString)),updateLibraryDialog,SLOT(showCurrentFile(QString))); - connect(libraryCreator,SIGNAL(finished()),updateLibraryDialog,SLOT(close())); connect(libraryCreator,SIGNAL(finished()),this,SLOT(showRootWidget())); connect(libraryCreator,SIGNAL(updated()),this,SLOT(reloadCurrentLibrary())); connect(libraryCreator,SIGNAL(created()),this,SLOT(openLastCreated())); - //new import widget connect(libraryCreator,SIGNAL(comicAdded(QString,QString)),importWidget,SLOT(newComic(QString,QString))); - //connect(libraryCreator,SIGNAL(finished()),importWidget,SLOT(clear())); - //connect(importWidget,SIGNAL(stop()),this,SLOT(cancelCreating())); + //libraryCreator errors + connect(libraryCreator,SIGNAL(failedCreatingDB(QString)),this,SLOT(manageCreatingError(QString))); + connect(libraryCreator,SIGNAL(failedUpdatingDB(QString)),this,SLOT(manageUpdatingError(QString))); + + //new import widget connect(importWidget,SIGNAL(stop()),this,SLOT(stopLibraryCreator())); //packageManager connections @@ -812,17 +812,25 @@ void LibraryWindow::loadLibrary(const QString & name) deleteCurrentLibrary(); } } - else//si existe el path, puede ser que la librería sea alguna versión pre-5.0 ó que esté corrupta + else//si existe el path, puede ser que la librería sea alguna versión pre-5.0 ó que esté corrupta o que no haya drivers sql { - QString currentLibrary = selectedLibrary->currentText(); - QString path = libraries.value(selectedLibrary->currentText()); - if(QMessageBox::question(this,tr("Old library or corrupted"),tr("Library ")+currentLibrary+tr(" is corrupted or has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now?"),QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes) + QSqlDatabase db = DataBaseManagement::loadDatabase(path); + if(d.exists(path+"/library.ydb")) { - QDir d(path+"/.yacreaderlibrary"); - delTree(d); - d.rmdir(path+"/.yacreaderlibrary"); - createLibraryDialog->setDataAndStart(currentLibrary,path); - //create(path,path+"/.yacreaderlibrary",currentLibrary); + manageOpeningLibraryError(db.lastError().databaseText() + "-" + db.lastError().driverText()); + } + else + { + QString currentLibrary = selectedLibrary->currentText(); + QString path = libraries.value(selectedLibrary->currentText()); + if(QMessageBox::question(this,tr("Old library"),tr("Library ")+currentLibrary+tr("has been created with an older version of YACReaderLibrary. It must be created again. Do you want to create the library now?"),QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes) + { + QDir d(path+"/.yacreaderlibrary"); + delTree(d); + d.rmdir(path+"/.yacreaderlibrary"); + createLibraryDialog->setDataAndStart(currentLibrary,path); + //create(path,path+"/.yacreaderlibrary",currentLibrary); + } } } } @@ -1148,17 +1156,6 @@ void LibraryWindow::updateLibrary() libraryCreator->start(); } -/* -void LibraryWindow::deleteLibrary() -{ - QString currentLibrary = selectedLibrary->currentText(); - if(QMessageBox::question(this,tr("Are you sure?"),tr("Do you want delete ")+currentLibrary+" library?",QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes) - { - deleteCurrentLibrary(); - } -} -*/ - void LibraryWindow::deleteCurrentLibrary() { //QSqlDatabase db = dm->getDatabase(); @@ -1429,47 +1426,6 @@ void LibraryWindow::reloadOptions() comicFlow->updateConfig(settings); } -//TODO esto sobra -void LibraryWindow::updateFoldersView(QString path) -{ - //QModelIndex mi = dm->index(path); - //int rowCount = dm->rowCount(mi); - //if(!fetching) - //{ - // //fetching = true; - // for(int i=0;ifetchMore(dm->index(i,0,mi)); - // //int childCount = dm->rowCount(dm->index(i,0,mi)); - // //if(childCount>0) - // // QMessageBox::critical(NULL,tr("..."),tr("-----")); - // fetching = false; - // } - //} - -} - -void LibraryWindow::searchInFiles(int state) -{ - - if(state == Qt::Checked) - { - if(!foldersFilter->text().isEmpty()) - { - dm->setFilter(foldersFilter->text(), true); - foldersView->expandAll(); - } - } - else - { - if(!foldersFilter->text().isEmpty()) - { - dm->setFilter(foldersFilter->text(), false); - foldersView->expandAll(); - } - } -} - QString LibraryWindow::currentPath() { return libraries.value(selectedLibrary->currentText()); @@ -1599,4 +1555,19 @@ void LibraryWindow::showImportingWidget() importWidget->clear(); libraryToolBar->setDisabled(true); mainWidget->setCurrentIndex(2); +} + +void LibraryWindow::manageCreatingError(const QString & error) +{ + QMessageBox::critical(this,tr("Error creating the library"),error); +} + +void LibraryWindow::manageUpdatingError(const QString & error) +{ + QMessageBox::critical(this,tr("Error updating the library"),error); +} + +void LibraryWindow::manageOpeningLibraryError(const QString & error) +{ + QMessageBox::critical(this,tr("Error opening the library"),error); } \ No newline at end of file diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index c9160179..9d254b15 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -218,13 +218,11 @@ public: void exportLibrary(QString destPath); void importLibrary(QString clc,QString destPath,QString name); void reloadOptions(); - void updateFoldersView(QString); void setCurrentComicsStatusReaded(bool readed); void setCurrentComicReaded(); void setCurrentComicUnreaded(); void setComicsReaded(); void setComicsUnreaded(); - void searchInFiles(int); void hideComicFlow(bool hide); void showExportComicsInfo(); void showImportComicsInfo(); @@ -232,6 +230,9 @@ public: void showNoLibrariesWidget(); void showRootWidget(); void showImportingWidget(); + void manageCreatingError(const QString & error); + void manageUpdatingError(const QString & error); + void manageOpeningLibraryError(const QString & error); //server interface QMap getLibraries(){return libraries;};