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 ); } }
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 ); } }
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; }