| 135 | |
| 136 | // |
| 137 | void LibraryCreator::run() |
| 138 | { |
| 139 | stopRunning = false; |
| 140 | canceled = false; |
| 141 | #if !defined use_unarr && !defined use_libarchive |
| 142 | auto sevenzLib = YACReader::load7zLibrary(); |
| 143 | |
| 144 | if (!sevenzLib->load()) { |
| 145 | QLOG_ERROR() << "Loading 7z.dll : " + sevenzLib->errorString() << Qt::endl; |
| 146 | QCoreApplication::exit(YACReader::SevenZNotFound); |
| 147 | exit(); |
| 148 | } |
| 149 | sevenzLib->deleteLater(); |
| 150 | #endif |
| 151 | if (_mode == CREATOR) { |
| 152 | QLOG_INFO() << "Starting to create new library ( " << _source << "," << _target << ")"; |
| 153 | _currentPathFolders.clear(); |
| 154 | // se crean los directorios .yacreaderlibrary y .yacreaderlibrary/covers |
| 155 | QDir dir; |
| 156 | dir.mkpath(LibraryPaths::libraryCoversPathFromLibraryDataPath(_target)); |
| 157 | |
| 158 | // se crea la base de datos .yacreaderlibrary/library.ydb |
| 159 | { |
| 160 | auto _database = DataBaseManagement::createDatabase("library", _target); // |
| 161 | _databaseConnection = _database.connectionName(); |
| 162 | if (!_database.isOpen()) { |
| 163 | QLOG_ERROR() << "Unable to create data base" << _database.lastError().databaseText() + "-" + _database.lastError().driverText(); |
| 164 | emit failedCreatingDB(_database.lastError().databaseText() + "-" + _database.lastError().driverText()); |
| 165 | creation = false; |
| 166 | return; |
| 167 | } |
| 168 | |
| 169 | _currentPathFolders.append(rootFolder(_database)); |
| 170 | |
| 171 | /*QSqlQuery pragma("PRAGMA foreign_keys = ON",_database);*/ |
| 172 | _database.transaction(); |
| 173 | // se crea la librería |
| 174 | create(QDir(_source)); |
| 175 | |
| 176 | DBHelper::updateChildrenInfo(_database); |
| 177 | |
| 178 | _database.commit(); |
| 179 | _database.close(); |
| 180 | } |
| 181 | QSqlDatabase::removeDatabase(_databaseConnection); |
| 182 | emit created(); |
| 183 | QLOG_INFO() << "Create library END"; |
| 184 | } else { |
| 185 | QLOG_INFO() << "Starting to update folder" << _sourceFolder << "in library ( " << _source << "," << _target << ")"; |
| 186 | { |
| 187 | auto _database = DataBaseManagement::loadDatabase(_target); |
| 188 | |
| 189 | if (!_database.isValid()) { |
| 190 | QString error = "Unable to find database at: " + _target; |
| 191 | QLOG_ERROR() << error; |
| 192 | emit failedOpeningDB(error); |
| 193 | return; |
| 194 | } |
nothing calls this directly
no test coverage detected