- Page Code overview
- Review and update the code overview.
- Class MapTest
- Extent this test.
- Class Ocd::LineTextSymbolV8
- use and test...
- Member OcdEntityIndex< F, T >::insert (const QByteArray &entity_data, const EntryType &entry)
- Throw exception
- Page OpenOrienteering Mapper XML File Format Documentation
- Review and update.
- Class OpenOrienteering::ActionGridBar
Update button size on setting changes (not yet needed for mobile UI).
Use parameter order col,row / colspan,rowspan to match the common x,y / width,height pattern.
- Member OpenOrienteering::ApplyTemplateTransform::operator() (Object *object) const
- Move this if...else into a constructor that sets up a transform member.
- Member OpenOrienteering::AreaSymbol::FillPattern::angle
- Switch to qreal when legacy native file format is dropped.
- Class OpenOrienteering::BooleanTool
- This class should get unit tests.
- Member OpenOrienteering::ColorListWidget::duplicateColor ()
- Switch translation
- Member OpenOrienteering::connectPaths_FindClosestEnd (const std::vector< Object *> &objects, const PathObject *a, int a_index, PathPartVector::size_type path_part_a, bool path_part_a_begin, PathObject **out_b, int *out_b_index, int *out_path_part_b, bool *out_path_part_b_begin)
- Review use of container API
- Class OpenOrienteering::CRSSelector
- Consider making this a QWidget which has got a QCombobox - the public QComboBox API should better not be exposed. The combobox' signals could no longer be block from clients.
- Member OpenOrienteering::CutTool::renderables
- Rewrite renderables handling in MapEditorToolBase so that we can remove it here.
- Member OpenOrienteering::CutTool::replaceObject (Object *object, const std::vector< PathObject *> &replacement) const
- Consider moving this to a more general class (Map, MapPart).
- Class OpenOrienteering::DetermineFontSizeDialog
- Move translation items to TextSymbolSettings class.
- Class OpenOrienteering::DistributePointsTool
- Integrate implementation of MapEditorController::distributePointsClicked().
- Member OpenOrienteering::EditLineTool::clickPress () override
Provide a PathObject::convertToStraight(hover_line) ?
Provide a PathObject::convertToCurve(hover_line) ?
- Class OpenOrienteering::EditPointTool
- See tool_edit_line.cpp for a number of todos.
- Member OpenOrienteering::EditPointTool::addDashPointDefault () const
- Test/fix for combined symbols.
- Member OpenOrienteering::EditPointTool::clickPress () override
- Consider calling updateHoverState from an override of (virtual) mousePositionEvent
- Member OpenOrienteering::EditPointTool::updateHoverState (const MapCoordF &cursor_pos)
- De-duplicate: Copied from EditLineTool
- Member OpenOrienteering::EditTool::DeleteObjectKey
- Either use a function for testing whether a key means "delete object", or switch to a QAction based implementation since QAction supports alternative QKeySequences.
- Member OpenOrienteering::GdalManager::GdalManagerPrivate::supportedRasterExtensions () const
- Member OpenOrienteering::Georeferencing::toMapCoordF (const Georeferencing *other, const MapCoordF &map_coords, bool *ok=nullptr) const
- Use direct pipeline instead of intermediate WGS84
- Member OpenOrienteering::GeoreferencingDialog::requestDeclination (bool no_confirm=false)
- Move URL (template) to settings.
- Class OpenOrienteering::GPSDisplay
- Use qreal instead of float (in all sensor code) for consistency with Qt.
- Member OpenOrienteering::LineSymbol::saveImpl (QXmlStreamWriter &xml, const Map &map) const override
- Remove "pointed_cap_length" in Mapper 1.0
- Member OpenOrienteering::MainWindow::showNewMapWizard ()
- error message, cleanup
- Member OpenOrienteering::Map::importMap (const Map &imported_map, ImportMode mode, std::vector< bool > *filter=nullptr, int symbol_insert_pos=-1, bool merge_duplicate_symbols=true)
Test and review import of georeferenced and non-georeferenced maps, in all combinations.
Handle rotation of patterns and text, cf. Object::transform.
proper error message
- Member OpenOrienteering::MapCoord::fromNative64 (qint64 x, qint64 y)
- Raise (and handle exceptions) when out of bounds.
- Member OpenOrienteering::MapCoordF::perpRight () const
- Replace with normalVector(), similar to QLineF API.
- Member OpenOrienteering::MapEditorController::connectPathsClicked ()
Fix connectPathsClicked()
get rid of force if possible
- Member OpenOrienteering::MapEditorController::exportVector ()
- Error message?
- Member OpenOrienteering::MapEditorController::importClicked ()
- Reword message (not a map file here). Requires new translations
- Member OpenOrienteering::MapEditorController::importMap (Map &other, Map::ImportMode mode, QWidget *dialog_parent, std::vector< bool > *filter=nullptr, int symbol_insert_pos=-1, bool merge_duplicate_symbols=true)
- Move message to this context.
- Member OpenOrienteering::MapEditorController::importMapFile (const QString &filename, bool show_errors)
- error message
- Member OpenOrienteering::MapEditorController::MapEditorController (OperatingMode mode, Map *map=nullptr, MapView *map_view=nullptr)
Review/remove mode hack.
Document and fix ownership of map and map_view. Double deletes waiting...
- Member OpenOrienteering::MapEditorTool::getCursor () const =0
- How to change the cursor for all map widgets while a tool is active?
- Member OpenOrienteering::MapEditorTool::isDrawTool () const
- This shall be rewritten as virtual/reimplemented function.
- Member OpenOrienteering::MapEditorTool::switchToDefaultDrawTool (const Symbol *symbol) const
- Review for refactoring: no reimplementation found, maybe not in right class?
- Member OpenOrienteering::MapEditorToolBase::updatePreviewObjects ()
- get rid of force if possible;
- Member OpenOrienteering::MapPart::deleteObject (int pos, bool remove_only)
- Make a separate method "removeObject()", this is misleading!
- Member OpenOrienteering::MapPart::deleteObject (Object *object, bool remove_only)
- Make a separate method "removeObject()", this is misleading!
- Member OpenOrienteering::MapPrinter::paperSizeNames ()
- Remove MapPrinter::paperSizeNames() in Mapper 1.0.
- Member OpenOrienteering::NewMapDialog::NewMapDialog (QWidget *parent=nullptr)
- Fix form layout dependency
- Member OpenOrienteering::Object::load (QXmlStreamReader &xml, Map *map, const SymbolDictionary &symbol_dict, const Symbol *symbol=nullptr)
- Add a warning, but don't throw - throwing lets loading fail.
- Member OpenOrienteering::Object::save (QXmlStreamWriter &xml) const
- From Mapper 1.0, save just the single anchor coordinate.
- Member OpenOrienteering::Object::transform (const QTransform &t)=0
- Handle rotation of patterns or text (?)
- Member OpenOrienteering::ObjectTagsUndoStep::saveObject (XmlElementWriter &xml, int index) const override
- Write tags in deterministic order
- Member OpenOrienteering::OcdFileExport::default_version
- Add proper API
- Member OpenOrienteering::OcdFileExport::exportExtras ()
- Member OpenOrienteering::OcdFileExport::exportObjects (OcdFile< Format > &file)
- move pattern origin etc.
- Member OpenOrienteering::OcdFileExport::exportSetup (OcdFile< Ocd::FormatV8 > &file)
- addWarning(...)
- Member OpenOrienteering::OcdFileImport::convertOcdString (const QChar *src, uint maxlen) const
- Create and use static decoder
- Member OpenOrienteering::OcdFileImport::importRectangleSymbol (const S &ocd_symbol)
- review symbol number signedness vs.
- Member OpenOrienteering::OcdFileImport::setBasicAttributes (OcdImportedTextSymbol *symbol, const QString &font_name, const Ocd::BasicTextAttributesV8 &attributes)
- Implement justified alignment
- Member OpenOrienteering::OgrFileImport::getSymbol (Symbol::Type type, const char *raw_style_string)
- Member OpenOrienteering::OgrFileImport::importImplementation () override
- Use hooks and delegates per file format
- Member OpenOrienteering::OgrTemplate::makeOrthographicGeoreferencing (const QString &path)
- Use the template's datum etc. instead of WGS84?
- Member OpenOrienteering::PaintOnTemplateSelectDialog::PaintOnTemplateSelectDialog (Map *map, MapView *view, Template *selected, MainWindow *parent)
- Review source string (no ellipsis when no dialog)
- Member OpenOrienteering::PassPointList::not_null
- Use the Guideline Support Library
- Member OpenOrienteering::PathCoord::bezierError ()
- Make bezier error configurable
- Member OpenOrienteering::PathCoordVector::findNextDashPoint (PathCoordVector::size_type first) const
- Consider return a SplitPathCoord (cf. actual usage).
- Member OpenOrienteering::PathCoordVector::intersectsBox (const QRectF &box) const
- Implement this here, used nowhere else
- Member OpenOrienteering::PathObject::calcAllIntersectionsWith (const PathObject *other, Intersections &out) const
- FIXME: part_index or other_part_index ???
- Member OpenOrienteering::PathObject::calcClosestCoordinate (MapCoordF coord, float &out_distance_sq, MapCoordVector::size_type &out_index) const
Convert out_distance_sq to double (so avoiding conversions).
Return index rather than writing to the provided reference.
- Member OpenOrienteering::PathObject::calcClosestPointOnPath (MapCoordF coord, float &out_distance_sq, PathCoord &out_path_coord, MapCoordVector::size_type start_index=0, MapCoordVector::size_type end_index=std::numeric_limits< PathPartVector::size_type >::max()) const
Convert out_distance_sq to double (so avoiding conversions).
Return PathCoord rather than writing to the provided reference.
Legacy compatibility, review/remove
- Member OpenOrienteering::PathObject::connectIfClose (PathObject *other, double connect_threshold_sq)
- Review documentation, container usage,
- Member OpenOrienteering::PathObject::findPartIndexForIndex (MapCoordVector::size_type coords_index) const
- Review where this signature can be replace by the one returning an iterator.
- Class OpenOrienteering::PointSymbol::Element
- Expose elements more directly in PointSymbol API.
- Class OpenOrienteering::PointSymbolEditorActivity
- Fix that this cross may cover the symbol at small scales.
- Member OpenOrienteering::PrintWidget::exportToImage ()
- Handle errors
- Member OpenOrienteering::ProjTransform::isGeographic () const
- Evaluate proj_get_type() instead
- Member OpenOrienteering::rectIncludeSafe (QRect &rect, const QRect &other_rect)
- Check if QRegion could be used instead.
- Member OpenOrienteering::ReplaceSymbolSetDialog::showDialog (QWidget *parent, Map &object_map)
More precise message
More precise message
Show error from importer
- Member OpenOrienteering::ReplaceSymbolSetDialog::showDialogForCRT (QWidget *parent, Map &object_map, const Map &symbol_set, QIODevice &crt_file)
- Collect source symbols for all patterns, for source icon in dialog
- Member OpenOrienteering::SnappingToolHelper::getDisplayRadius () const
- Return a dynamic value, or adjust for screen density.
- Member OpenOrienteering::SnappingToolHelper::snapToObject (const MapCoordF &position, MapWidget *widget, SnappingToolHelperSnapInfo *info=nullptr, Object *exclude_object=nullptr)
Change to qreal when Path::calcClosestPointOnPath accepts that.
Change to qreal when Path::calcClosestPointOnPath accepts that.
Change to qreal when Path::calcClosestPointOnPath accepts that.
- Member OpenOrienteering::SplitPathCoord::at (length_type length, const SplitPathCoord &first)
- Handle closed paths.
- Member OpenOrienteering::SymbolRenderWidget::fillBorderClicked ()
- Merge with/Reuse corresponding action in MapEditorController.
- Member OpenOrienteering::SymbolRenderWidget::pasteSymbols ()
- Adjust message to this particular action, and remove Map context. See also MapEditor::importMap.
- Member OpenOrienteering::SymbolRenderWidget::switchSymbolClicked ()
- Merge with/Reuse corresponding action in MapEditorController.
- Member OpenOrienteering::SymbolSettingDialog::SymbolSettingDialog (const Symbol *source_symbol, Map *source_map, QWidget *parent)
- Switch the following line to Util::Headline::create
- Member OpenOrienteering::SymbolWidget::fillBorderClicked ()
- Merge with/Reuse corresponding action in MapEditorController.
- Member OpenOrienteering::SymbolWidget::switchSymbolClicked ()
- Merge with/Reuse corresponding action in MapEditorController.
- Member OpenOrienteering::Template::drawOntoTemplate (not_null< MapCoordF *> coords, int num_coords, QColor color, float width, QRectF map_bbox)
- Rewrite using a range of MapCoordF.
- Member OpenOrienteering::Template::duplicate () const
- Rewrite as virtual function, using protected copy constructor.
- Member OpenOrienteering::Template::duplicateImpl () const =0
- Rewrite together with duplicate().
- Member OpenOrienteering::Template::not_null
- Use the Guideline Support Library
- Member OpenOrienteering::TemplateImage::drawTemplate (QPainter *painter, const QRectF &clip_rect, double scale, bool on_screen, float opacity) const override
- Fix image opacity in AdvancedPdfEngine
- Class OpenOrienteering::TemplateImageOpenDialog
- Move this class to separate files.
- Member OpenOrienteering::TemplateListWidget::showOpenTemplateDialog (QWidget *dialog_parent, MapEditorController *controller)
- Review the default error message. Don't use question mark.
- Member OpenOrienteering::TemplateListWidget::updateButtons ()
- Make it possible to delete multiple templates at once
- Member OpenOrienteering::TemplateMap::calculateTransformation ()
- proper error message
- Member OpenOrienteering::TemplateMap::drawTemplate (QPainter *painter, const QRectF &clip_rect, double scale, bool on_screen, float opacity) const override
- Get the actual screen's resolution.
- Member OpenOrienteering::TemplateMap::loadTemplateFileImpl (bool configuring) override
Convert to RAII
prevent loading and/or let user decide
- Member OpenOrienteering::TemplateMap::postLoadConfiguration (QWidget *dialog_parent, bool &out_center_in_view) override
- recursive template loading dialog
- Member OpenOrienteering::TemplateTrack::postLoadConfiguration (QWidget *dialog_parent, bool &out_center_in_view) override
- Remove historical scope
- Member OpenOrienteering::TemplateTransform::TemplateTransform () noexcept=default
- Remove when we can use C++14 everywhere.
- Member OpenOrienteering::TemplateTransform::TemplateTransform (qint32 x, qint32 y, double rotation, double scale_x, double scale_y, double shear=0.0) noexcept
- Remove when we can use C++14 everywhere.
- Member OpenOrienteering::TextBrowserDialog::highlighted (const QString &link)
- : Position near mouse pointer
- Class OpenOrienteering::TextObjectAlignmentDockWidget
- Use QDockWidget (if necessary at all), don't inherit from it.
- Member OpenOrienteering::TextObjectEditorHelper::not_null
- Use the Guideline Support Library
- Member OpenOrienteering::UndoManager::max_undo_steps
- Make this configurable (maybe by used memory instead of step count)
- Member OpenOrienteering::VirtualPath::calculateIncomingTangent (size_type i, bool &ok) const
- Implement unsigned
- Member OpenOrienteering::VirtualPath::findClosestPointTo (MapCoordF coord, float &distance_squared, float distance_bound_squared, size_type start_index, size_type end_index) const
- verify
- Member OpenOrienteering::XmlElementReader::readForText (MapCoordVector &coords)
- Make box size explicit data.
- Member OpenOrienteering::XMLFileExporter::exportTemplates ()
- Update the relative paths in memory when saving to another directory. Otherwise opening templates in the reloaded saved map may behave different from the current map in memory.
- Class PathObjectTest
- Extent this test.