fixing #1690, possibly

This commit is contained in:
fgerlits 2006-05-25 16:51:37 +00:00
parent 30acb08ac1
commit 38a1ed0e61
2 changed files with 15 additions and 12 deletions

View file

@ -300,10 +300,11 @@ UploadFileWindow :: onChooseFileButtonClicked(void) throw ()
void void
UploadFileWindow :: updateFileInfo(void) throw () UploadFileWindow :: updateFileInfo(void) throw ()
{ {
std::string fileName = fileNameEntry->get_text().raw(); Ptr<Glib::ustring>::Ref fileName(new Glib::ustring(
fileNameEntry->get_text() ));
// see if the file exists, and is readable // see if the file exists, and is readable
std::ifstream file(fileName.c_str()); std::ifstream file(fileName->c_str());
if (!file.good()) { if (!file.good()) {
file.close(); file.close();
statusBar->set_text(*getResourceUstring("couldNotOpenFileMsg")); statusBar->set_text(*getResourceUstring("couldNotOpenFileMsg"));
@ -332,11 +333,11 @@ UploadFileWindow :: updateFileInfo(void) throw ()
* Read the playlength and metadata info from the binary audio file. * Read the playlength and metadata info from the binary audio file.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
void void
UploadFileWindow :: readAudioClipInfo(const std::string & fileName) UploadFileWindow :: readAudioClipInfo(Ptr<const Glib::ustring>::Ref fileName)
throw () throw ()
{ {
Ptr<std::string>::Ref newUri(new std::string("file://")); Ptr<std::string>::Ref newUri(new std::string("file://"));
newUri->append(fileName); newUri->append(*fileName);
Ptr<time_duration>::Ref playlength; Ptr<time_duration>::Ref playlength;
try { try {
@ -487,12 +488,12 @@ UploadFileWindow :: onCloseButtonClicked(void) throw ()
* Determine the length of an audio file * Determine the length of an audio file
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
Ptr<time_duration>::Ref Ptr<time_duration>::Ref
UploadFileWindow :: readPlaylength(const std::string & fileName) UploadFileWindow :: readPlaylength(Ptr<const Glib::ustring>::Ref fileName)
throw (std::invalid_argument) throw (std::invalid_argument)
{ {
// TODO: use the appropriate TagLib::X::File subclass constructors, // TODO: use the appropriate TagLib::X::File subclass constructors,
// once we find some way of determining the MIME type. // once we find some way of determining the MIME type.
TagLib::FileRef fileRef(fileName.c_str()); TagLib::FileRef fileRef(fileName->c_str());
if (fileRef.isNull()) { if (fileRef.isNull()) {
throw std::invalid_argument("unsupported file type"); throw std::invalid_argument("unsupported file type");
} }
@ -512,15 +513,15 @@ UploadFileWindow :: readPlaylength(const std::string & fileName)
* Determine the type of the given file. * Determine the type of the given file.
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
UploadFileWindow::FileType UploadFileWindow::FileType
UploadFileWindow :: determineFileType(const std::string & fileName) UploadFileWindow :: determineFileType(Ptr<const Glib::ustring>::Ref fileName)
throw () throw ()
{ {
unsigned int dotPosition = fileName.rfind('.'); unsigned int dotPosition = fileName->rfind('.');
if (dotPosition == std::string::npos) { if (dotPosition == std::string::npos) {
return invalidType; return invalidType;
} }
std::string extension = fileName.substr(dotPosition); std::string extension = fileName->substr(dotPosition);
if (extension == ".mp3" || extension == ".ogg") { if (extension == ".mp3" || extension == ".ogg") {
return audioClipType; return audioClipType;

View file

@ -207,7 +207,8 @@ class UploadFileWindow : public GuiWindow
* binary audio file. * binary audio file.
*/ */
void void
readAudioClipInfo(const std::string & fileName) throw (); readAudioClipInfo(Ptr<const Glib::ustring>::Ref fileName)
throw ();
/** /**
* Determine the length of an audio file on disk. * Determine the length of an audio file on disk.
@ -219,7 +220,7 @@ class UploadFileWindow : public GuiWindow
* format is not supported by TagLib * format is not supported by TagLib
*/ */
Ptr<time_duration>::Ref Ptr<time_duration>::Ref
readPlaylength(const std::string & fileName) readPlaylength(Ptr<const Glib::ustring>::Ref fileName)
throw (std::invalid_argument); throw (std::invalid_argument);
/** /**
@ -245,7 +246,8 @@ class UploadFileWindow : public GuiWindow
* @return the type of the file. * @return the type of the file.
*/ */
FileType FileType
determineFileType(const std::string & fileName) throw (); determineFileType(Ptr<const Glib::ustring>::Ref fileName)
throw ();
/** /**
* Clear all the input fields and set the fileType to 'invalidType'. * Clear all the input fields and set the fileType to 'invalidType'.