MCPcopy Create free account
hub / github.com/audacity/audacity / WriteImportItems

Method WriteImportItems

libraries/lib-import-export/Import.cpp:410–469  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

408}
409
410void Importer::WriteImportItems()
411{
412 size_t i;
413 wxString val, name;
414 for (i = 0; i < this->mExtImportItems.size(); i++)
415 {
416 ExtImportItem *item = mExtImportItems[i].get();
417 val.clear();
418
419 for (size_t j = 0; j < item->extensions.size(); j++)
420 {
421 val.Append (item->extensions[j]);
422 if (j < item->extensions.size() - 1)
423 val.Append (wxT(":"));
424 }
425 val.Append (wxT("\\"));
426 for (size_t j = 0; j < item->mime_types.size(); j++)
427 {
428 val.Append (item->mime_types[j]);
429 if (j < item->mime_types.size() - 1)
430 val.Append (wxT(":"));
431 }
432 val.Append (wxT("|"));
433 for (size_t j = 0; j < item->filters.size() && ((int) j < item->divider || item->divider < 0); j++)
434 {
435 val.Append (item->filters[j]);
436 if (j < item->filters.size() - 1 && ((int) j < item->divider - 1 || item->divider < 0))
437 val.Append (wxT(":"));
438 }
439 if (item->divider >= 0)
440 {
441 val.Append (wxT("\\"));
442 for (size_t j = item->divider; j < item->filters.size(); j++)
443 {
444 val.Append (item->filters[j]);
445 if (j < item->filters.size() - 1)
446 val.Append (wxT(":"));
447 }
448 }
449 name.Printf (wxT("/ExtImportItems/Item%d"), (int)i);
450 gPrefs->Write (name, val);
451 gPrefs->Flush();
452 }
453 /* If we used to have more items than we have now, DELETE the excess items.
454 We just keep deleting items and incrementing until we find there aren't any
455 more to DELETE.*/
456 i = this->mExtImportItems.size();
457 do {
458 name.Printf (wxT("/ExtImportItems/Item%d"), (int)i);
459 // No item to DELETE? Then it's time to finish.
460 if (!gPrefs->Read(name, &val))
461 break;
462 // Failure to DELETE probably means a read-only config file.
463 // no point continuing.
464 // TODO: Possibly report (once).
465 if( !gPrefs->DeleteEntry (name))
466 break;
467 i++;

Callers 1

CommitMethod · 0.80

Calls 8

sizeMethod · 0.45
getMethod · 0.45
clearMethod · 0.45
AppendMethod · 0.45
WriteMethod · 0.45
FlushMethod · 0.45
ReadMethod · 0.45
DeleteEntryMethod · 0.45

Tested by

no test coverage detected