Exemple #1
0
void InstrumentTrackWindow::saveSettingsBtnClicked()
{
	QFileDialog sfd( this, tr( "Save preset" ), "",
				tr( "XML preset file (*.xpf)" ) );

	QString preset_root = configManager::inst()->userPresetsDir();
	if( !QDir( preset_root ).exists() )
	{
		QDir().mkdir( preset_root );
	}
	if( !QDir( preset_root + m_track->instrumentName() ).exists() )
	{
		QDir( preset_root ).mkdir( m_track->instrumentName() );
	}

	sfd.setAcceptMode( QFileDialog::AcceptSave );
	sfd.setDirectory( preset_root + m_track->instrumentName() );
	sfd.setFileMode( QFileDialog::AnyFile );
	if( sfd.exec () == QDialog::Accepted &&
		!sfd.selectedFiles().isEmpty() && sfd.selectedFiles()[0] != ""
	)
	{
		multimediaProject mmp(
				multimediaProject::InstrumentTrackSettings );
		m_track->setSimpleSerializing();
		m_track->saveSettings( mmp, mmp.content() );
		QString f = sfd.selectedFiles()[0];
		mmp.writeFile( f );
	}
}
Exemple #2
0
void VstPlugin::savePreset( )
{
	QString presName = currentProgramName().isEmpty() ? tr(": default") : currentProgramName();
	presName.replace(tr("\""), tr("'")); // QFileDialog unable to handle double quotes properly

	FileDialog sfd( NULL, tr( "Save Preset" ), presName.section(": ", 1, 1) + tr(".fxp"),
		tr( "Vst Plugin Preset (*.fxp *.fxb)" ) );

	if( p_name != "" ) // remember last directory
	{
		sfd.setDirectory( QFileInfo( p_name ).absolutePath() );
	}

	sfd.setAcceptMode( FileDialog::AcceptSave );
	sfd.setFileMode( FileDialog::AnyFile );
	if( sfd.exec () == QDialog::Accepted &&
				!sfd.selectedFiles().isEmpty() && sfd.selectedFiles()[0] != "" )
	{
		QString fns = sfd.selectedFiles()[0];
		p_name = fns;

		if ((fns.toUpper().indexOf(tr(".FXP")) == -1) && (fns.toUpper().indexOf(tr(".FXB")) == -1))
			fns = fns + tr(".fxb");
		else fns = fns.left(fns.length() - 4) + (fns.right( 4 )).toLower();
		lock();
		sendMessage( message( IdSavePresetFile ).
			addString(
				QSTR_TO_STDSTR(
					QDir::toNativeSeparators( fns ) ) )
			);
		waitForMessage( IdSavePresetFile, true );
		unlock();
	}
}
void InstrumentTrackWindow::saveSettingsBtnClicked()
{
	FileDialog sfd( this, tr( "Save preset" ), "", tr( "XML preset file (*.xpf)" ) );

	QString presetRoot = ConfigManager::inst()->userPresetsDir();
	if( !QDir( presetRoot ).exists() )
	{
		QDir().mkdir( presetRoot );
	}
	if( !QDir( presetRoot + m_track->instrumentName() ).exists() )
	{
		QDir( presetRoot ).mkdir( m_track->instrumentName() );
	}

	sfd.setAcceptMode( FileDialog::AcceptSave );
	sfd.setDirectory( presetRoot + m_track->instrumentName() );
	sfd.setFileMode( FileDialog::AnyFile );
	QString fname = m_track->name();
	sfd.selectFile(fname.remove(QRegExp("[^a-zA-Z0-9\\d\\s]")).toLower().replace( " ", "_" ) );

	if( sfd.exec() == QDialog::Accepted &&
		!sfd.selectedFiles().isEmpty() &&
		!sfd.selectedFiles().first().isEmpty() )
	{
		DataFile::LocaleHelper localeHelper( DataFile::LocaleHelper::ModeSave );

		DataFile dataFile( DataFile::InstrumentTrackSettings );
		m_track->setSimpleSerializing();
		m_track->saveSettings( dataFile, dataFile.content() );
		QString f = sfd.selectedFiles()[0];
		dataFile.writeFile( f );
	}
}
Exemple #4
0
void InstrumentTrackWindow::saveSettingsBtnClicked()
{
	FileDialog sfd( this, tr( "Save preset" ), "", tr( "XML preset file (*.xpf)" ) );

	QString presetRoot = configManager::inst()->userPresetsDir();
	if( !QDir( presetRoot ).exists() )
	{
		QDir().mkdir( presetRoot );
	}
	if( !QDir( presetRoot + m_track->instrumentName() ).exists() )
	{
		QDir( presetRoot ).mkdir( m_track->instrumentName() );
	}

	sfd.setAcceptMode( FileDialog::AcceptSave );
	sfd.setDirectory( presetRoot + m_track->instrumentName() );
	sfd.setFileMode( FileDialog::AnyFile );

	if( sfd.exec() == QDialog::Accepted &&
		!sfd.selectedFiles().isEmpty() &&
		!sfd.selectedFiles().first().isEmpty() )
	{
		DataFile dataFile( DataFile::InstrumentTrackSettings );
		m_track->setSimpleSerializing();
		m_track->saveSettings( dataFile, dataFile.content() );
		QString f = sfd.selectedFiles()[0];
		dataFile.writeFile( f );
	}
}
void GenericProjectPlugin::editFiles()
{
    GenericProject *genericProject = static_cast<GenericProject *>(m_contextMenuProject);
    SelectableFilesDialogEditFiles sfd(genericProject->projectFilePath().toFileInfo().path(), genericProject->files(),
                              ICore::mainWindow());
    if (sfd.exec() == QDialog::Accepted)
        genericProject->setFiles(sfd.selectedFiles());
}
void GenericProjectPlugin::editFiles()
{
    auto genericProject = qobject_cast<GenericProject *>(ProjectTree::currentProject());
    if (!genericProject)
        return;
    SelectableFilesDialogEditFiles sfd(genericProject->projectFilePath(),
                                       Utils::transform(genericProject->files(), [](const QString &f) { return Utils::FileName::fromString(f); }),
                                       ICore::mainWindow());
    if (sfd.exec() == QDialog::Accepted)
        genericProject->setFiles(Utils::transform(sfd.selectedFiles(), &Utils::FileName::toString));
}
void HumanClientApp::LoadSinglePlayerGame(std::string filename/* = ""*/) {
    DebugLogger() << "HumanClientApp::LoadSinglePlayerGame";

    if (!filename.empty()) {
        if (!exists(FilenameToPath(filename))) {
            std::string msg = "HumanClientApp::LoadSinglePlayerGame() given a nonexistent file \""
                            + filename + "\" to load; aborting.";
            DebugLogger() << msg;
            std::cerr << msg << '\n';
            abort();
        }
    } else {
        try {
            SaveFileDialog sfd(SP_SAVE_FILE_EXTENSION, true);
            sfd.Run();
            if (!sfd.Result().empty())
                filename = sfd.Result();
        } catch (const std::exception& e) {
            ClientUI::MessageBox(e.what(), true);
        }
    }

    if (filename.empty()) {
        DebugLogger() << "HumanClientApp::LoadSinglePlayerGame has empty filename. Aborting load.";
        return;
    }

    // end any currently-playing game before loading new one
    if (m_game_started) {
        EndGame();
        // delay to make sure old game is fully cleaned up before attempting to start a new one
        boost::this_thread::sleep(boost::posix_time::seconds(3));
    } else {
        DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() not already in a game, so don't need to end it";
    }

    if (!GetOptionsDB().Get<bool>("force-external-server")) {
        DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() Starting server";
        StartServer();
        DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() Server started";
    } else {
        DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() assuming external server will be available";
    }

    DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() Connecting to server";
    unsigned int start_time = Ticks();
    while (!m_networking.ConnectToLocalHostServer()) {
        if (SERVER_CONNECT_TIMEOUT < Ticks() - start_time) {
            ErrorLogger() << "HumanClientApp::LoadSinglePlayerGame() server connecting timed out";
            ClientUI::MessageBox(UserString("ERR_CONNECT_TIMED_OUT"), true);
            KillServer();
            return;
        }
    }

    DebugLogger() << "HumanClientApp::LoadSinglePlayerGame() Connected to server";

    m_connected = true;
    m_networking.SetPlayerID(Networking::INVALID_PLAYER_ID);
    m_networking.SetHostPlayerID(Networking::INVALID_PLAYER_ID);
    SetEmpireID(ALL_EMPIRES);

    SinglePlayerSetupData setup_data;
    // leving GalaxySetupData information default / blank : not used when loading a game
    setup_data.m_new_game = false;
    setup_data.m_filename = filename;
    // leving setup_data.m_players empty : not specified when loading a game, as server will generate from save file


    m_networking.SendMessage(HostSPGameMessage(setup_data));
    m_fsm->process_event(HostSPGameRequested());
}
std::string HumanClientApp::SelectSaveFile() {
    SaveFileDialog sfd(false);
    sfd.Run();
    return sfd.Result();
}
void ImageImporter::importFiles(QFileInfoList* lstFiles, const QString& baseFolder,
                                const QString& subfolder, const QString& fileName,
                                bool lowercaseFileNames, bool moveFiles, DlgImageImporterStatus* dlgStatus)
{
    QRegExp re(m_txtSourceFilename->text(), !m_chkIgnoreCase->isChecked());
    if (!re.isValid()) {
        dlgStatus->appendErrorMessage(i18n("Invalid Regular Expression!"));
        dlgStatus->setCurrentMode(DlgImageImporterStatus::ModeAbort, i18n("Aborted!"));
        return;
    }


    //check if the basedir exists
    QDir bfd(baseFolder);
    if (!bfd.exists()) {
        if (!ImageImporter::mkpath(bfd.absPath())) {
            dlgStatus->appendErrorMessage(i18n("Could not create base path!"));
            dlgStatus->setCurrentMode(DlgImageImporterStatus::ModeAbort, i18n("Aborted!"));
            return;
        }
    }



    QFileInfo* fi;
    for ( fi = lstFiles->first(); fi; fi = lstFiles->next() )
    {
        dlgStatus->incProgress();

        QString sf = replaceStrings( subfolder, fi, re );
        if (sf.isEmpty()) {
            dlgStatus->appendErrorMessage(QString(i18n("Image \'%1\' does not contain exif data, skipping!"))
                                          .arg(fi->absFilePath()));
            continue;
        }
        QString fn = replaceStrings( fileName,  fi, re );

        if (lowercaseFileNames) {
            fn = fn.lower();
        }

        //now check if the directories exists ... or create them...
        QDir sfd(bfd.absPath() + "/" + sf);
        if (!sfd.exists()) {
            if (!ImageImporter::mkpath(sfd.absPath())) {
                dlgStatus->appendErrorMessage(QString(i18n("Could not create subfolder for image \'%1\'"))
                                              .arg(fi->absFilePath()));
                continue;
            }
        }

        QFileInfo toFile(sfd.absPath() + "/" + fn);
        if (toFile.exists()) {
            dlgStatus->appendErrorMessage(QString(i18n("Image \'%1\' already exists, not imported!"))
                                          .arg(fi->absFilePath()));
            continue;
        }

        if (moveFiles) {
            ImageImporter::move_file( fi->absFilePath(), toFile.absFilePath() );
        } else {
            ImageImporter::copy_file( fi->absFilePath(), toFile.absFilePath() );
        }

        if (dlgStatus->wasCanceled()) {
            return;
        }
    }
}
/**
 * Reads and merges sfd (wfd) files together.
 */
