///////////
// Extract
void DialogAttachments::OnExtract(wxCommandEvent &event) {
	// Check if there's a selection
	int i = listView->GetFirstSelected();

	// Get path
	if (i != -1) {
		wxString path;
		bool fullPath = false;

		// Multiple or single?
		if (listView->GetNextSelected(i) != -1) path = wxDirSelector(_("Select the path to save the files to:"),Options.AsText(_T("Fonts Collector Destination"))) + _T("/");
		else {
			// Default path
			wxString defPath = ((AssAttachment*) listView->GetItemData(i))->GetFileName();
			path = wxFileSelector(_("Select the path to save the file to:"),Options.AsText(_T("Fonts Collector Destination")),defPath);
			fullPath = true;
		}
		if (path.IsEmpty()) return;

		// Loop through items in list
		while (i != -1) {
			AssAttachment *attach = (AssAttachment*) listView->GetItemData(i);
			wxString filename = path;
			if (!fullPath) filename += attach->GetFileName();
			attach->Extract(filename);
			i = listView->GetNextSelected(i);
		}
	}
}
Esempio n. 2
0
void DialogAttachments::OnExtract(wxCommandEvent &) {
	int i = listView->GetFirstSelected();
	if (i == -1) return;

	wxString path;
	bool fullPath = false;

	// Multiple or single?
	if (listView->GetNextSelected(i) != -1)
		path = wxDirSelector(_("Select the path to save the files to:"),lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString())) + "/";
	else {
		// Default path
		wxString defPath = ((AssAttachment*)wxUIntToPtr(listView->GetItemData(i)))->GetFileName();
		path = wxFileSelector(
			_("Select the path to save the file to:"),
			lagi_wxString(OPT_GET("Path/Fonts Collector Destination")->GetString()),
			defPath,
			".ttf",
			"Font Files (*.ttf)|*.ttf",
			wxFD_SAVE | wxFD_OVERWRITE_PROMPT,
			this);
		fullPath = true;
	}
	if (!path) return;

	// Loop through items in list
	while (i != -1) {
		AssAttachment *attach = (AssAttachment*)wxUIntToPtr(listView->GetItemData(i));
		attach->Extract(fullPath ? path : path + attach->GetFileName());
		i = listView->GetNextSelected(i);
	}
}