コード例 #1
0
ファイル: filesystems.cpp プロジェクト: alhunor/projects
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)
コード例 #2
0
ファイル: core.cpp プロジェクト: KDE/kdenlive
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();
}
コード例 #3
0
ファイル: filesystems.cpp プロジェクト: alhunor/projects
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)