int
sfdmerger2( int argc, char* argv[] ) {
   // COH to get BT and handle arguments
   CommandlineOptionHandler coh( argc, argv, 2 );

   coh.setSummary( "Merges any number of sfd files together "
                   "into one. But the result must form a square." );
   coh.setTailHelp( "outSFDfile inSFDfile+" );

   int wfdVersion = 0; // Only version 0 supported by all sfd readers 20081121
   bool testRun = false;
   char* name;

   coh.addOption( "-w", "--wfd-version", CommandlineOptionHandler::integerVal,
                  1, &wfdVersion, "0", 
                  "Set the sfd version to save, default 0. Only version 0 "
                  "supported by any reader but this.");
   coh.addOption( "-t", "--test", CommandlineOptionHandler::presentVal,
                  1, &testRun, "F", 
                  "If to only test to load the sfd files not make any output, "
                  "default false" );
   coh.addOption( "-n", "--name",
                  CommandlineOptionHandler::stringVal,
                  1, &name, "\0",
                  "The name of the merged sfd, like 22_6_3 for a 3x3 tile "
                  "merge of x 66-68 and y 18-20.");

   if ( !coh.parse() ) {
      coh.printHelp( cout );
      return 1;
   }

   MC2String outFile( coh.getTail( 0 ) );
   SFDFile outSfd( name, false/*debug, overwritten by load*/ );
   uint32 totalBuffSize = 0;

   int res = 0;

   // For all the input files
   for ( int i = 1/*0 is out file name*/; 
         i < coh.getTailLength() && res == 0 ; ++i ) {
      // Read and merge
      MC2String inFile( coh.getTail( i ) );
      mc2dbg << "Attempting to read " << inFile << endl;
      vector<byte> buff;
      int fres = File::readFile( inFile.c_str(), buff );
      if ( fres < 0 ) {
         res = 2;
      } else {
         mc2dbg << "Attempting to load " << inFile << endl;
         auto_ptr<BitBuffer> bitBuff( 
            new BitBuffer( &buff.front(), buff.size() ) );
         SFDFile sfd( inFile.c_str(), false/*debug, overwritten by load*/ );
         sfd.load( *bitBuff );

         // Size calculation! (Add all input file sizes and use)
         totalBuffSize += buff.size();

         if ( false && !testRun ) {
            auto_ptr<BitBuffer> outBuff( new BitBuffer( buff.size() ) );
            sfd.save( *outBuff, wfdVersion );

            MC2String saveFile( inFile + ".test" );
            int fres = File::writeFile( saveFile.c_str(), 
                                        outBuff->getBufferAddress(), 
                                        outBuff->getCurrentOffset() );
            if ( fres < 0 ) {
               mc2dbg << "Failed to save saved copy of sfd " << fres << endl;
               res = 2;
            } else {
               mc2dbg << "Saved copy of sfd " << saveFile << " size " << fres 
                      << " bytes" << endl;
            }
         } // End if to save each input as .test 

         if ( i == 1 ) {
            // Set first as out
            outSfd.assign( sfd );
            // Set the name
            outSfd.setName( name );
         } else {
            if ( !outSfd.merge( sfd ) ) {
               mc2dbg << "Failed to merge " << inFile << " into all buffers" 
                      << endl;
               res = false;
            }
         }
      }

   } // End for all input files

   if ( res == 0 && !testRun ) {
      auto_ptr<BitBuffer> outBuff( 
         new BitBuffer( totalBuffSize * (wfdVersion > 0 ? 2 : 1 ) ) );
      outSfd.save( *outBuff, wfdVersion );
      int fres = File::writeFile( outFile.c_str(), 
                                  outBuff->getBufferAddress(), 
                                  outBuff->getCurrentOffset() );
      if ( fres < 0 ) {
         mc2dbg << "Failed to save merged sfd " << fres << endl;
         res = 2;
      } else {
         mc2dbg << "Saved merged sfd " << outFile << " size " << fres 
                << " bytes" << endl;
      }
   }

   coh.deleteTheStrings();

   return res;
}