Use AIFilePicker everywhere.
Also upgrade the file picker filters with the new extensions found in the orginal file picker code of Singularity. Also improve AIFilePicker a bit: added hasFilename() and now deleting the statemachine automatically by default: it's no longer needed to call deleteMe from the callback.
This commit is contained in:
@@ -87,12 +87,52 @@ static LLFilePicker::ESaveFilter str2savefilter(std::string const& filter)
|
||||
return LLFilePicker::FFSAVE_PNG;
|
||||
else if (filter == "jpeg")
|
||||
return LLFilePicker::FFSAVE_JPEG;
|
||||
else if (filter == "hpa")
|
||||
return LLFilePicker::FFSAVE_HPA;
|
||||
else if (filter == "text")
|
||||
return LLFilePicker::FFSAVE_TEXT;
|
||||
else if (filter == "animatn")
|
||||
return LLFilePicker::FFSAVE_ANIMATN;
|
||||
else if (filter == "ogg")
|
||||
return LLFilePicker::FFSAVE_OGG;
|
||||
else if (filter == "notecard")
|
||||
return LLFilePicker::FFSAVE_NOTECARD;
|
||||
else if (filter == "gesture")
|
||||
return LLFilePicker::FFSAVE_GESTURE;
|
||||
else if (filter == "lsl")
|
||||
return LLFilePicker::FFSAVE_LSL;
|
||||
else if (filter == "shape")
|
||||
return LLFilePicker::FFSAVE_SHAPE;
|
||||
else if (filter == "skin")
|
||||
return LLFilePicker::FFSAVE_SKIN;
|
||||
else if (filter == "hair")
|
||||
return LLFilePicker::FFSAVE_HAIR;
|
||||
else if (filter == "eyes")
|
||||
return LLFilePicker::FFSAVE_EYES;
|
||||
else if (filter == "shirt")
|
||||
return LLFilePicker::FFSAVE_SHIRT;
|
||||
else if (filter == "pants")
|
||||
return LLFilePicker::FFSAVE_PANTS;
|
||||
else if (filter == "shoes")
|
||||
return LLFilePicker::FFSAVE_SHOES;
|
||||
else if (filter == "socks")
|
||||
return LLFilePicker::FFSAVE_SOCKS;
|
||||
else if (filter == "jacket")
|
||||
return LLFilePicker::FFSAVE_JACKET;
|
||||
else if (filter == "gloves")
|
||||
return LLFilePicker::FFSAVE_GLOVES;
|
||||
else if (filter == "undershirt")
|
||||
return LLFilePicker::FFSAVE_UNDERSHIRT;
|
||||
else if (filter == "underpants")
|
||||
return LLFilePicker::FFSAVE_UNDERPANTS;
|
||||
else if (filter == "skirt")
|
||||
return LLFilePicker::FFSAVE_SKIRT;
|
||||
else if (filter == "invgz")
|
||||
return LLFilePicker::FFSAVE_INVGZ;
|
||||
else if (filter == "landmark")
|
||||
return LLFilePicker::FFSAVE_LANDMARK;
|
||||
else if (filter == "ao")
|
||||
return LLFilePicker::FFSAVE_AO;
|
||||
else if (filter == "blacklist")
|
||||
return LLFilePicker::FFSAVE_BLACKLIST;
|
||||
else if (filter == "physics")
|
||||
return LLFilePicker::FFSAVE_PHYSICS;
|
||||
else
|
||||
return LLFilePicker::FFSAVE_ALL;
|
||||
}
|
||||
@@ -116,8 +156,12 @@ static LLFilePicker::ELoadFilter str2loadfilter(std::string const& filter)
|
||||
return LLFilePicker::FFLOAD_SLOBJECT;
|
||||
else if (filter == "raw")
|
||||
return LLFilePicker::FFLOAD_RAW;
|
||||
else if (filter == "text")
|
||||
return LLFilePicker::FFLOAD_TEXT;
|
||||
else if (filter == "invgz")
|
||||
return LLFilePicker::FFLOAD_INVGZ;
|
||||
else if (filter == "ao")
|
||||
return LLFilePicker::FFLOAD_AO;
|
||||
else if (filter == "blacklist")
|
||||
return LLFilePicker::FFLOAD_BLACKLIST;
|
||||
else
|
||||
return LLFilePicker::FFLOAD_ALL;
|
||||
}
|
||||
|
||||
@@ -129,8 +129,13 @@ namespace LLWindowSDL {
|
||||
LLFilePicker LLFilePicker::sInstance;
|
||||
|
||||
#if LL_WINDOWS
|
||||
#define SOUND_FILTER L"Sounds (*.wav)\0*.wav\0"
|
||||
#define IMAGE_FILTER L"Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png)\0*.tga;*.bmp;*.jpg;*.jpeg;*.png\0"
|
||||
// <edit>
|
||||
#define SOUND_FILTER L"Sounds (*.wav; *.ogg)\0*.wav;*.ogg\0"
|
||||
#define IMAGE_FILTER L"Images (*.tga; *.bmp; *.jpg; *.jpeg; *.png; *.jp2; *.j2k; *.j2c)\0*.tga;*.bmp;*.jpg;*.jpeg;*.png;*.jp2;*.j2k;*.j2c\0"
|
||||
#define INVGZ_FILTER L"Inv cache (*.inv; *.inv.gz)\0*.inv;*.inv.gz\0"
|
||||
#define AO_FILTER L"Animation Override (*.ao)\0*.ao\0"
|
||||
#define BLACKLIST_FILTER L"Asset Blacklist (*.blacklist)\0*.blacklist\0"
|
||||
// </edit>
|
||||
#define ANIM_FILTER L"Animations (*.bvh)\0*.bvh\0"
|
||||
#ifdef _CORY_TESTING
|
||||
#define GEOMETRY_FILTER L"SL Geometry (*.slg)\0*.slg\0"
|
||||
@@ -264,6 +269,20 @@ bool LLFilePickerBase::setupFilter(ELoadFilter filter)
|
||||
mOFN.lpstrFilter = RAW_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
// <edit>
|
||||
case FFLOAD_INVGZ:
|
||||
mOFN.lpstrFilter = INVGZ_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
case FFLOAD_AO:
|
||||
mOFN.lpstrFilter = AO_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
case FFLOAD_BLACKLIST:
|
||||
mOFN.lpstrFilter = BLACKLIST_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
// </edit>
|
||||
default:
|
||||
res = FALSE;
|
||||
break;
|
||||
@@ -401,28 +420,6 @@ bool LLFilePickerBase::getSaveFile(ESaveFilter filter, std::string const& filena
|
||||
L"Targa, Bitmap Images (*.tga; *.bmp)\0*.tga;*.bmp\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_LSL:
|
||||
if (filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.lsl", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
|
||||
}
|
||||
mOFN.lpstrDefExt = L"lsl";
|
||||
mOFN.lpstrFilter =
|
||||
L"LSL Files (*.lsl)\0*.lsl\0"
|
||||
L"Text files (*.txt)\0*.txt\0"
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_TEXT:
|
||||
if (filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.txt", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
|
||||
}
|
||||
mOFN.lpstrDefExt = L"txt";
|
||||
mOFN.lpstrFilter =
|
||||
L"Text files (*.txt)\0*.txt\0"
|
||||
L"RTF Files (*.rtf)\0*.rtf\0"
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_WAV:
|
||||
if (filename.empty())
|
||||
{
|
||||
@@ -466,11 +463,11 @@ bool LLFilePickerBase::getSaveFile(ESaveFilter filter, std::string const& filena
|
||||
case FFSAVE_JPEG:
|
||||
if (filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.jpeg", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
|
||||
wcsncpy( mFilesW,L"untitled.jpg", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
|
||||
}
|
||||
mOFN.lpstrDefExt = L"jpeg";
|
||||
mOFN.lpstrDefExt = L"jpg";
|
||||
mOFN.lpstrFilter =
|
||||
L"JPEG Images (*.jpeg)\0*.jpeg\0" \
|
||||
L"JPEG Images (*.jpg *.jpeg)\0*.jpg;*.jpeg\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_AVI:
|
||||
@@ -545,10 +542,241 @@ bool LLFilePickerBase::getSaveFile(ESaveFilter filter, std::string const& filena
|
||||
L"Compressed Images (*.j2c)\0*.j2c\0" \
|
||||
L"\0";
|
||||
break;
|
||||
// <edit>
|
||||
case FFSAVE_ANIMATN:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.animatn", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"animatn";
|
||||
mOFN.lpstrFilter =
|
||||
L"SL Animations (*.animatn)\0*.animatn\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_OGG:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.ogg", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"ogg";
|
||||
mOFN.lpstrFilter =
|
||||
L"Ogg (*.ogg)\0*.ogg\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_NOTECARD:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.notecard", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"notecard";
|
||||
mOFN.lpstrFilter =
|
||||
L"Notecards (*.notecard)\0*.notecard\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_GESTURE:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.gesture", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"gesture";
|
||||
mOFN.lpstrFilter =
|
||||
L"Gestures (*.gesture)\0*.gesture\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_LSL:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.lsl", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"lsl";
|
||||
mOFN.lpstrFilter =
|
||||
L"LSL (*.lsl)\0*.lsl\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SHAPE:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.shape", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"shape";
|
||||
mOFN.lpstrFilter =
|
||||
L"Shapes (*.shape)\0*.shape\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SKIN:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.skin", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"skin";
|
||||
mOFN.lpstrFilter =
|
||||
L"Skins (*.skin)\0*.skin\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_HAIR:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.hair", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"hair";
|
||||
mOFN.lpstrFilter =
|
||||
L"Hair (*.hair)\0*.hair\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_EYES:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.eyes", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"eyes";
|
||||
mOFN.lpstrFilter =
|
||||
L"Eyes (*.eyes)\0*.eyes\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SHIRT:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.shirt", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"shirt";
|
||||
mOFN.lpstrFilter =
|
||||
L"Shirts (*.shirt)\0*.shirt\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_PANTS:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.pants", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"pants";
|
||||
mOFN.lpstrFilter =
|
||||
L"Pants (*.pants)\0*.pants\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SHOES:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.shoes", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"shoes";
|
||||
mOFN.lpstrFilter =
|
||||
L"Shoes (*.shoes)\0*.shoes\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SOCKS:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.socks", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"socks";
|
||||
mOFN.lpstrFilter =
|
||||
L"Socks (*.socks)\0*.socks\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_JACKET:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.jacket", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"jacket";
|
||||
mOFN.lpstrFilter =
|
||||
L"Jackets (*.jacket)\0*.jacket\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_GLOVES:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.gloves", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"gloves";
|
||||
mOFN.lpstrFilter =
|
||||
L"Gloves (*.gloves)\0*.gloves\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_UNDERSHIRT:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.undershirt", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"undershirt";
|
||||
mOFN.lpstrFilter =
|
||||
L"Undershirts (*.undershirt)\0*.undershirt\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_UNDERPANTS:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.underpants", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"underpants";
|
||||
mOFN.lpstrFilter =
|
||||
L"Underpants (*.underpants)\0*.underpants\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_SKIRT:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.skirt", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"skirt";
|
||||
mOFN.lpstrFilter =
|
||||
L"Skirts (*.skirt)\0*.skirt\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_LANDMARK:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.landmark", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"landmark";
|
||||
mOFN.lpstrFilter =
|
||||
L"Landmarks (*.landmark)\0*.landmark\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_AO:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.ao", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"ao";
|
||||
mOFN.lpstrFilter =
|
||||
L"Animation overrides (*.ao)\0*.ao\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_INVGZ:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.inv", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L".inv";
|
||||
mOFN.lpstrFilter =
|
||||
L"InvCache (*.inv)\0*.inv\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_BLACKLIST:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.blacklist", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L".blacklist";
|
||||
mOFN.lpstrFilter =
|
||||
L"Asset Blacklists (*.blacklist)\0*.blacklist\0" \
|
||||
L"\0";
|
||||
break;
|
||||
case FFSAVE_PHYSICS:
|
||||
if(filename.empty())
|
||||
{
|
||||
wcsncpy( mFilesW,L"untitled.phy", FILENAME_BUFFER_SIZE);
|
||||
}
|
||||
mOFN.lpstrDefExt = L"phy";
|
||||
mOFN.lpstrFilter =
|
||||
L"Landmarks (*.phy)\0*.phy\0" \
|
||||
L"\0";
|
||||
break;
|
||||
// </edit>
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
mOFN.nMaxFile = SINGLE_FILENAME_BUFFER_SIZE;
|
||||
mOFN.Flags = OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST;
|
||||
@@ -604,16 +832,12 @@ Boolean LLFilePickerBase::navOpenFilterProc(AEDesc *theItem, void *info, void *c
|
||||
{
|
||||
if (fileInfo.filetype != 'JPEG' && fileInfo.filetype != 'JPG ' &&
|
||||
fileInfo.filetype != 'BMP ' && fileInfo.filetype != 'TGA ' &&
|
||||
fileInfo.filetype != 'TIFF' && fileInfo.filetype != 'PSD ' &&
|
||||
fileInfo.filetype != 'BMPf' && fileInfo.filetype != 'TPIC' &&
|
||||
fileInfo.filetype != 'PNG ' &&
|
||||
(fileInfo.extension && (CFStringCompare(fileInfo.extension, CFSTR("jpeg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("jpg"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("bmp"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("tga"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("psd"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("tiff"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("tif"), kCFCompareCaseInsensitive) != kCFCompareEqualTo &&
|
||||
CFStringCompare(fileInfo.extension, CFSTR("png"), kCFCompareCaseInsensitive) != kCFCompareEqualTo))
|
||||
)
|
||||
{
|
||||
@@ -639,6 +863,15 @@ Boolean LLFilePickerBase::navOpenFilterProc(AEDesc *theItem, void *info, void *c
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
else if (filter == FFLOAD_XML)
|
||||
{
|
||||
if (fileInfo.filetype != 'XML' &&
|
||||
(fileInfo.extension && (CFStringCompare(fileInfo.extension, CFSTR("xml"), kCFCompareCaseInsensitive) != kCFCompareEqualTo))
|
||||
)
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
#ifdef _CORY_TESTING
|
||||
else if (filter == FFLOAD_GEOMETRY)
|
||||
{
|
||||
@@ -1158,13 +1391,8 @@ static std::string add_simple_mime_filter_to_gtkchooser(GtkWindow *picker,
|
||||
|
||||
static std::string add_wav_filter_to_gtkchooser(GtkWindow *picker)
|
||||
{
|
||||
GtkFileFilter *gfilter = gtk_file_filter_new();
|
||||
gtk_file_filter_add_pattern(gfilter, "*.wav");
|
||||
gtk_file_filter_add_mime_type(gfilter,"audio/x-wav");//not working
|
||||
|
||||
std::string filtername = LLTrans::getString("sound_files") + " (*.wav)";
|
||||
add_common_filters_to_gtkchooser(gfilter, picker, filtername);
|
||||
return filtername;
|
||||
return add_simple_mime_filter_to_gtkchooser(picker, "audio/x-wav",
|
||||
LLTrans::getString("sound_files") + " (*.wav)");
|
||||
}
|
||||
|
||||
static std::string add_bvh_filter_to_gtkchooser(GtkWindow *picker)
|
||||
@@ -1173,6 +1401,12 @@ static std::string add_bvh_filter_to_gtkchooser(GtkWindow *picker)
|
||||
LLTrans::getString("animation_files") + " (*.bvh)");
|
||||
}
|
||||
|
||||
static std::string add_xml_filter_to_gtkchooser(GtkWindow *picker)
|
||||
{
|
||||
return add_simple_mime_filter_to_gtkchooser(picker, "text/xml",
|
||||
LLTrans::getString("xml_file") + " (*.xml)");
|
||||
}
|
||||
|
||||
static std::string add_imageload_filter_to_gtkchooser(GtkWindow *picker)
|
||||
{
|
||||
GtkFileFilter *gfilter = gtk_file_filter_new();
|
||||
@@ -1300,6 +1534,9 @@ bool LLFilePickerBase::getLoadFile(ELoadFilter filter, std::string const& folder
|
||||
case FFLOAD_IMAGE:
|
||||
filtername = add_imageload_filter_to_gtkchooser(picker);
|
||||
break;
|
||||
case FFLOAD_XML:
|
||||
filtername = add_xml_filter_to_gtkchooser(picker);
|
||||
break;
|
||||
default:;
|
||||
break;
|
||||
}
|
||||
@@ -1376,6 +1613,7 @@ bool LLFilePickerBase::getLoadFile(ELoadFilter filter, std::string const& folder
|
||||
case FFLOAD_WAV: filename += ".wav"; break;
|
||||
case FFLOAD_IMAGE: filename += ".tga"; break;
|
||||
case FFLOAD_ANIM: filename += ".bvh"; break;
|
||||
case FFLOAD_XML: filename += ".xml"; break;
|
||||
default: break;
|
||||
}
|
||||
mFiles.push_back(filename);
|
||||
|
||||
@@ -88,7 +88,11 @@ public:
|
||||
FFLOAD_XML = 6,
|
||||
FFLOAD_SLOBJECT = 7,
|
||||
FFLOAD_RAW = 8,
|
||||
FFLOAD_TEXT = 9,
|
||||
// <edit>
|
||||
FFLOAD_INVGZ = 9,
|
||||
FFLOAD_AO = 10,
|
||||
FFLOAD_BLACKLIST = 11
|
||||
// </edit>
|
||||
};
|
||||
|
||||
enum ESaveFilter
|
||||
@@ -108,9 +112,32 @@ public:
|
||||
FFSAVE_J2C = 12,
|
||||
FFSAVE_PNG = 13,
|
||||
FFSAVE_JPEG = 14,
|
||||
FFSAVE_HPA = 15,
|
||||
FFSAVE_TEXT = 16,
|
||||
FFSAVE_LSL = 17
|
||||
// <edit>
|
||||
FFSAVE_ANIMATN = 15,
|
||||
FFSAVE_OGG = 16,
|
||||
FFSAVE_NOTECARD = 17,
|
||||
FFSAVE_GESTURE = 18,
|
||||
FFSAVE_LSL = 19,
|
||||
// good grief
|
||||
FFSAVE_SHAPE = 20,
|
||||
FFSAVE_SKIN = 21,
|
||||
FFSAVE_HAIR = 22,
|
||||
FFSAVE_EYES = 23,
|
||||
FFSAVE_SHIRT = 24,
|
||||
FFSAVE_PANTS = 25,
|
||||
FFSAVE_SHOES = 26,
|
||||
FFSAVE_SOCKS = 27,
|
||||
FFSAVE_JACKET = 28,
|
||||
FFSAVE_GLOVES = 29,
|
||||
FFSAVE_UNDERSHIRT = 30,
|
||||
FFSAVE_UNDERPANTS = 31,
|
||||
FFSAVE_SKIRT = 32,
|
||||
FFSAVE_INVGZ = 33,
|
||||
FFSAVE_LANDMARK = 34,
|
||||
FFSAVE_AO = 35,
|
||||
FFSAVE_BLACKLIST = 36,
|
||||
FFSAVE_PHYSICS = 37,
|
||||
// </edit>
|
||||
};
|
||||
|
||||
// open the dialog. This is a modal operation
|
||||
@@ -164,13 +191,9 @@ private:
|
||||
|
||||
#if LL_DARWIN
|
||||
NavDialogCreationOptions mNavOptions;
|
||||
std::vector<std::string> mFileVector;
|
||||
UInt32 mFileIndex;
|
||||
|
||||
OSStatus doNavChooseDialog(ELoadFilter filter);
|
||||
OSStatus doNavSaveDialog(ESaveFilter filter, const std::string& filename);
|
||||
void getFilePath(SInt32 index);
|
||||
void getFileName(SInt32 index);
|
||||
static Boolean navOpenFilterProc(AEDesc *theItem, void *info, void *callBackUD, NavFilterModes filterMode);
|
||||
#endif // LL_DARWIN
|
||||
|
||||
|
||||
Reference in New Issue
Block a user