[qt] Separate transition options accessors from class API

This commit is contained in:
Bruno de Oliveira Abinader
2016-09-12 12:03:44 +01:00
parent cbd4115477
commit fdd114d275
3 changed files with 26 additions and 22 deletions

View File

@@ -105,13 +105,14 @@ void MapWindow::keyPressEvent(QKeyEvent *ev)
case Qt::Key_Tab:
m_map.cycleDebugOptions();
break;
case Qt::Key_R:
case Qt::Key_R: {
m_map.setTransitionOptions(transition);
if (m_map.hasClass("night")) {
m_map.removeClass("night", transition);
m_map.removeClass("night");
} else {
m_map.addClass("night", transition);
m_map.addClass("night");
}
break;
} break;
default:
break;
}

View File

@@ -159,14 +159,14 @@ public:
void setGestureInProgress(bool inProgress);
void addClass(const QString &);
void addClass(const QString &, const QMapbox::TransitionOptions &);
void removeClass(const QString &);
void removeClass(const QString &, const QMapbox::TransitionOptions &);
bool hasClass(const QString &) const;
void setClasses(const QStringList &);
void setClasses(const QStringList &, const QMapbox::TransitionOptions &);
QStringList getClasses() const;
QMapbox::TransitionOptions getTransitionOptions() const;
void setTransitionOptions(const QMapbox::TransitionOptions&);
QMapbox::AnnotationID addPointAnnotation(const QMapbox::PointAnnotation &);
QMapbox::AnnotationID addShapeAnnotation(const QMapbox::ShapeAnnotation &);

View File

@@ -107,6 +107,16 @@ auto fromQMapboxTransitionOptions(const QMapbox::TransitionOptions &options) {
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(list.size());
@@ -462,21 +472,11 @@ void QMapboxGL::addClass(const QString &className)
d_ptr->mapObj->addClass(className.toStdString());
}
void QMapboxGL::addClass(const QString &className, const QMapbox::TransitionOptions &options)
{
d_ptr->mapObj->addClass(className.toStdString(), fromQMapboxTransitionOptions(options));
}
void QMapboxGL::removeClass(const QString &className)
{
d_ptr->mapObj->removeClass(className.toStdString());
}
void QMapboxGL::removeClass(const QString &className, const QMapbox::TransitionOptions &options)
{
d_ptr->mapObj->removeClass(className.toStdString(), fromQMapboxTransitionOptions(options));
}
bool QMapboxGL::hasClass(const QString &className) const
{
return d_ptr->mapObj->hasClass(className.toStdString());
@@ -487,11 +487,6 @@ void QMapboxGL::setClasses(const QStringList &classNames)
d_ptr->mapObj->setClasses(fromQStringList(classNames));
}
void QMapboxGL::setClasses(const QStringList &classNames, const QMapbox::TransitionOptions &options)
{
d_ptr->mapObj->setClasses(fromQStringList(classNames), fromQMapboxTransitionOptions(options));
}
QStringList QMapboxGL::getClasses() const
{
QStringList classNames;
@@ -501,6 +496,14 @@ QStringList QMapboxGL::getClasses() const
return classNames;
}
QMapbox::TransitionOptions QMapboxGL::getTransitionOptions() const {
return toQMapboxTransitionOptions(d_ptr->mapObj->getTransitionOptions());
}
void QMapboxGL::setTransitionOptions(const QMapbox::TransitionOptions &options) {
d_ptr->mapObj->setTransitionOptions(fromQMapboxTransitionOptions(options));
}
mbgl::Annotation fromPointAnnotation(const PointAnnotation &pointAnnotation) {
const Coordinate &coordinate = pointAnnotation.first;
const QString &icon = pointAnnotation.second;