diff --git a/client/ui/pages_logic/AppSettingsLogic.cpp b/client/ui/pages_logic/AppSettingsLogic.cpp index 81e5c037..e86201e7 100644 --- a/client/ui/pages_logic/AppSettingsLogic.cpp +++ b/client/ui/pages_logic/AppSettingsLogic.cpp @@ -83,7 +83,7 @@ void AppSettingsLogic::onPushButtonBackupAppConfigClicked() void AppSettingsLogic::onPushButtonRestoreAppConfigClicked() { - QString fileName = Utils::getOpenFileName(Q_NULLPTR, tr("Open backup"), + QString fileName = UiLogic::getOpenFileName(Q_NULLPTR, tr("Open backup"), QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation), "*.backup"); if (fileName.isEmpty()) return; diff --git a/client/ui/pages_logic/StartPageLogic.cpp b/client/ui/pages_logic/StartPageLogic.cpp index 9fbb2efe..ca806897 100644 --- a/client/ui/pages_logic/StartPageLogic.cpp +++ b/client/ui/pages_logic/StartPageLogic.cpp @@ -167,7 +167,7 @@ void StartPageLogic::onPushButtonImport() void StartPageLogic::onPushButtonImportOpenFile() { - QString fileName = Utils::getOpenFileName(Q_NULLPTR, tr("Open config file"), + QString fileName = UiLogic::getOpenFileName(Q_NULLPTR, tr("Open config file"), QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation), "*.vpn *.ovpn *.conf"); if (fileName.isEmpty()) return; diff --git a/client/ui/uilogic.cpp b/client/ui/uilogic.cpp index a257152c..683213e5 100644 --- a/client/ui/uilogic.cpp +++ b/client/ui/uilogic.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -498,6 +497,24 @@ void UiLogic::shareTempFile(const QString &suggestedName, QString ext, const QSt MobileUtils::shareText(filesToSend); } +QString UiLogic::getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, + const QString &filter, QString *selectedFilter, QFileDialog::Options options) +{ + QString fileName = QFileDialog::getOpenFileName(parent, caption, dir, filter, selectedFilter, options); + +#ifdef Q_OS_ANDROID + // patch for files containing spaces etc + const QString sep {"raw%3A%2F"}; + if (fileName.startsWith("content://") && fileName.contains(sep)) { + QString contentUrl = fileName.split(sep).at(0); + QString rawUrl = fileName.split(sep).at(1); + rawUrl.replace(" ", "%20"); + fileName = contentUrl + sep + rawUrl; + } +#endif + return fileName; +} + void UiLogic::registerPagesLogic() { amnApp->qmlEngine()->rootContext()->setContextProperty("UiLogic", this); diff --git a/client/ui/uilogic.h b/client/ui/uilogic.h index b7e6f3ae..4daa42a7 100644 --- a/client/ui/uilogic.h +++ b/client/ui/uilogic.h @@ -1,12 +1,13 @@ #ifndef UILOGIC_H #define UILOGIC_H -#include -#include -#include +#include #include +#include #include +#include +#include #include #include #include @@ -120,7 +121,12 @@ public: Q_INVOKABLE amnezia::ErrorCode addAlreadyInstalledContainersGui(bool &isServerCreated); void shareTempFile(const QString &suggestedName, QString ext, const QString& data); - + static QString getOpenFileName(QWidget *parent = nullptr, + const QString &caption = QString(), + const QString &dir = QString(), + const QString &filter = QString(), + QString *selectedFilter = nullptr, + QFileDialog::Options options = QFileDialog::Options()); signals: void goToPage(PageEnumNS::Page page, bool reset = true, bool slide = true); void goToProtocolPage(Proto protocol, bool reset = true, bool slide = true); diff --git a/client/utilities.cpp b/client/utilities.cpp index c661636a..e5d2fd52 100644 --- a/client/utilities.cpp +++ b/client/utilities.cpp @@ -247,23 +247,6 @@ QString Utils::certUtilPath() #endif } -QString Utils::getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options) -{ - QString fileName = QFileDialog::getOpenFileName(parent, caption, dir, filter, selectedFilter, options); - -#ifdef Q_OS_ANDROID - // patch for files containing spaces etc - const QString sep {"raw%3A%2F"}; - if (fileName.startsWith("content://") && fileName.contains(sep)) { - QString contentUrl = fileName.split(sep).at(0); - QString rawUrl = fileName.split(sep).at(1); - rawUrl.replace(" ", "%20"); - fileName = contentUrl + sep + rawUrl; - } -#endif - return fileName; -} - #ifdef Q_OS_WIN // Inspired from http://stackoverflow.com/a/15281070/1529139 // and http://stackoverflow.com/q/40059902/1529139 diff --git a/client/utilities.h b/client/utilities.h index 6020e532..aeb06865 100644 --- a/client/utilities.h +++ b/client/utilities.h @@ -1,7 +1,6 @@ #ifndef UTILITIES_H #define UTILITIES_H -#include #include #include #include @@ -51,14 +50,6 @@ public: static QString wireguardExecPath(); static QString certUtilPath(); - static QString getOpenFileName(QWidget *parent = nullptr, - const QString &caption = QString(), - const QString &dir = QString(), - const QString &filter = QString(), - QString *selectedFilter = nullptr, - QFileDialog::Options options = QFileDialog::Options()); - - #ifdef Q_OS_WIN static bool signalCtrl(DWORD dwProcessId, DWORD dwCtrlEvent); #endif