void Database::RemoveFile(QString file) { if(!open) return; QMutexLocker locker(&lock); TRN; _RemoveFile(file); }
status_t PathHandler::_RemoveFile(BEntry& entry) { node_ref nodeRef; status_t status = entry.GetNodeRef(&nodeRef); if (status != B_OK) return status; return _RemoveFile(nodeRef); }
int CGenerateSQLFile::_RemoveOldSQLFiles() { int nFunRes = 0; nFunRes = _RemoveFile(m_strDirSqlH); if (0 != nFunRes) { nFunRes = -1; return nFunRes; } nFunRes = _RemoveFile(m_strDirSqlMacrodefH); if (0 != nFunRes) { nFunRes = -1; return nFunRes; } //remove(m_strDirErrorReport.c_str()); //defSQLFilename_ErrorReport return nFunRes; }
void Database::RemoveAttribute(const QString attr, QString val) { if(!open) return; int id = AddAttribute(attr, val); if(id > 0) { QSqlQuery q("", db); q.prepare("select File from Song where "+attr+" = "+QString::number(id)); q.exec(); while(q.next()) { _RemoveFile(q.value(0).toString()); } //QSqlQuery q0("delete from Song where "+attr+" = "+QString::number(id), db); QSqlQuery q1("delete from "+attr+" where ID = "+QString::number(id), db); } }
void Database::_RemoveAlbum(QString album, int artist) { if(!artist) RemoveAttribute(nAlbum, album); else { if(!open) return; int id = _AddAlbum(album, artist); if(id > 0) { QSqlQuery q("", db); q.prepare("select File from Song where Album = "+QString::number(id)); q.exec(); while(q.next()) { _RemoveFile(q.value(0).toString()); } QSqlQuery q1("delete from Album where ID = "+QString::number(id), db); } } }
void PathHandler::_EntryRemoved(BMessage* message) { node_ref nodeRef; uint64 directoryNode; if (message->FindInt32("device", &nodeRef.device) != B_OK || message->FindInt64("directory", (int64 *)&directoryNode) != B_OK || message->FindInt64("node", &nodeRef.node) != B_OK) return; bool contained; if (_HasDirectory(nodeRef, &contained)) { // the directory has been removed, so we remove it as well _RemoveDirectory(nodeRef, directoryNode); if (contained && !_WatchFilesOnly()) { message->AddBool("removed", true); _NotifyTarget(message, nodeRef); } } else if (_HasFile(nodeRef)) { message->AddBool("removed", true); _NotifyTarget(message, nodeRef); _RemoveFile(nodeRef); } }
void PathHandler::_EntryMoved(BMessage* message) { // has the entry been moved into a monitored directory or has // it been removed from one? const char* name; node_ref nodeRef; uint64 fromNode; uint64 node; if (message->FindInt32("device", &nodeRef.device) != B_OK || message->FindInt64("to directory", &nodeRef.node) != B_OK || message->FindInt64("from directory", (int64 *)&fromNode) != B_OK || message->FindInt64("node", (int64 *)&node) != B_OK || message->FindString("name", &name) != B_OK) return; BEntry entry; if (set_entry(nodeRef, name, entry) != B_OK) return; bool entryContained = _IsContained(entry); bool wasAdded = false; bool wasRemoved = false; bool notify = false; bool parentContained; if (_HasDirectory(nodeRef, &parentContained)) { // something has been added to our watched directories nodeRef.node = node; TRACE(" ADDED TO PARENT (%d), has entry %d/%d, entry %d %d\n", parentContained, _HasDirectory(nodeRef), _HasFile(nodeRef), entryContained, _CloserToPath(entry)); if (entry.IsDirectory()) { if (!_HasDirectory(nodeRef) && (entryContained || _CloserToPath(entry))) { // there is a new directory to watch for us if (entryContained || (parentContained && !_WatchRecursively())) { _AddDirectory(entry, true); // NOTE: entry is toast now! } else if (_GetClosest(fPath.Path(), false, nodeRef) == B_OK) { // the new directory might put us even // closer to the path we are after _AddDirectory(nodeRef, true); } wasAdded = true; notify = entryContained; } if (_WatchFilesOnly()) notify = false; } else if (!_HasFile(nodeRef) && entryContained) { // file has been added wasAdded = true; notify = true; _AddFile(entry); } } else { // and entry has been removed from our directories wasRemoved = true; nodeRef.node = node; if (entry.IsDirectory()) { if (_HasDirectory(nodeRef, ¬ify)) _RemoveDirectory(entry, fromNode); if (_WatchFilesOnly()) notify = false; } else { _RemoveFile(entry); notify = true; } } if (notify) { if (wasAdded) message->AddBool("added", true); if (wasRemoved) message->AddBool("removed", true); _NotifyTarget(message, nodeRef); } }