Ejemplo n.º 1
0
// pass an uninitialized file object, the function will ask the user for the
// filename and try to open it, returns true on success (file was opened),
// false if file couldn't be opened/created and -1 if the file selection
// dialog was cancelled
int SjLogDialog::OpenLogFile(wxFile& file, wxString& retFilename)
{
	SJ_WINDOW_DISABLER(this);

	// get the file name
	// -----------------
	SjExtList extList; extList.AddExt(wxT("txt"));
	wxFileDialog dlg(this, _("Save"), wxT(""), wxT("log.txt"), extList.GetFileDlgStr(wxFD_SAVE), wxFD_SAVE|wxFD_CHANGE_DIR);
	if( dlg.ShowModal() != wxID_OK ) { return -1; }
	wxString filename = dlg.GetPath();

	// open file
	// ---------
	bool bOk wxDUMMY_INITIALIZE(false);
	if ( wxFile::Exists(filename) )
	{
		wxASSERT( wxYES != wxCANCEL );
		wxASSERT( wxNO != wxCANCEL );
		bool bAppend = false;
		switch( SjMessageBox(wxString::Format(_("Overwrite \"%s\"?"), filename.c_str()), SJ_PROGRAM_NAME,
		                     wxICON_QUESTION | wxYES_NO | wxCANCEL, this, NULL, NULL, _("Yes"), _("Append")) )
		{
			case wxYES:
				bAppend = false;
				break;

			case wxNO:
				bAppend = true;
				break;

			default:
				return -1;
		}

		if ( bAppend ) {
			bOk = file.Open(filename, wxFile::write_append);
		}
		else {
			bOk = file.Create(filename, true /* overwrite */);
		}
	}
	else {
		bOk = file.Create(filename);
	}

	retFilename = filename;

	return bOk;
}
Ejemplo n.º 2
0
SjExtList SjModuleSystem::GetAssignedExt(long flags)
{
	SjExtList ret;

	// potentially playable files
	if( flags & SJ_EXT_MUSICFILES )
	{
		ret.AddExt(
			"aac ac3 aif aiff ape asf au dts f4a fla flac "
			"m4a m4b mac mp+ mp1 mp2 mp3 mpa mpc mpp "
			"nsa ofr oga ogg opus shn snd spx tta wav wma wv ra "
			#if SJ_USE_VIDEO
			"3g2 3gp asx avi dv f4p f4v flv "
			"mjpg mkv mka mov m2t m2ts m2v m4v m4p mp4 mpg mpe mpeg mpv mts "
			"nsv ogm ogv ogx pva qt qtl rm rmvb trp ts vob wax webm wmv "
			#endif
		);
	}

	// files types read along with the playable files
	if( flags & SJ_EXT_ARCHIVES )
	{
		ret.AddExt("tar zip");
	}

	if( flags & SJ_EXT_IMAGEFILES )
	{
		ret.AddExt(m_imageExtList);
	}

	// other file types
	if( flags & SJ_EXT_PLAYLISTS_READ )
	{
		ret.AddExt(m_playlistExtListRead);
	}

	if( flags & SJ_EXT_PLAYLISTS_WRITE )
	{
		ret.AddExt(m_playlistExtListWrite);
	}

	return ret;
}