mirror of
https://github.com/QuasarApp/SoundBand.git
synced 2025-05-10 14:09:34 +00:00
added source into FileDialog
This commit is contained in:
parent
7c28f7d0e2
commit
1ba5f1ed2d
@ -1,6 +1,6 @@
|
||||
#ifdef Q_OS_ANDROID
|
||||
|
||||
#include "androidfiledialog.h"
|
||||
#ifdef Q_OS_ANDROID
|
||||
|
||||
AndroidFileDialog::ResultReceiver::ResultReceiver(AndroidFileDialog *dialog) : _dialog(dialog) {}
|
||||
AndroidFileDialog::ResultReceiver::~ResultReceiver() {}
|
||||
|
@ -1,9 +1,8 @@
|
||||
#ifndef FILEDIALOG_H
|
||||
#define FILEDIALOG_H
|
||||
#include <QObject>
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
|
||||
#include <QObject>
|
||||
#include <QAndroidJniObject>
|
||||
#include <QtAndroid>
|
||||
#include <QAndroidActivityResultReceiver>
|
||||
@ -35,6 +34,6 @@ signals:
|
||||
void existingFileNameReady(QString result);
|
||||
};
|
||||
|
||||
#endif // ANDROIDFILEDIALOG_H
|
||||
|
||||
#endif // Q_OS_ANDROID
|
||||
|
||||
#endif // ANDROIDFILEDIALOG_H
|
||||
|
@ -1,10 +1,76 @@
|
||||
#include "filedialog.h"
|
||||
#include <QEventLoop>
|
||||
#include <QTimer>
|
||||
|
||||
FileDialog::FileDialog(QObject *ptr):
|
||||
QObject(ptr)
|
||||
{
|
||||
#ifdef Q_OS_ANDROID
|
||||
dialog = new AndroidFileDialog(this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void FileDialog::done(QString s){
|
||||
_fileUrl = s;
|
||||
if(!_fileUrl.isEmpty())
|
||||
emit fileUrlDone();
|
||||
}
|
||||
|
||||
void FileDialog::open(){
|
||||
#ifdef Q_OS_ANDROID
|
||||
connect(dialog,SIGNAL(existingFileNameReady(QString)),SLOT(done(QString)));
|
||||
bool success = dialog->provideExistingFileName();
|
||||
if (!success) {
|
||||
qDebug() << "Problem with JNI or sth like that...";
|
||||
disconnect(dialog, SIGNAL(existingFileNameReady(QString)), this, SLOT(done(QString)));
|
||||
//or just delete fileDialog instead of disconnect
|
||||
}
|
||||
|
||||
#else
|
||||
QFileDialog *dialog = new QFileDialog(this, );
|
||||
_filesUrls = QFileDialog::getOpenFileNames(nullptr, _title, _dir, _filter);
|
||||
if(!_filesUrls.isEmpty())
|
||||
emit filesUrlsDone();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
QString FileDialog::save(const QString &name){
|
||||
return QDir::homePath() + "/SoundBandSongs/" +name;
|
||||
}
|
||||
|
||||
QString FileDialog::title() const{
|
||||
return _title;
|
||||
}
|
||||
|
||||
QString FileDialog::dir() const{
|
||||
return _dir;
|
||||
}
|
||||
|
||||
QString FileDialog::filter() const{
|
||||
return _filter;
|
||||
}
|
||||
|
||||
QStringList FileDialog::filesUrls() const{
|
||||
return _filesUrls;
|
||||
}
|
||||
|
||||
QString FileDialog::fileUrl() const{
|
||||
return _fileUrl;
|
||||
}
|
||||
|
||||
void FileDialog::setTitle(const QString &title){
|
||||
_title = title;
|
||||
}
|
||||
|
||||
void FileDialog::setDir(const QString &dir){
|
||||
_dir = dir;
|
||||
}
|
||||
|
||||
void FileDialog::setFilter(const QString &filter){
|
||||
_filter = filter;
|
||||
}
|
||||
|
||||
FileDialog::~FileDialog(){
|
||||
|
||||
}
|
||||
|
@ -1,27 +1,35 @@
|
||||
#ifndef FILEDIALOG_H
|
||||
#define FILEDIALOG_H
|
||||
#include <QFileDialog>
|
||||
#include "androidfiledialog.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
|
||||
/**
|
||||
* @brief The FileDialog class general crossplatform dialog window
|
||||
*/
|
||||
class FileDialog: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QStringList filesUrl READ filesUrl NOTIFY loadComlete)
|
||||
Q_PROPERTY(QString saveUrl READ saveUrl NOTIFY saveComplete)
|
||||
Q_PROPERTY(QString title READ title WRITE setTitle)
|
||||
Q_PROPERTY(QString dir READ dir WRITE setDir)
|
||||
Q_PROPERTY(QStringList filter READ filter WRITE setfilter)
|
||||
Q_PROPERTY(QString filter READ filter WRITE setFilter)
|
||||
Q_PROPERTY(QStringList filesUrls READ filesUrls NOTIFY filesUrlsDone)
|
||||
Q_PROPERTY(QString fileUrl READ fileUrl NOTIFY fileUrlDone)
|
||||
|
||||
|
||||
private:
|
||||
|
||||
#ifdef Q_OS_ANDROID
|
||||
AndroidFileDialog *dialog;
|
||||
#else
|
||||
QFileDialog *dialog;
|
||||
#endif
|
||||
QString _fileUrl;
|
||||
QString _title;
|
||||
QString _dir;
|
||||
QString _filter;
|
||||
QStringList _filesUrls;
|
||||
|
||||
private slots:
|
||||
void done(QString);
|
||||
|
||||
public:
|
||||
FileDialog(QObject *ptr = nullptr);
|
||||
@ -35,39 +43,40 @@ public slots:
|
||||
void open();
|
||||
|
||||
/**
|
||||
* @brief save get save file url
|
||||
* @brief save - get default save file url
|
||||
* return file url
|
||||
*/
|
||||
void save();
|
||||
|
||||
/**
|
||||
* @brief filesUrl
|
||||
* @return
|
||||
*/
|
||||
QStringList filesUrl();
|
||||
|
||||
/**
|
||||
* @brief saveUrl
|
||||
* @return
|
||||
*/
|
||||
QString saveUrl();
|
||||
QString save(const QString &name);
|
||||
|
||||
/**
|
||||
* @brief title
|
||||
* @return
|
||||
*/
|
||||
QString title();
|
||||
QString title() const;
|
||||
|
||||
/**
|
||||
* @brief dir
|
||||
* @return
|
||||
*/
|
||||
QString dir();
|
||||
QString dir() const;
|
||||
|
||||
/**
|
||||
* @brief filter
|
||||
* @return
|
||||
*/
|
||||
QStringList filter();
|
||||
QString filter() const;
|
||||
|
||||
/**
|
||||
* @brief filesUrls
|
||||
* @return list of files urls
|
||||
*/
|
||||
QStringList filesUrls()const;
|
||||
|
||||
/**
|
||||
* @brief fileUrl
|
||||
* @return file url
|
||||
*/
|
||||
QString fileUrl()const;
|
||||
|
||||
/**
|
||||
* @brief setTitle
|
||||
@ -82,19 +91,22 @@ public slots:
|
||||
/**
|
||||
* @brief setfilter
|
||||
*/
|
||||
void setfilter(const QStringList&);
|
||||
void setFilter(const QString &);
|
||||
|
||||
signals:
|
||||
|
||||
/**
|
||||
* @brief loadComlete emited then load is complete
|
||||
* @brief filesUrlsDone
|
||||
* Emited when files selected
|
||||
*/
|
||||
void loadComlete();
|
||||
void filesUrlsDone();
|
||||
|
||||
/**
|
||||
* @brief saveComplete emited then load is complete
|
||||
* @brief filesUrlDone
|
||||
* Emited when files selected
|
||||
*/
|
||||
void saveComplete();
|
||||
void fileUrlDone();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user