int FindFiles::openFolder(bool includeSubFolders, bool skipSystemFolders) { char searchPattern[MAX_PATH]; strcpy(searchPattern, m_currentFolder); strcat(searchPattern, "*"); SetLastError(0); m_h = FindFirstFileA(searchPattern, &fd); int e = GetLastError(); if (e != ERROR_SUCCESS) { FindClose(m_h); m_insearch = false; return e; } bool keep_looking = true; do { if (isValidFolder(skipSystemFolders)) { if (includeSubFolders) storeFolder(); keep_looking = false; } else if (isValidFile()) { keep_looking = false; } else { FindNextFileA(m_h, &fd); e = GetLastError(); } } while (keep_looking && e == ERROR_SUCCESS); return e; } //int FindFiles::openFolder(WIN32_FIND_DATAA& fd, bool recursive)
void Core::initialize() { m_projectManager = new ProjectManager(this); m_binWidget = new Bin(); m_binController = new BinController(); m_library = new LibraryWidget(m_projectManager); connect(m_library, SIGNAL(addProjectClips(QList <QUrl>)), m_binWidget, SLOT(droppedUrls(QList <QUrl>))); connect(this, &Core::updateLibraryPath, m_library, &LibraryWidget::slotUpdateLibraryPath); connect(m_binWidget, SIGNAL(storeFolder(QString,QString,QString,QString)), m_binController, SLOT(slotStoreFolder(QString,QString,QString,QString))); connect(m_binController, SIGNAL(loadFolders(QMap<QString,QString>)), m_binWidget, SLOT(slotLoadFolders(QMap<QString,QString>))); connect(m_binController, SIGNAL(requestAudioThumb(QString)), m_binWidget, SLOT(slotCreateAudioThumb(QString))); connect(m_binController, SIGNAL(abortAudioThumbs()), m_binWidget, SLOT(abortAudioThumbs())); connect(m_binController, SIGNAL(loadThumb(QString,QImage,bool)), m_binWidget, SLOT(slotThumbnailReady(QString,QImage,bool))); m_monitorManager = new MonitorManager(this); // Producer queue, creating MLT::Producers on request m_producerQueue = new ProducerQueue(m_binController); connect(m_producerQueue, SIGNAL(gotFileProperties(requestClipInfo,ClipController *)), m_binWidget, SLOT(slotProducerReady(requestClipInfo,ClipController *)), Qt::DirectConnection); connect(m_producerQueue, SIGNAL(replyGetImage(QString,QImage,bool)), m_binWidget, SLOT(slotThumbnailReady(QString,QImage,bool))); connect(m_producerQueue, SIGNAL(removeInvalidClip(QString,bool,QString)), m_binWidget, SLOT(slotRemoveInvalidClip(QString,bool,QString)), Qt::DirectConnection); connect(m_producerQueue, SIGNAL(addClip(const QString&,const QMap<QString,QString>&)), m_binWidget, SLOT(slotAddUrl(const QString&,const QMap<QString,QString>&))); connect(m_binController, SIGNAL(createThumb(QDomElement,QString,int)), m_producerQueue, SLOT(getFileProperties(QDomElement,QString,int))); connect(m_binWidget, SIGNAL(producerReady(QString)), m_producerQueue, SLOT(slotProcessingDone(QString)), Qt::DirectConnection); //TODO /*connect(m_producerQueue, SIGNAL(removeInvalidProxy(QString,bool)), m_binWidget, SLOT(slotRemoveInvalidProxy(QString,bool)));*/ emit coreIsReady(); }
bool FindFiles::FindItem(bool includeSubFolders, bool skipSystemFolders) { if (m_insearch) { FindNextFileA(m_h, &fd); if (GetLastError() == ERROR_SUCCESS) { if (isValidFolder(skipSystemFolders)) { storeFolder(); } return true; } else { FindClose(m_h); m_h = 0; } while (folders.size()>0) { strcpy(m_currentFolder, folders.front()); folders.pop_front(); if (openFolder(includeSubFolders, skipSystemFolders) == 0) return true; } // NO_MORE_FILES; m_insearch = false; if (m_h) FindClose(m_h); return false; } else { m_insearch = true; strcpy(m_currentFolder, m_root); return openFolder(includeSubFolders, skipSystemFolders) == 0; } } // void FindFiles::SetRoot(const char* root)