Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions src/core/platforms/android/androidplatformutilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -519,22 +519,20 @@ ResourceSource *AndroidPlatformUtilities::getGalleryVideo( const QString &prefix
return processGalleryActivity( prefix, videoFilePath, QStringLiteral( "video/*" ), parent );
}

ResourceSource *AndroidPlatformUtilities::getFile( const QString &prefix, const QString &filePath, FileType fileType, QObject *parent )
ResourceSource *AndroidPlatformUtilities::getFile( const QString &prefix, const QString &filePath, const QString &filter, QObject *parent )
{
const QFileInfo destinationInfo( prefix + filePath );
const QDir prefixDir( prefix );
prefixDir.mkpath( destinationInfo.absolutePath() );

QString mimeType;
switch ( fileType )
if ( filter.contains( QStringLiteral( "*.mp3" ) ) )
{
case AudioFiles:
mimeType = "audio/*";
break;
case AllFiles:
default:
mimeType = "*/*";
break;
mimeType = "audio/*";
}
else
{
mimeType = "*/*";
}

AndroidResourceSource *resourceSource = nullptr;
Expand All @@ -550,7 +548,6 @@ ResourceSource *AndroidPlatformUtilities::getFile( const QString &prefix, const
QJniObject filePathJni = QJniObject::fromString( filePath );
QJniObject mimeTypeJni = QJniObject::fromString( mimeType );

QSettings().setValue( QStringLiteral( "QField/nativeCameraLaunched" ), true );
activity.callMethod<void>( "getFilePickerResource", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
prefixJni.object<jstring>(),
filePathJni.object<jstring>(),
Expand Down
2 changes: 1 addition & 1 deletion src/core/platforms/android/androidplatformutilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class AndroidPlatformUtilities : public PlatformUtilities
ResourceSource *getCameraVideo( const QString &prefix, const QString &videoFilePath, const QString &suffix, QObject *parent = nullptr ) override;
ResourceSource *getGalleryPicture( const QString &prefix, const QString &pictureFilePath, QObject *parent = nullptr ) override;
ResourceSource *getGalleryVideo( const QString &prefix, const QString &videoFilePath, QObject *parent = nullptr ) override;
ResourceSource *getFile( const QString &prefix, const QString &filePath, FileType fileType, QObject *parent = nullptr ) override;
ResourceSource *getFile( const QString &prefix, const QString &filePath, const QString &filter, QObject *parent = nullptr ) override;

ViewStatus *open( const QString &filePath, bool isEditing, QObject *parent = nullptr ) override;

Expand Down
15 changes: 1 addition & 14 deletions src/core/platforms/platformutilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -388,21 +388,8 @@ ResourceSource *PlatformUtilities::getGalleryVideo( const QString &prefix, const
return createResource( prefix, videoFilePath, fileName, parent );
}

ResourceSource *PlatformUtilities::getFile( const QString &prefix, const QString &filePath, FileType fileType, QObject *parent )
ResourceSource *PlatformUtilities::getFile( const QString &prefix, const QString &filePath, const QString &filter, QObject *parent )
{
QString filter;
switch ( fileType )
{
case AudioFiles:
filter = tr( "Audio files (*.mp3 *.aac *.ogg *.m4a *.mp4 *.mov)" );
break;

case AllFiles:
default:
filter = tr( "All files (*.*)" );
break;
}

QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Select File" ), prefix, filter );
return createResource( prefix, filePath, fileName, parent );
}
Expand Down
10 changes: 2 additions & 8 deletions src/core/platforms/platformutilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,6 @@ class QFIELD_CORE_EXPORT PlatformUtilities : public QObject
Q_DECLARE_FLAGS( Capabilities, Capability )
Q_FLAGS( Capabilities )

enum FileType
{
AllFiles = 0, //!< All file types
AudioFiles, //!< Audio file types
};
Q_ENUM( FileType )

virtual ~PlatformUtilities();

/**
Expand Down Expand Up @@ -213,9 +206,10 @@ class QFIELD_CORE_EXPORT PlatformUtilities : public QObject
* Get a file from the operating system and copy it to the requested prefix
* @param prefix The project folder
* @param filePath The path (including subfolders and name) of the file
* @param filter The filter string (e.g. *.mp3)
* @return The name of the file or null
*/
Q_INVOKABLE virtual ResourceSource *getFile( const QString &prefix, const QString &filePath, FileType fileType = AllFiles, QObject *parent = nullptr );
Q_INVOKABLE virtual ResourceSource *getFile( const QString &prefix, const QString &filePath, const QString &filter = tr( "All files (*.*)" ), QObject *parent = nullptr );

/**
* Open the resource (file, image, ...) that is available under \a uri.
Expand Down
4 changes: 2 additions & 2 deletions src/qml/editorwidgets/ExternalResource.qml
Original file line number Diff line number Diff line change
Expand Up @@ -730,9 +730,9 @@ EditorWidgetBase {
platformUtilities.requestStoragePermission();
var filepath = getResourceFilePath();
if (documentViewer == document_AUDIO) {
__resourceSource = platformUtilities.getFile(qgisProject.homePath + '/', filepath, PlatformUtilities.AudioFiles, this);
__resourceSource = platformUtilities.getFile(qgisProject.homePath + '/', filepath, qsTr("Audio files") + " (*.mp3 *.aac *.ogg *.m4a *.mp4 *.mov)", this);
} else {
__resourceSource = platformUtilities.getFile(qgisProject.homePath + '/', filepath, this);
__resourceSource = platformUtilities.getFile(qgisProject.homePath + '/', filepath, qsTr("All files") + " (*.*)", this);
}
}

Expand Down
Loading