mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-17 20:58:07 +02:00
79 lines
2.1 KiB
C++
79 lines
2.1 KiB
C++
/*
|
|
* helper.cpp, part of VCMI engine
|
|
*
|
|
* Authors: listed in file AUTHORS in main folder
|
|
*
|
|
* License: GNU General Public License v2.0 or later
|
|
* Full text of license available in license.txt file, in main folder
|
|
*
|
|
*/
|
|
#include "StdInc.h"
|
|
#include "helper.h"
|
|
|
|
#include "../lib/CConfigHandler.h"
|
|
|
|
#include <QObject>
|
|
#include <QScroller>
|
|
|
|
#ifdef VCMI_ANDROID
|
|
#include <QAndroidJniObject>
|
|
#include <QtAndroid>
|
|
#endif
|
|
|
|
#ifdef VCMI_MOBILE
|
|
static QScrollerProperties generateScrollerProperties()
|
|
{
|
|
QScrollerProperties result;
|
|
|
|
result.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor, 0.25);
|
|
result.setScrollMetric(QScrollerProperties::OvershootDragDistanceFactor, 0.25);
|
|
result.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QScrollerProperties::OvershootAlwaysOff);
|
|
|
|
return result;
|
|
}
|
|
#endif
|
|
|
|
namespace Helper
|
|
{
|
|
void loadSettings()
|
|
{
|
|
settings.init("config/settings.json", "vcmi:settings");
|
|
persistentStorage.init("config/persistentStorage.json", "");
|
|
}
|
|
|
|
void enableScrollBySwiping(QObject * scrollTarget)
|
|
{
|
|
#ifdef VCMI_MOBILE
|
|
QScroller::grabGesture(scrollTarget, QScroller::LeftMouseButtonGesture);
|
|
QScroller * scroller = QScroller::scroller(scrollTarget);
|
|
scroller->setScrollerProperties(generateScrollerProperties());
|
|
#endif
|
|
}
|
|
|
|
QString getRealPath(QString path)
|
|
{
|
|
#ifdef VCMI_ANDROID
|
|
if(path.contains("content://", Qt::CaseInsensitive))
|
|
{
|
|
auto str = QAndroidJniObject::fromString(path);
|
|
return QAndroidJniObject::callStaticObjectMethod("eu/vcmi/vcmi/util/FileUtil", "getFilenameFromUri", "(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;", str.object<jstring>(), QtAndroid::androidContext().object()).toString();
|
|
}
|
|
else
|
|
return path;
|
|
#else
|
|
return path;
|
|
#endif
|
|
}
|
|
|
|
void performNativeCopy(QString src, QString dst)
|
|
{
|
|
#ifdef VCMI_ANDROID
|
|
auto srcStr = QAndroidJniObject::fromString(src);
|
|
auto dstStr = QAndroidJniObject::fromString(dst);
|
|
QAndroidJniObject::callStaticObjectMethod("eu/vcmi/vcmi/util/FileUtil", "copyFileFromUri", "(Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)V", srcStr.object<jstring>(), dstStr.object<jstring>(), QtAndroid::androidContext().object());
|
|
#else
|
|
QFile::copy(src, dst);
|
|
#endif
|
|
}
|
|
}
|