bool Ilwis3CatalogConnector::loadItems()
{
    QUrl location = _location.url();
    QStringList namefilter;
    namefilter << "*.mpr" << "*.mpa" << "*.mps" << "*.mpp" << "*.tbt" << "*.dom" << "*.rpr" << "*.csy" << "*.grf" << "*.mpl";

    QFileInfoList fileList = loadFolders(namefilter);

    // remove duplicates, shoudnt happen but better save than sorry
    QSet<QFileInfo> reduced = fileList.toSet();
    fileList.clear();
    fileList = QList<QFileInfo>::fromSet(reduced);

    QList<ODFItem> odfitems;
    QList<Resource> folders;
    QHash<QString, quint64> names;
    foreach(QFileInfo file, fileList) {
        QUrl container = location.url();
        QString path = file.canonicalFilePath();
        QString loc = container.toLocalFile();
        if ( path.compare(loc,Qt::CaseInsensitive) == 0)
            container = file.canonicalPath();
        IlwisTypes tp = Ilwis3Connector::ilwisType(path);
        QUrl url("file:///" + path);
        if ( mastercatalog()->resource2id(url, tp) == i64UNDEF) {
            if ( tp & itILWISOBJECT ) {
                ODFItem item(path);
                odfitems.push_back(item);
                names[file.fileName().toLower()] = item.id();
            } else {
                folders.push_back(loadFolder(file, container, path, url));
            }
        }

    }
Example #2
0
/*
 * name : get_copyTgt_List
 * desc : Scan whole source list and target path,
 *        if path has existed and optionOverwrite is off,
 *        the source path would removed from list
 */
void PicIn_Core::get_copyTgt_List(void)
{
    QFile file;
    QString tgtName;
    QString tgtPath;
    QString yearPath;
    QString monthPath;
    QString dayPath;
    QString srcPath;
    QDate date;
    QDir dir;
    QFileInfoList tempSrcList;

    tempSrcList.clear();
    m_copyTgtList.clear();

    for(int i = 0; i < m_fileInfoList_src.size(); i++){
        srcPath = m_fileInfoList_src.at(i).absoluteFilePath();

        tgtName.clear();
        tgtName.append(m_fileInfoList_src.at(i).fileName());

        tgtPath.clear();
        tgtPath.append(m_pathList_target.at(0)); // Only support 1 target path

        //
        // Check whether need to separate pics to folders as date
        //

        if(checkOption(optionExifDate)){
            date = getExifDate(srcPath);
        }
        if(!date.isValid() || !checkOption(optionExifDate)){
            date = m_fileInfoList_src.at(i).lastModified().date();
        }

        yearPath.clear();
        monthPath.clear();
        dayPath.clear();
        if(checkOption(optionDirYear)){
            yearPath.sprintf("/%04d/", date.year());
            tgtPath.append(yearPath);
        }
        if(checkOption(optionDirMon)){
            monthPath.sprintf("/%02d/", date.month());
            tgtPath.append(monthPath);
        }
        if(checkOption(optionDirDay)){
            dayPath.sprintf("/%02d/", date.day());
            tgtPath.append(dayPath);
        }

        //
        // Check whether file need to be copied
        //

        tgtPath.append(tgtName);
        if(!file.exists(tgtPath) || checkOption(optionOverwrite)){
            m_copyTgtList.append(tgtPath);
            tempSrcList.append(m_fileInfoList_src.at(i));
        }
    }

    m_fileInfoList_src = tempSrcList;

    return;
}
static PRL_RESULT GetEntryLists(
		const QString & aVmHomeDir,
		QList<QPair<QFileInfo, QString> > & dirList,
		QList<QPair<QFileInfo, QString> > & fileList)
{
	QString VmHomeDir = QFileInfo(aVmHomeDir).absoluteFilePath();
	QFileInfo dirInfo;
	QFileInfoList entryList;
	QDir dir;
	QDir startDir(VmHomeDir);
	int i, j;
	QFileInfo config, config_backup, log, statlog;

	config.setFile(VmHomeDir, VMDIR_DEFAULT_VM_CONFIG_FILE);
	config_backup.setFile(VmHomeDir, VMDIR_DEFAULT_VM_CONFIG_FILE VMDIR_DEFAULT_VM_BACKUP_SUFFIX);
	log.setFile(VmHomeDir, "parallels.log");
	statlog.setFile(VmHomeDir, PRL_VMTIMING_LOGFILENAME);

	dirInfo.setFile(VmHomeDir);
	if (!dirInfo.exists()) {
		WRITE_TRACE(DBG_FATAL, "Directory %s does not exist", QSTR2UTF8(VmHomeDir));
		return (PRL_ERR_VMDIR_INVALID_PATH);
	}
	dirList.append(qMakePair(dirInfo, QString(".")));
	for (i = 0; i < dirList.size(); ++i) {
		/* CDir::absoluteDir() is equal CDir::dir() : return parent directory */
		dir.setPath(dirList.at(i).first.absoluteFilePath());

		entryList = dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs | QDir::Hidden);

		WRITE_TRACE(DBG_DEBUG, "Directory %s", QSTR2UTF8(dirList.at(i).first.absoluteFilePath()));

		for (j = 0; j < entryList.size(); ++j) {
			const QFileInfo& fileInfo = entryList.at(j);

			if (dirInfo == fileInfo) {
				WRITE_TRACE(DBG_FATAL, "Infinite recursion in : %s", QSTR2UTF8(dirInfo.absoluteFilePath()));
				return (PRL_ERR_FAILURE);
			}
			if (!fileInfo.absoluteFilePath().startsWith(VmHomeDir)) {
				WRITE_TRACE(DBG_FATAL, "Path %s does not starts from VM home dir (%s)",
					QSTR2UTF8(fileInfo.absoluteFilePath()),
					QSTR2UTF8(VmHomeDir));
				return PRL_ERR_FAILURE;
			}
			;
			if (fileInfo.isDir()) {
				dirList.append(qMakePair(
					fileInfo, startDir.relativeFilePath(fileInfo.absoluteFilePath())));
			} else {
				/* skip config & config backup */
				if (fileInfo.absoluteFilePath() == config.absoluteFilePath())
					continue;
				if (fileInfo.absoluteFilePath() == config_backup.absoluteFilePath())
					continue;
				/* skip parallels.log */
				if (fileInfo.absoluteFilePath() == log.absoluteFilePath())
					continue;
				if (fileInfo.absoluteFilePath() == statlog.absoluteFilePath())
					/* will save statistic.log to temporary file */
					fileList.append(qMakePair(statlog,
						QString(PRL_VMTIMING_LOGFILENAME VMDIR_DEFAULT_VM_MIGRATE_SUFFIX)));
				else
					fileList.append(qMakePair(
						fileInfo, startDir.relativeFilePath(fileInfo.absoluteFilePath())));
			}
			WRITE_TRACE(DBG_DEBUG, "%x\t%s.%s\t%s",
				int(fileInfo.permissions()),
				QSTR2UTF8(fileInfo.owner()),
				QSTR2UTF8(fileInfo.group()),
				QSTR2UTF8(fileInfo.absoluteFilePath()));
		}
		entryList.clear();
	}
	/* remove VM home directory */
	dirList.removeFirst();

	return (PRL_ERR_SUCCESS);
}
Example #4
0
QString OptionsWindow::getMaskToConfig(int step) {
	QString mask;
	QSettings *GlobalSettings = new QSettings("/root/.WiFiHostapdAP/WiFi_Hostapd_AP.conf",QSettings::NativeFormat); // создание нового объекта
	QDir dir;
	QFileInfoList list;
	QString temp_qstring = "default.conf";
	QString path;

	switch(step) {
	case 0:

		dir.cd("/root");
		if(!dir.cd(".WiFiHostapdAP")) {
		dir.mkdir(QString("%1").arg(".WiFiHostapdAP"));
		dir.cd(".WiFiHostapdAP"); }

		if(!dir.cd("./Mask/")) {
			dir.mkdir(QString("%1").arg("Mask"));
			dir.cd("./Mask/"); }

		if(!dir.cd("./hostapd/")) {
			dir.mkdir(QString("%1").arg("hostapd"));
			dir.cd("./hostapd/"); }

		dir.setFilter(QDir::Files);
		list = dir.entryInfoList();

		if(list.size()==0) {

			QFile new_Default_Mask("/root/.WiFiHostapdAP/Mask/hostapd/default.conf");
			new_Default_Mask.open(QIODevice::Append | QIODevice::Text);
			QTextStream out(&new_Default_Mask);
			out << "#Name:Default\n";
			out << "#Type:Hostapd\n";
			out << "interface=[INTERFACE]\n";
			out << "driver=[DRIVER]\n";
			out << "ssid=[SSID]\n";
			out << "country_code=[COUNTRY_CODE]\n";
			out << "[TYPE_AP]\n";
			out << "channel=[CHANNEL]\n";
			out << "macaddr_acl=0\n";
			out << "[HIDEAP]\n";
			out << "[PROTECT]";
			new_Default_Mask.close();

			list.clear();
			dir.setFilter(QDir::Files);
			list = dir.entryInfoList();
		}
		path = "/root/.WiFiHostapdAP/Mask/hostapd/";

		for (int i = 0; i < list.size(); ++i) {
			QFileInfo fileInfo = list.at(i);
			if(fileInfo.fileName() == GlobalSettings->value("AP/ConfigMask", "default.conf").toString())
				temp_qstring = GlobalSettings->value("AP/ConfigMask", "default.conf").toString();
		}
		path += temp_qstring;

		break;
	case 1:

		dir.cd("/root");
		if(!dir.cd(".WiFiHostapdAP")) {
		dir.mkdir(QString("%1").arg(".WiFiHostapdAP"));
		dir.cd(".WiFiHostapdAP"); }

		if(!dir.cd("./Mask/")) {
			dir.mkdir(QString("%1").arg("Mask"));
			dir.cd("./Mask/"); }

		if(!dir.cd("./dnsmasq/")) {
			dir.mkdir(QString("%1").arg("dnsmasq"));
			dir.cd("./dnsmasq/"); }

		dir.setFilter(QDir::Files);
		list = dir.entryInfoList();

		if(list.size()==0) {
			// If the pattern is not present, create the default template
			QFile new_Default_Mask("/root/.WiFiHostapdAP/Mask/dnsmasq/default.conf");
			new_Default_Mask.open(QIODevice::Append | QIODevice::Text);
			QTextStream out(&new_Default_Mask);
			out << "#Name:Default\n";
			out << "#Type:DNSMASQ\n";
			out << "interface=[INTERFACE]\n";
			out << "dhcp-range=[RANGE_1],[RANGE_2],[IP_TIME];\n";
			out<< "[OpenDNS]";

			new_Default_Mask.close();

			list.clear();
			dir.setFilter(QDir::Files);
			list = dir.entryInfoList();
		}

		path = "/root/.WiFiHostapdAP/Mask/dnsmasq/";
		for (int i = 0; i < list.size(); ++i) {
			QFileInfo fileInfo = list.at(i);
			if(fileInfo.fileName() == GlobalSettings->value("AP/ConfigMask1", "default.conf").toString())
				temp_qstring = GlobalSettings->value("AP/ConfigMask1", "default.conf").toString();
		}
		path += temp_qstring;

		break;
	}

	QFile file_mask(path);
	file_mask.open(QIODevice::ReadOnly);
	QTextStream in(&file_mask);

	mask = in.read(10240);

	QString temp1 = "";
	// HOSTAPD
	mask.replace("[INTERFACE]", GlobalSettings->value("AP/Iface", "wlan0").toString());
	mask.replace("[DRIVER]", GlobalSettings->value("AP/drive", "nl80211").toString());
	mask.replace("[SSID]", GlobalSettings->value("AP/SSID", "MyWiFI_AP").toString());
	mask.replace("[COUNTRY_CODE]", GlobalSettings->value("AP/CountryCode", "RU").toString());
	mask.replace("[CHANNEL]", GlobalSettings->value("AP/Channels", "7").toString());
	/////////////////////////////////////////////////////////////////////////
	// Type AP
	/////////////////////////////////////////////////////////////////////////
	if(GlobalSettings->value("AP/TypeAP", "g").toString()=="ac") {
		temp1 = "hw_mode=ag\nwme_enabled=1\nieee80211n=1\nht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]";
		temp1.append("\nieee80211ac=1\nvht_capab=[SHORT-GI-80]\nvht_oper_chwidth=1");
	} else if(GlobalSettings->value("AP/TypeAP", "g").toString()=="n")
		temp1 = "hw_mode=ag\nwme_enabled=1\nieee80211n=1\nht_capab=[HT40+][SHORT-GI-40][DSSS_CCK-40]";
	 else if(GlobalSettings->value("AP/TypeAP", "g").toString()=="g")
		temp1 = "hw_mode=g";
	//a
	 else
		temp1 = "\n";

	mask.replace("[TYPE_AP]", temp1);
	temp1.clear();

	/////////////////////////////////////////////////////////////////////////
	// Разбираемся с защитой
	/////////////////////////////////////////////////////////////////////////
	if(GlobalSettings->value("AP/Protection", "WPA3").toString()=="WPA3") {
		// Составляем маску для WPA
		temp1 = "wpa=3\nwpa_key_mgmt=WPA-PSK\nwpa_pairwise=TKIP CCMP\nwpa_passphrase=";
		temp1.append(GlobalSettings->value("AP/Password", "MyWiFI_AP").toString()); }
	/////////////////////////////////////////////////////////////////////////
	else if(GlobalSettings->value("AP/Protection", "WPA3").toString()=="WEP") {
		// Составляем маску для WEP
		temp1 = "wep_default_key=0\nwep_key_len_broadcast=13\nwep_key_len_unicast=13\nwep_rekey_period=300\nwep_key0=";
		temp1.append(GlobalSettings->value("AP/Password", "MyWiFI_AP").toString());
	}

	else temp1 = "";
	mask.replace("[PROTECT]", temp1);

	if(GlobalSettings->value("AP/ShowSSID", false).toBool())
		mask.replace("[HIDEAP]", "ignore_broadcast_ssid=2");
	else mask.replace("[HIDEAP]", "");
	temp1.clear();

	// DNSMASQ
	mask.replace("[RANGE_1]", GlobalSettings->value("DHCP/IP_CLIENT1", "192.168.0.2").toString());
	mask.replace("[RANGE_2]", GlobalSettings->value("DHCP/IP_CLIENT2", "192.168.0.225").toString());
	mask.replace("[INTERFACE_INTERNET]", GlobalSettings->value("DHCP/Internet_iface", "eth0").toString());

	if(GlobalSettings->value("DHCP/UseOpenDNS", true).toBool())
		mask.replace("[OpenDNS]", "server=/www.google.com/8.8.8.8");
	else
		mask.replace("[OpenDNS]", "");

	switch(GlobalSettings->value("DHCP/IP_time", 2).toInt()) {
		case(0): mask.replace("[IP_TIME]", "10m"); break;
		case(1): mask.replace("[IP_TIME]", "30m"); break;
		case(2): mask.replace("[IP_TIME]", "1h"); break;
		case(3): mask.replace("[IP_TIME]", "2h"); break;
		case(4): mask.replace("[IP_TIME]", "6h"); break;
		case(5): mask.replace("[IP_TIME]", "12h"); break;
	}

	file_mask.close();
	delete GlobalSettings;
	return mask;
}
bool QAudioManager::testLibrary(QAbstractCoder *coder)
{
	setError(QCoder::NoError);
	QStringList nameFilters;
	QDir::Filters filters = QDir::Files | QDir::NoDotAndDotDot;
	QDir dir;
	QFileInfoList possibles;

	QStringList fileNames = coder->fileNames();
	QStringList fileExtensions = coder->fileExtensions();
	for(int j = 0; j < mSearchPaths.size(); ++j)
	{
		QString path = mSearchPaths[j];
		for(int k = 0; k < fileNames.size(); ++k)
		{
			QString fileName = fileNames[k];
			for(int h = 0; h < fileNames.size(); ++h)
			{
				QString directoryName = fileNames[h];
				for(int i = 0; i < fileExtensions.size(); ++i)
				{
					if(	coder->load(path + fileName + fileExtensions[i]) == QCoder::NoError ||
						coder->load(path + "lib" + fileName + fileExtensions[i]) == QCoder::NoError ||
						coder->load(path + directoryName + QDir::separator() + fileName + fileExtensions[i]) == QCoder::NoError ||
						coder->load(path + directoryName + QDir::separator() + "lib" + fileName + fileExtensions[i]) == QCoder::NoError ||
						coder->load(path + "lib" + directoryName + QDir::separator() + fileName + fileExtensions[i]) == QCoder::NoError ||
						coder->load(path + "lib" + directoryName + QDir::separator() + "lib" + fileName + fileExtensions[i]) == QCoder::NoError)
					{
						coder->unload();
						add(QAudioManager::Available, coder);
						return true;
					}

					//Check for libraries that end in version number. Eg: libflac.so.8

					nameFilters.clear();
					possibles.clear();

					nameFilters << fileName + fileExtensions[i] + "*";
					nameFilters << "lib" + fileName + fileExtensions[i] + "*";

					dir.setPath(path);
					possibles.append(dir.entryInfoList(nameFilters, filters, QDir::Name));
					dir.setPath(path + directoryName);
					possibles.append(dir.entryInfoList(nameFilters, filters, QDir::Name));
					dir.setPath(path + "lib" + directoryName);
					possibles.append(dir.entryInfoList(nameFilters, filters, QDir::Name));

					for(int t = 0; t < possibles.size(); ++t)
					{
						if(coder->load(possibles[t].absoluteFilePath()) == QCoder::NoError)
						{
							coder->unload();
							add(QAudioManager::Available, coder);
							return true;
						}
					}
				}
			}
		}
	}
	return false;
}
Example #6
0
bool chksysTimer::verificarModulos()
{
    QDir dir(this->cacicFolder + "/temp");
    dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks | QDir::Executable);
    dir.setSorting(QDir::Size | QDir::Reversed);
    bool serviceUpdate;
    QFileInfoList list = dir.entryInfoList();
    for (int i = 0; i<list.size(); i++){
        serviceUpdate = false;
        //Se o módulo for install-cacic, deverá ficar na pasta "/bin"
        QFile novoModulo(list.at(i).filePath());
#ifdef Q_OS_WIN
            if (QFile::exists(this->cacicFolder + "/" + (list.at(i).fileName().contains("install-cacic") ?
                                                         "bin/" + list.at(i).fileName() :
                                                         list.at(i).fileName()))){
#else
            if (QFile::exists(this->cacicFolder + "/" + list.at(i).fileName())){
#endif
                if (list.at(i).fileName().contains("cacic-service")){
#ifdef Q_OS_WIN
                    ServiceController *service = new ServiceController(QString(CACIC_SERVICE_NAME).toStdWString());
                    if (service->isRunning()) {
                        log->escrever(LogCacic::InfoLevel, "Serviço rodando.. parando servico");
                        if (!service->stop()) {
                            std::string info = "Falha ao parar serviço. Info: ";
                            info+= service->getLastError();
                            log->escrever(LogCacic::ErrorLevel, info.c_str());
                        }
                    }
                    delete service;
                    service = NULL;
#else
                    ConsoleObject console;
                    if (CCacic::findProc("cacic-service")) console("killall -9 \"cacic-service\"");
#endif
                }
#ifdef Q_OS_WIN
                QFile::remove(this->cacicFolder + "/" + (list.at(i).fileName().contains("install-cacic") ?
                                                              "bin/" + list.at(i).fileName() :
                                                               list.at(i).fileName()));
#else
                QFile::remove(this->cacicFolder + "/" + list.at(i).fileName());
#endif
                //Garante a exclusão. às vezes o SO demora a reconhecer, dunno why.
                QThread::sleep(1);
            }

#ifdef Q_OS_WIN
            if (!QFile::exists(this->cacicFolder + "/" + (list.at(i).fileName().contains("install-cacic") ?
                                                           "bin/" + list.at(i).fileName() :
                                                            list.at(i).fileName()))){
                novoModulo.copy(this->cacicFolder + "/" + (list.at(i).fileName().contains("install-cacic") ?
                                                            "bin/" + list.at(i).fileName() :
                                                             list.at(i).fileName()));
#else
            if (!QFile::exists(this->cacicFolder + "/" + list.at(i).fileName())){
                novoModulo.copy(this->cacicFolder + "/" + list.at(i).fileName());
#endif
            if (!novoModulo.remove())
                log->escrever(LogCacic::ErrorLevel, "Falha ao excluir "+list.at(i).fileName()+" da pasta temporária.");
            else {
                log->escrever(LogCacic::InfoLevel, "Módulo \"" + list.at(i).filePath() + "\" atualizado.");
                if (list.at(i).fileName().contains("cacic-service") && serviceUpdate){
    #ifdef Q_OS_WIN
                    ServiceController *service = new ServiceController(QString("cacicdaemon").toStdWString());
                    if (!service->isRunning()) service->start();
    #else
                    ConsoleObject console;
                    if (!CCacic::findProc("cacic-service")) console("/etc/init.d/cacic3 start");
    #endif
                }
            }
        } else {
            log->escrever(LogCacic::ErrorLevel, "Falha ao excluir módulo antigo"+list.at(i).fileName()+" da pasta temporária.");
        }

        novoModulo.close();
    }
    list.clear();
    return true;
}
Example #7
0
void FileManager::copyFolder(QString scrPath, QString dstPath)
{
    QFileInfoList fList;
    fList.clear();
    getFolderFiles(scrPath, fList);
    if(fList.size() == 0)
    {
        //QMessageBox::warning(this, tr("Error"), tr("文件夹是空的:").arg(scrPath), 0, 0);
        qDebug() << tr("文件夹是空的:").arg(srcfileName);
        return;
    }

    if(srcfileName.compare(destinationPath) == 0) return;

    bool stopped = false;
    int curIndex = 0;
    while( !stopped )
    {
        if( curIndex == fList.size() )
        {
            stopped = true;
            continue;
        }
        QFileInfo curFileInfo = fList.at(curIndex);
        QString srcFileName = curFileInfo.filePath();
        QFile src(srcFileName);

        QFileInfo srcTmp(srcfileName);
        QString srcTripname = srcFileName.remove(srcfileName);
        QString dstFileName = srcTripname.insert(0, dstPath+srcTmp.fileName());
        QFile dst(dstFileName);
        QFileInfo tmp(dstFileName);
        qDebug() << tmp.path();
        QDir d(tmp.path());
        if(!d.exists())
            d.mkpath(d.absolutePath());
        //now copy
        if(!src.open(QFile::ReadOnly) || !dst.open(QFile::WriteOnly)) continue;
        fileSize = src.bytesAvailable();
        qint64 BUFF_SIZE = 61440;
        char* buffer = new char[BUFF_SIZE];
        //int oldPercent = 0;
        while( !src.atEnd() )
        {
            dst.write(buffer, src.read(buffer, BUFF_SIZE));
            //dst.flush();
        }
        src.close();
        dst.close();
        delete[] buffer;
        buffer = NULL;

        curIndex++;
        int percent = (curIndex*100) / fList.size();//((curIndex + 1) * 100) / fileSize;
        //if (oldPercent != percent)
        {
            emit verificationProgressSignal(percent);
            //oldPercent = percent;
        }
    }
    fList.clear();
}