Ejemplo n.º 1
0
//-------------------------------------------------------------------------------------------
void ActionToolbar::dragEnterEvent(QDragEnterEvent *evt)
{
   // Get the filenames
   QStringList filenames = getFilenames(evt->mimeData());

   // Don't accept empty drags
   if(filenames.empty())
   {
      evt->ignore();
      return;
   }

   bool ignore_event = true;
   // Accept when only directories and zip-files are being dragged
   for(int i = 0; i < filenames.size(); ++i)
   {
      QFileInfo file(filenames.at(i));
      QString extension = file.suffix().toLower();

      if(extension == "as")
      {
          ignore_event = false;
      }
   }
   if(ignore_event)
       evt->ignore();
   else
       evt->accept();
}
Ejemplo n.º 2
0
//-------------------------------------------------------------------------------------------
void ActionToolbar::dropEvent(QDropEvent *evt)
{
   // Get the filenames
   QStringList filenames = getFilenames(evt->mimeData());

   // Don't accept empty drags
   if(filenames.empty())
   {
      evt->ignore();
      return;
   }

   bool ignore_event = true;
   // Accept when only directories and zip-files are being dragged
   for(int i = 0; i < filenames.size(); ++i)
   {
      QFileInfo file(filenames.at(i));
      QString extension = file.suffix().toLower();

      if(extension == "as")
      {
          ignore_event = false;
          mOgitorMainWindow->_addScriptAction(":/icons/toolbar.svg", filenames.at(i));
      }
   }
   
   if(ignore_event)
       evt->ignore();
   else
   {
       mOgitorMainWindow->_saveScriptActions();
       evt->accept();
   }
}
Ejemplo n.º 3
0
void
ArchPluginWindows::load()
{
	String dir = getPluginsDir();
	LOG((CLOG_DEBUG "plugins dir: %s", dir.c_str()));

	String pattern = String(dir).append("\\*.dll");
	std::vector<String> plugins;
	getFilenames(pattern, plugins);

	std::vector<String>::iterator it;
	for (it = plugins.begin(); it != plugins.end(); ++it) {
		LOG((CLOG_DEBUG "loading plugin: %s", (*it).c_str()));
		String path = String(dir).append("\\").append(*it);
		HINSTANCE library = LoadLibrary(path.c_str());

		if (library == NULL) {
			String error = XArchEvalWindows().eval();
			LOG((CLOG_ERR "failed to load plugin '%s', error: %s", (*it).c_str(), error.c_str()));
			continue;
		}

		void* lib = reinterpret_cast<void*>(library);
		String filename = synergy::string::removeFileExt(*it);
		m_pluginTable.insert(std::make_pair(filename, lib));

		const char * version = (char*)invoke( filename.c_str(),"version",NULL);
		if (version == NULL) {
			version = kPre174Plugin;
		}

		LOG((CLOG_DEBUG "loaded plugin: %s (%s)", (*it).c_str(),version));
	}
}
Ejemplo n.º 4
0
//------------------------------------------------------------------------------------
void FileListWidget::dragEnterEvent(QDragEnterEvent *evt)
{
    QWidget *source = evt->source();

    // Get the filenames
    QStringList filenames = getFilenames(evt->mimeData());

    // Don't accept empty drags
    if(filenames.empty() || mOfsMainWindow->isBusy())
    {
        evt->ignore();
        return;
    }

    if(!mOfsMainWindow->actClose->isEnabled())
    {
        QFileInfo file(filenames.at(0));
        QString extension = file.suffix().toLower();

        if(!file.isDir() && extension == "ofs")
            evt->accept();
    }
    else
        evt->accept();
}
Ejemplo n.º 5
0
void
ArchPluginWindows::load()
{
	String dir = getPluginsDir();
	LOG((CLOG_DEBUG "plugins dir: %s", dir.c_str()));

	String pattern = String(dir).append("\\*.dll");
	std::vector<String> plugins;
	getFilenames(pattern, plugins);

	std::vector<String>::iterator it;
	for (it = plugins.begin(); it != plugins.end(); ++it) {
		LOG((CLOG_DEBUG "loading plugin: %s", (*it).c_str()));
		String path = String(dir).append("\\").append(*it);
		HINSTANCE library = LoadLibrary(path.c_str());

		if (library == NULL) {
			LOG((CLOG_ERR "failed to load plugin: %s %d", (*it).c_str(), GetLastError()));
			throw XArch(new XArchEvalWindows);
		}

		void* lib = reinterpret_cast<void*>(library);
		String filename = synergy::string::removeFileExt(*it);
		m_pluginTable.insert(std::make_pair(filename, lib));

		LOG((CLOG_DEBUG "loaded plugin: %s", (*it).c_str()));
	}
}
Ejemplo n.º 6
0
static void getFilenames(char *dirName, int *arraySize)
{
	DIR *dirp, *dirp2;
	struct dirent *dfile;
	char filename[MAX_FILE_LENGTH];
	char **ptr;

	dirp = opendir(dirName);

	while ((dfile = readdir(dirp)))
	{
		if (dfile->d_name[0] == '.')
		{
			continue;
		}

		sprintf(filename, "%s/%s", dirName, dfile->d_name);

		dirp2 = opendir(filename);

		if (dirp2)
		{
			closedir(dirp2);

			getFilenames(filename, arraySize);
		}

		else
		{
			filenames[totalFiles] = malloc(MAX_FILE_LENGTH);
			
			STRNCPY(filenames[totalFiles], filename, MAX_FILE_LENGTH);
			
			totalFiles++;
			
			if (totalFiles == *arraySize)
			{
				*arraySize += 500;
				
				ptr = realloc(filenames, *arraySize * sizeof(char *));
				
				if (ptr)
				{
					filenames = ptr;
				}
				
				else
				{
					printf("Failed to allocate %d bytes whilst indexing files\n", *arraySize * (int)sizeof(char *));

					exit(1);
				}
			}
		}
	}

	closedir(dirp);
}
Ejemplo n.º 7
0
void
CArchPluginWindows::init(void* eventTarget)
{
	m_eventTarget = eventTarget;
	
	CString dir = getPluginsDir();
	LOG((CLOG_DEBUG "plugins dir: %s", dir.c_str()));

	CString pattern = CString(dir).append("\\*.dll");
	std::vector<CString> plugins;
	getFilenames(pattern, plugins);

	std::vector<CString>::iterator it;
	for (it = plugins.begin(); it != plugins.end(); ++it)
		load(*it);
}
void ConfigurationManager::loadConfiguration (iConfiguration* conf,
        const List<std::string>& paths)
