[Qt] Simplify setTransitionOptions

This commit is contained in:
Thiago Marcos P. Santos
2016-12-23 01:33:47 -02:00
committed by Thiago Marcos P. Santos
parent 5437c7b5b3
commit b8564299e5
4 changed files with 8 additions and 34 deletions

View File

@@ -79,7 +79,7 @@ void MapWindow::changeStyle()
void MapWindow::keyPressEvent(QKeyEvent *ev)
{
static const QMapbox::TransitionOptions transition { 300, {} };
static const qint64 transitionDuration = 300;
switch (ev->key()) {
case Qt::Key_S:
@@ -201,7 +201,7 @@ void MapWindow::keyPressEvent(QKeyEvent *ev)
m_map->cycleDebugOptions();
break;
case Qt::Key_R: {
m_map->setTransitionOptions(transition);
m_map->setTransitionOptions(transitionDuration);
if (m_map->hasClass("night")) {
m_map->removeClass("night");
} else {

View File

@@ -74,11 +74,6 @@ struct Q_DECL_EXPORT CustomLayerRenderParameters {
double altitude;
};
struct Q_DECL_EXPORT TransitionOptions {
QVariant duration; // qint64
QVariant delay; // qint64
};
typedef void (*CustomLayerInitializeFunction)(void* context) ;
typedef void (*CustomLayerRenderFunction)(void* context, const CustomLayerRenderParameters&);
typedef void (*CustomLayerDeinitializeFunction)(void* context);

View File

@@ -147,8 +147,7 @@ public:
void setClasses(const QStringList &);
QStringList getClasses() const;
QMapbox::TransitionOptions getTransitionOptions() const;
void setTransitionOptions(const QMapbox::TransitionOptions&);
void setTransitionOptions(qint64 duration, qint64 delay = 0);
QMapbox::AnnotationID addPointAnnotation(const QMapbox::PointAnnotation &);
QMapbox::AnnotationID addShapeAnnotation(const QMapbox::ShapeAnnotation &);

View File

@@ -81,26 +81,6 @@ auto fromQMapboxGLShapeAnnotation(const ShapeAnnotation &shapeAnnotation) {
return mbgl::StyleSourcedAnnotation { std::move(mbglLineString), styleLayer.toStdString() };
}
auto fromQMapboxTransitionOptions(const QMapbox::TransitionOptions &options) {
auto convert = [](auto& value) -> mbgl::optional<mbgl::Duration> {
if (value.isValid()) {
return std::chrono::duration_cast<mbgl::Duration>(mbgl::Milliseconds(value.template value<qint64>()));
};
return {};
};
return mbgl::style::TransitionOptions { convert(options.duration), convert(options.delay) };
}
auto toQMapboxTransitionOptions(const mbgl::style::TransitionOptions &options) {
auto convert = [](auto& value) -> QVariant {
if (value) {
return qint64(std::chrono::duration_cast<mbgl::Milliseconds>(*value).count());
}
return {};
};
return QMapbox::TransitionOptions { convert(options.duration), convert(options.delay) };
}
auto fromQStringList(const QStringList &list)
{
std::vector<std::string> strings;
@@ -485,12 +465,12 @@ QStringList QMapboxGL::getClasses() const
return classNames;
}
QMapbox::TransitionOptions QMapboxGL::getTransitionOptions() const {
return toQMapboxTransitionOptions(d_ptr->mapObj->getTransitionOptions());
}
void QMapboxGL::setTransitionOptions(qint64 duration, qint64 delay) {
static auto convert = [](qint64 value) -> mbgl::optional<mbgl::Duration> {
return std::chrono::duration_cast<mbgl::Duration>(mbgl::Milliseconds(value));
};
void QMapboxGL::setTransitionOptions(const QMapbox::TransitionOptions &options) {
d_ptr->mapObj->setTransitionOptions(fromQMapboxTransitionOptions(options));
d_ptr->mapObj->setTransitionOptions(mbgl::style::TransitionOptions{ convert(duration), convert(delay) });
}
mbgl::Annotation fromPointAnnotation(const PointAnnotation &pointAnnotation) {