bool TextStyleBuilder::addFeatureCommon(const Feature& _feat, const DrawRule& _rule, bool _iconText) { TextStyle::Parameters params = applyRule(_rule, _feat.props, _iconText); Label::Type labelType; if (_feat.geometryType == GeometryType::lines) { labelType = Label::Type::line; params.wordWrap = false; } else { labelType = Label::Type::point; } // Keep start position of new quads size_t quadsStart = m_quads.size(); size_t numLabels = m_labels.size(); if (!prepareLabel(params, labelType)) { return false; } if (_feat.geometryType == GeometryType::points) { for (auto& point : _feat.points) { auto p = glm::vec2(point); addLabel(params, Label::Type::point, { p, p }); } } else if (_feat.geometryType == GeometryType::polygons) { for (auto& polygon : _feat.polygons) { if (_iconText) { auto p = centroid(polygon); addLabel(params, Label::Type::point, { p, p }); } else { for (auto& line : polygon) { for (auto& point : line) { auto p = glm::vec2(point); addLabel(params, Label::Type::point, { p }); } } } } } else if (_feat.geometryType == GeometryType::lines) { if (_iconText) { for (auto& line : _feat.lines) { for (auto& point : line) { auto p = glm::vec2(point); addLabel(params, Label::Type::point, { p }); } } } else { addLineTextLabels(_feat, params); } } if (numLabels == m_labels.size()) { // Drop quads when no label was added m_quads.resize(quadsStart); } return true; }
void VBoxAboutDlg::prepareMainLayout() { /* Create main-layout: */ m_pMainLayout = new QVBoxLayout(this); AssertPtrReturnVoid(m_pMainLayout); { /* Prepare label: */ prepareLabel(); /* Prepare close-button: */ prepareCloseButton(); } }