throw (BadConfigurationException)
{
    try {
        List<std::string>::const_iterator path;
        for (path = paths.begin(); path != paths.end(); path++)
        {
            iParamFactory* param_factory;
            iParam* param = NULL;

            List<std::string> fnames = getFilenames(*path);
            List<std::string>::iterator filename;
            for (filename = fnames.begin(); filename != fnames.end(); filename++)
            {
                param_factory = iParamFactory::makeParamFactory(*filename);
                std::ifstream conf_stream((*path + *filename).c_str());
                if (!conf_stream)
                    THROW(BadConfigurationException, std::string("Bad conf filename: ")
                          + (*path + *filename).c_str());

                while ( !conf_stream.eof() )
                {
                    std::string buffer_line;
                    getline (conf_stream, buffer_line);
                    if (buffer_line.empty() && !conf_stream.eof())
                        continue;

                    param = param_factory->makeParam(buffer_line);
                    if (param != NULL) {
                        param->fill(conf);
                        delete param;
                    }
                    param = NULL;
                }
            }
        }
    }
    catch (const std::exception& ex) {
        throw BadConfigurationException(ex.what());
    }
}
Ejemplo n.º 9
0
//-------------------------------------------------------------------------------------------
void FileListWidget::dropEvent(QDropEvent *evt)
{
    QWidget *source = evt->source();

    // Get the dropped filenames
    QStringList filenames = getFilenames(evt->mimeData());

    if(filenames.empty())
        evt->ignore();

    if(!mOfsMainWindow->actClose->isEnabled())
    {
        QFileInfo file(filenames.at(0));
        QString extension = file.suffix().toLower();

        if(!file.isDir() && extension == "ofs")
        {
            mOfsMainWindow->openOfsFile(file.absoluteFilePath());
            return;
        }
        else
        {
            evt->ignore();
            return;
        }
    }

#if !defined( __WIN32__ ) && !defined( _WIN32 )
    QString msg = "Following files/folders dropped : ";
    for(int i = 0;i < filenames.size();i++)
    {
        msg += filenames.at(i) + QString(";");
    }

    QMessageBox::information(QApplication::activeWindow(),"LINUX DEBUG OUTPUT :", msg, QMessageBox::Ok);
#endif


    mOfsMainWindow->addFiles(filenames);
}
int saisieAppuisInitQT_main(QApplication &app, int argc, char *argv[])
{
    app.setApplicationName("SaisieAppuisInitQT");
    app.setOrganizationName("Culture3D");

    QStringList cmdline_args = QCoreApplication::arguments();

    if (cmdline_args.back().contains("help"))
    {
        QString help = "Mandatory unnamed args :\n"
                 "* string :: {Full name (Dir+Pattern)}\n"
                 "* string :: {Orientation ; NONE if not used}\n"
                 "* string :: {Point name, or point file name}\n"
                 "* string :: {Output}\n\n"
                "Named args :\n"
                "* [Name=SzW] Pt2di :: {Sz of window}\n"
                "* [Name=NbF] Pt2di :: {Nb of sub window}\n"
                "* [Name=NameAuto] string :: {Prefix for automatic point creation}\n"
                //"* [Name=Pref2Add] string :: {Prefix to add during import (for bug correction ?)}\n"
                "* [Name=ForceGray] bool :: {Force gray image, def=false}\n"
                "* [Name=OriMode] string :: {Orientation type (GRID) (Def=Std)}\n"
                "* [Name=ZMoy] REAL :: {Average Z, Mandatory in PB}\n"
                "* [Name=ZInc] REAL :: {Incertitude on Z, Mandatory in PB}\n\n"

                "Example:\nmm3d " + app.applicationName() + " IMG_558{0-9}[1].tif RadialBasic 100 measures.xml\n\n"
                "NB: visual interface for argument edition available with command:\n\n mm3d v" + app.applicationName() + "\n\n";

        return helpMessage(app, help);
    }

    loadTranslation(app);

    QSettings settings(QApplication::organizationName(), QApplication::applicationName());

    if ((argc>0)&&(string(argv[0]).find("SaisieQT")!= string::npos))
    {
        argv++;
        argc--;
    }

    Pt2di aSzWin(800,800);
    Pt2di aNbFen(-1,-1);

    string aFullName, aDir, aName, aNamePt, aNameOut;   //mandatory arguments
    string aNameOri, aModeOri, aNameAuto, aPrefix2Add;  //named args
    aPrefix2Add = "";
    bool aForceGray = false;

    settings.beginGroup("Misc");
    aNameAuto = settings.value("defPtName", QString("100")).toString().toStdString();
    settings.endGroup();

    settings.beginGroup("Drawing settings");
    aForceGray = settings.value("forceGray", false       ).toBool();
    settings.endGroup();

    double aZInc, aZMoy;

    if (argv[0][0] == 'v')
    {
        MMVisualMode = true;
        argv[0] = (char*) "SaisieAppuisInitQT";
    }
    
    std::string aInputSec;

    SaisieAppuisInit(argc, argv, aSzWin, aNbFen, aFullName, aDir, aName, aNamePt, aNameOri, aModeOri, aNameOut, aNameAuto, aPrefix2Add, aForceGray, aZMoy, aZInc,aInputSec);

    if (!MMVisualMode)
    {
        if (!checkNamePt( QString (aNamePt.c_str()))) return -1;

        QStringList filenames = getFilenames(aDir, aName);

        int aNbW = aNbFen.x * aNbFen.y;
        if (filenames.size() < aNbW)
        {
             aNbW = filenames.size();

             cVirtualInterface::ComputeNbFen(aNbFen, aNbW);
        }

        updateSettings(settings, aSzWin,aNbFen, aForceGray);

        settings.beginGroup("Misc");
        settings.setValue("defPtName", QString(aNameAuto.c_str()));
        settings.endGroup();

        QStringList input;
        input   << QString(MMDir().c_str()) + QString("bin/SaisiePts")
                << QString(MMDir().c_str()) + QString("include/XML_MicMac/SaisieInitiale.xml")
                << QString("DirectoryChantier=") + QString(aDir.c_str())
                << QString("+Image=") +  QString(aName.c_str())
                << QString("+Ori=") + QString(aNameOri.c_str())
                << QString("+NamePt=") + QString(aNamePt.c_str())
                << QString("+NameAuto=") + QString(aNameAuto.c_str())
                << QString("+Sauv=") + QString(aNameOut.c_str())
                << QString("+SzWx=") + QString::number(aSzWin.x)
                << QString("+SzWy=") + QString::number(aSzWin.y)
                << QString("+NbFx=") + QString::number(aNbFen.x)
                << QString("+NbFy=") + QString::number(aNbFen.y);

        if (aModeOri == "GRID")
        {
            input << QString("+ModeOriIm=eGeomImageGrille")
                  << QString("+Conik=false")
                  << QString("+ZIncIsProp=false")
                    //<< QString(+PostFixOri=GRIBin")
                  << QString("+Px1Inc=") + QString::number(aZInc)
                  << QString("+Px1Moy=") + QString::number(aZMoy);

            //<< QString("+Geom=eGeomMNTFaisceauIm1ZTerrain_Px1D");
        }

        if (EAMIsInit(&aForceGray))
           input << QString("+ForceGray=") + QString(((string)(ToString(aForceGray))).c_str());

        if (EAMIsInit(&aPrefix2Add))
           input << QString("+Pref2Add=") + QString(aPrefix2Add.c_str());


        char **output;

        // Copy input to output
        output = new char*[input.size() + 1];
        for (int i = 0; i < input.size(); i++) {
            output[i] = new char[strlen(input.at(i).toStdString().c_str())+1];
            memcpy(output[i], input.at(i).toStdString().c_str(), strlen(input.at(i).toStdString().c_str())+1);
        }
        output[input.size()] = ((char*)NULL);


        cResultSubstAndStdGetFile<cParamSaisiePts> aP2(
                input.size()-2,output+2,
                output[1],
                StdGetFileXMLSpec("ParamSaisiePts.xml"),
                "ParamSaisiePts",
                "ParamSaisiePts",
                "DirectoryChantier",
                "FileChantierNameDescripteur" );

        cAppli_SaisiePts   anAppli (aP2,false);

        SaisieQtWindow w(POINT2D_INIT);

        new cQT_Interface(anAppli,&w);

        w.show();

        w.addFiles(filenames, false);

        return app.exec();
    }
    else
        return EXIT_SUCCESS;
}
Ejemplo n.º 11
0
int main(int argc, char *argv[])
{
	int i, arraySize;
	int32_t length;
	char versionName[5];
	FILE *versionFile;

	if (argc == 3)
	{
		if (strcmpignorecase(argv[1], "-test") == 0)
		{
			testPak(argv[2]);

			exit(0);
		}
	}

	else if (argc < 3)
	{
		printf("Usage   : pak <directory names> <outputname>\n");
		printf("Example : pak data music gfx sound font edgar.pak\n");

		exit(1);
	}
	
	atexit(cleanup);

	pak = fopen(argv[argc - 1], "wb");

	arraySize = 1000;
	
	filenames = malloc(arraySize * sizeof(char *));

	for (i=1;i<argc-1;i++)
	{
		getFilenames(argv[i], &arraySize);
	}
	
	qsort(filenames, totalFiles, sizeof(char *), compare);

	totalFiles++;

	printf("Will compress %d files\n", totalFiles);

	printf("Compressing 00%%...\r");

	fileData = malloc(totalFiles * sizeof(FileData));

	if (fileData == NULL)
	{
		printf("Failed to create File Data\n");

		exit(1);
	}

	snprintf(versionName, sizeof(versionName), "%0.2f", VERSION);

	versionFile = fopen(versionName, "wb");

	fprintf(versionFile, "%s", versionName);

	fclose(versionFile);

	for (i=0;i<totalFiles-1;i++)
	{
		compressFile(filenames[i]);
	}

	compressFile(versionName);

	remove(versionName);

	length = ftell(pak);

	for (i=0;i<totalFiles;i++)
	{
		if (fileData[i].fileSize == 0)
		{
			break;
		}

		fileData[i].offset = SWAP32(fileData[i].offset);
		fileData[i].compressedSize = SWAP32(fileData[i].compressedSize);
		fileData[i].fileSize = SWAP32(fileData[i].fileSize);

		fwrite(&fileData[i], sizeof(FileData), 1, pak);
	}

	length = SWAP32(length);
	totalFiles = SWAP32(totalFiles);

	fwrite(&length, sizeof(int32_t), 1, pak);
	fwrite(&totalFiles, sizeof(int32_t), 1, pak);

	fclose(pak);

	printf("Compressing 100%%\nCompleted\n");

	return 0;
}