fixed bug #1390
This commit is contained in:
parent
9053f1dad3
commit
72355ecfd5
3 changed files with 22 additions and 11 deletions
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.16 $
|
Version : $Revision: 1.17 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/UploadFileWindow.cxx,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/UploadFileWindow.cxx,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -244,7 +244,11 @@ UploadFileWindow :: updateFileInfo(void) throw ()
|
||||||
try {
|
try {
|
||||||
playlength = readPlaylength(fileName);
|
playlength = readPlaylength(fileName);
|
||||||
} catch (std::invalid_argument &e) {
|
} catch (std::invalid_argument &e) {
|
||||||
statusBar->set_text(e.what());
|
statusBar->set_text(*getResourceUstring("unsupportedFileTypeMsg"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!playlength) {
|
||||||
|
statusBar->set_text(*getResourceUstring("couldNotReadLengthMsg"));
|
||||||
playlength.reset(new time_duration(0,0,0,0));
|
playlength.reset(new time_duration(0,0,0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,15 +373,17 @@ UploadFileWindow :: readPlaylength(const std::string & fileName)
|
||||||
throw (std::invalid_argument)
|
throw (std::invalid_argument)
|
||||||
{
|
{
|
||||||
TagLib::FileRef fileRef(fileName.c_str());
|
TagLib::FileRef fileRef(fileName.c_str());
|
||||||
|
if (fileRef.isNull()) {
|
||||||
|
throw std::invalid_argument("unsupported file type");
|
||||||
|
}
|
||||||
|
|
||||||
TagLib::AudioProperties * audioProperties = fileRef.audioProperties();
|
TagLib::AudioProperties * audioProperties = fileRef.audioProperties();
|
||||||
|
Ptr<time_duration>::Ref length;
|
||||||
if (audioProperties) {
|
if (audioProperties) {
|
||||||
Ptr<time_duration>::Ref length(new time_duration(
|
length.reset(new time_duration(
|
||||||
seconds( audioProperties->length() )
|
seconds( audioProperties->length() )
|
||||||
+ microseconds(audioProperties->length_microseconds()) ));
|
+ microseconds(audioProperties->length_microseconds()) ));
|
||||||
return length;
|
|
||||||
} else {
|
|
||||||
throw std::invalid_argument("could not read file length");
|
|
||||||
}
|
}
|
||||||
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
|
|
||||||
Author : $Author: fgerlits $
|
Author : $Author: fgerlits $
|
||||||
Version : $Revision: 1.6 $
|
Version : $Revision: 1.7 $
|
||||||
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/UploadFileWindow.h,v $
|
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/products/gLiveSupport/src/UploadFileWindow.h,v $
|
||||||
|
|
||||||
------------------------------------------------------------------------------*/
|
------------------------------------------------------------------------------*/
|
||||||
|
@ -87,7 +87,7 @@ using namespace LiveSupport::Widgets;
|
||||||
* </code></pre>
|
* </code></pre>
|
||||||
*
|
*
|
||||||
* @author $Author: fgerlits $
|
* @author $Author: fgerlits $
|
||||||
* @version $Revision: 1.6 $
|
* @version $Revision: 1.7 $
|
||||||
*/
|
*/
|
||||||
class UploadFileWindow : public WhiteWindow, public LocalizedObject
|
class UploadFileWindow : public WhiteWindow, public LocalizedObject
|
||||||
{
|
{
|
||||||
|
@ -273,9 +273,10 @@ class UploadFileWindow : public WhiteWindow, public LocalizedObject
|
||||||
* Determine the length of an audio file on disk.
|
* Determine the length of an audio file on disk.
|
||||||
*
|
*
|
||||||
* @param fileName a binary audio file (e.g., /tmp/some_clip.mp3)
|
* @param fileName a binary audio file (e.g., /tmp/some_clip.mp3)
|
||||||
* @return the length of the file
|
* @return the length of the file; a null pointer if the
|
||||||
|
* length could not be read (see bug #1426)
|
||||||
* @exception std::invalid_argument if the file is not found, or its
|
* @exception std::invalid_argument if the file is not found, or its
|
||||||
* length could not be determined
|
* format is not supported by TagLib
|
||||||
*/
|
*/
|
||||||
Ptr<time_duration>::Ref
|
Ptr<time_duration>::Ref
|
||||||
readPlaylength(const std::string & fileName)
|
readPlaylength(const std::string & fileName)
|
||||||
|
|
|
@ -115,6 +115,10 @@ root:table
|
||||||
{ "Choose a File" }
|
{ "Choose a File" }
|
||||||
clipUploadedMsg:string { "Uploaded clip ''{0}''." }
|
clipUploadedMsg:string { "Uploaded clip ''{0}''." }
|
||||||
couldNotOpenFileMsg:string { "The file could not be opened." }
|
couldNotOpenFileMsg:string { "The file could not be opened." }
|
||||||
|
couldNotReadLengthMsg:string
|
||||||
|
{ "Could not determine audio clip length." }
|
||||||
|
unsupportedFileTypeMsg:string
|
||||||
|
{ "Unsupported file type." }
|
||||||
missingTitleMsg:string { "Please enter a title." }
|
missingTitleMsg:string { "Please enter a title." }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue