Menu

Open_Issues

tinco

Open Issues

This is a somewhat jumbled list of open issues: problems, missing features, bugs in code, wish-lists, loose remarks, etc.
We keep this fast-changing list here rather that open a separate tracker ticket for each item, as long as the project is still changing so much, and is essentially a one-person effort.

The original version of this is the qtamaze/amaze/TODO file. This wiki page should eventually make that file obsolete.

General

  • Improve the splash.jpg picture.
  • Use/redesign curly-A logo?
  • At this point, maybe we should consider generating the WXS, it is getting large and repetitive. Also, two strings need to be localized, using "!(loc.XXX)" format.
  • SourceForge now recommends adding a README with release notes in the file download folder. Maybe copy debian/changelog there?

  • Add "regenerate" button, alternative to Ctrl+N.

  • Maybe add "actual value" labels after wall/path sliders, set by paintMaze.
  • Let user tweak the maze?
  • Let user save/load a maze.
  • Allow more preference setting from CLI: export image type, etc.
  • Allow running without GUI, just generate and export.
  • I don't like how colors are saved in the settings file; change to use explicit RGBA numbers?
  • Add option on Windows to use INI file instead for registry for saving settings between runs?
  • Suggestion: when zone gate too close to exit, close off and merge elsewhere or connect to path upstream. (Ticket 3223100 http://sourceforge.net/tracker/?func=detail&aid=3223100&group id=305473&atid=1287261)
  • Add way to extend enter/leave point away from border; would be of use when embedding maze in larger graphics context.

Eye candy

  • Add a background image.
  • Add sound effects.
  • Let user select margin color for export (default to alpha).
  • Should give visual feedback on selected tile during right-click menu.

Export

  • Let user call CellGrid::uniBox() as kind of export.
  • Fix PNG tags table in export dialog. (Ticket 3207458 http://sourceforge.net/tracker/?func=detail&aid=3207458&group id=305473&atid=1287258)
  • For the "gamma" option I don't provide a slider yet, because though there is a floating-point spinbox, QSlider is integer only. Need to figure out how to best map this.
  • Output maze to ODT.
  • We could export as animated GIF, with a subpath of the solution winding its way through the maze. Do "gifsicle" call/port for that?
  • The X3D/VRML export has the same shortcomings as the Blender one.
  • Should we have a way to switch off the "confirm overwrite" dialog used in export?
  • When user selects existing file name for export, we now suppress appending the default suffix, even if the name did not appear in the filtered list, so if a user literally types "x" and a file "x" does exist, we will overwrite (after confirm), whereas if "x" does not exist we extend to (and check for overwrite) e.g. "x.png". Is that the best way to handle it?
  • In export, if the user manually types in a name with the "wrong" suffix, we do not warn; should we?
  • Add export to Povray?
  • Export to Blender, Maya, VRML loses enter/leave markers.
  • Maybe add auto-increment button to exportTo{Blender,Maya,X3D}() too.
  • For SVG, we could add a direct, optimized export, bypassing the Qt writer, producing a minimal point set. Instead of separately drawing each wall per cell, we could combine consecutive edges into a single line. See src/output.cpp: ''svg()''.

Blender

  • The "export to Blender" implementation needs more testing.
  • We could add a material and texture to the default wall/pole meshes.
  • The mazecode string should be split to avoid really long lines.
  • The solution path is not reflected in the mazecode or Blender script.
  • Export to Blender should have option to run script through Blender to make ".blend" file directly.
  • Export to Blender should get rid of "Cube" default cube.
  • Blender export is mirror-image, due to Y-direction. Bug or feature?

MEL

  • Export to MEL loses the colors.
  • Export to MEL has no floors, path, or markers.
  • We could use Python in scripts; MEL is a bit old-school.

Mazegrams

  • TileScale::update() should return false if font unreadably small; how to check?
  • How can update() specifically report "font too small" to user?
  • Maybe report "font does not support alphabet"?
  • On CryptoDialog use std Cancel button.
  • Maybe message letters should be drawn on top of path, a separate layer, because the path line can make the letters hard to read.
  • Should parameterize loop reduction code so it does not remove so much that the path is too short to bear the message text.

Documentation

  • Figure out "tutorial mode" support to show features in amaze, or way to make annotated tutorial video.
  • Need to update man-page and "-h" text with all the new options.
  • Add developer page on SF. See qtamaze/tinco.
  • The table of jargon with localized equivalents in dev.odt is very incomplete.
  • Should replace the ancient (1.1-6) screenshots on SF.net.
  • Need to update all references to Edit>Show to View>Show, see doc/*.htx.

Coding

  • Clean up the maze model: abstract from "Canvas" class.
  • Move printing job to separate thread, with progress bar.
  • Should run with ''gcc -pc'' and profile amaze, to see if there are any bottlenecks.
  • Export and clipboard-copy image should be trimmed to actual size, not canvas total area.
  • Add ''Canvas::rescale()'' to invalidate ''TileScale'', signal it.
  • split ''inCell()'' per-shape
  • Could use URL for mask instead of just filename. Not sure if URLs can handle Qt resource references.
  • Maybe the dialogs for D&D should all move to amaze.cpp.
  • Unsure what to do with "Name tag" value in ''ExportDialog::apply()''.
  • Would like to add EXIF tags in ExportDialog for JPEG, but ''QImageWriter'' only has ''setText()'' for PNG.
  • In ''Amaze::checkMenu()'', deal with non-Ascii alphabetics.
  • In ''Amaze::checkMenu()'', should do similar check for accels in widget.
  • Would like to have tag table in export dialog go all the way right, but can't do. ''QFileDialog.layout()'' returns a ''QVBoxLayout'' that is apparently constrained to the leftmost column of a grid that has the filename areas, filetype drop-box etc. in a 2nd column that gets all extra space.
  • Note: We do not want to try to export to EMF (Windows GDI format).
  • According to http://www.w3.org/TR/SVG11/paths.html#PathDataMovetoCommands, section 8.3.2, the initial coordinate pair after "m" should be interpreted as absolute, but Ubuntu's default viewer sees it as relative. So, best not to depend on that.
  • How to draw the moat? Maybe restroke wall, before drawing background, so background will cover the "inside" part of the lines.
  • Change ''TileScale.update()'' to handle moat in scaling calculations.
  • Should rewrite ''cell_t'' struct as a class, split off wipe/hide/cref etc.
  • The commented-out "cout"/"printf" code is distracting and hard to reenable during development. Should put this stuff inside a macro.
  • Add flag to walls to pre-mark as uncrossable, so we could remove more if-triangle-lowhex code from the general maze-build code. Uncrossable is not the same as border: borders may be crossable for enter/leave links.
  • Not sure if *.qm files really need CVS checkin, could do ''lrelease''(1) call from the Makefile, or the ''debbuild.sh'' and ''xpuild.bat'' scripts.

Glitches

  • Printing tall maze in hexagon cell mode does not work properly yet, falls off page.
  • In PostScript print, the line caps stick out a bit.
  • Triangles mode sucks for ''stay''>1, because diagonal is not considered straight at the cell grid level.
  • The "Install" part of the Update dialog does not detect an aborted installation, always reports as success.
  • The MSI installer does not automatically uninstall an older installed version, user has to go through ''ControlPanel>AddOrRemove''.
  • For hexagon tiles, the animated path takes two steps to do one vertical tile (because == two cells). That is visually inconsistent.
  • The ''crossCut()'' code does not handle non-square tiles very well. It should ignore bends to/from triangle waists, should maybe count octagon slanted walls same from horizontal as from vertical point, etc.
  • Note on Qt error: drawing path big, we see leading rounded part of dash is sometimes left off, when close to a corner in the path.
  • When path exits at angle, draw proper marker overlap.
  • Changing enter/leave needlessly triggers floor repaint and grid redraw.
  • The Gtrl+G action is confusing, it should really be tri-state. The current "run timer but don't show path" combo state is useless. It was a temporary hack and should be gotten rid of.
  • Leave point in 1-square hole in mask has random direction.

Installation

  • Do Mac OS/X port?
  • Find copy of EUPL v1.1 to copy into sources. Also add link to it.
  • Option to auto-check for updates on start-up?

Linux

Currently we only develop and test on Ubuntu, but any Debian-based distro should work (I think).

  • Provide SVG version of icon, for KDE/Gnome desktop file.
  • Add an RPM package?

Ubuntu

  • Maybe add ''texinfo'' doc?

Windows

The original Windows installer is an MSI-compliant one generated by the WiX http://wix.sourceforge.net/ tool-chain.
Compilation and testing is done on WinXP Pro (64-bit), using the MinGW compiler shipped with the Qt SDK.
Due to some issues with the WiX tools, we may switch to executable installers generated by NSIS http://nsis.sourceforge.net/.

  • Reconvert amaze.ico to use scaled 48x48, 64x64 icons.
  • The ''wix/eula_*.rtf'' files need fixes for Unicode chars, lang-numbers, and proofreading. Also still need [es] and [zh_CN] versions.
  • Check out other alternatives for installers: ''InnoSetup'' and ''InstallJammer''.

WiX/MSI

  • In Windows installer, add "uninstall" to menu items?
  • On Windows, start install dir choice in standard location.

NSIS

Up to release 1.1-21, the only installer has been the WiX/MSI installer. We are now experimenting with an NSIS installer, see "qtamaze/amaze/amaze.nsi".
Release 1.1-22 includes a beta for this: ''amaze-1.1-22-setup.exe''.

  • Check out NSIS editor: http://hmne.sf.net. I'm using ''vim'' now.
  • When clicking "Cancel", the confirmation dialog Yes/No buttons are not localized. Internal NSIS bug? Missing switch on our side?
  • NSIS command ''MinimalTargetOS'' does not work yet... The current NSIS (2.46) does not handle Unicode yet. When is NSIS 2.47 coming out? There is a separate, non-official Unicode port on another site, but I don't want to rely on non-official versions or unstable builds.
  • Get colors & images to theme NSIS installer. The ''images/side.bmp'' is a crudely cropped version of the ''images/dialog.bmp'' file for WiX.
  • According to the NSIS documentation it should be possible to cross-compile and then build the Windows installer from Ubuntu, so we could build both OS targets without changing environment. Need to figure out if that works. See link at http://silmor.de/29. No time or energy yet to make a modified version of ''/usr/share/qt4/mkspecs/win32-g++/*'' with redirection to ''CC=/usr/bin/i586-mingw32msvc-gcc'' etc.; in the meantime just boot into WinXP and compile there.
  • Maybe register at WinAmp forum http://forums.winamp.com/forumdisplay.php?f=159&order=desc for issues below.
  • The Esperanto translation uses the x-convention (e.g. �~@~\cx�~@~] for �~@~\�~I�~@~]), is there a proper ISO-8859-3 one?
  • Need to get the license text localized with MUI2. Luckily we can just reuse the same RTF files already done for the WiX version.
  • MUI2 allows �~@~\SimpChinese�~@~] and �~@~\TradChinese�~@~], but they don't show up at runtime in the initial language selection dialog. Not really acceptable to omit, since Chinese is the biggest locale in the Amaze download statistics. Tried for French, Japanese and Romanian as well; of these, only French shows up, though with a non-localized name "French" (the other languages in the drop-box are localized). Am I missing something?
  • How to differentiate between [en_US] and [en_GB]? NSIS just has "English".
  • Could add locale to "saved settings", and add a "-locale-init" option to provide a default value; "-locale" should override a saved value. The saved value should also be overridden by the ''Talk'' menu.

Localization

  • Check the localized files for shortcut/accelerator conflicts.
  • Find out why QtLinguist keeps resetting the language in trans/amaze_eo.ts to English.
  • Get somebody to proofread the Spanish localization.
  • Add languages: [fr], [ja]?
  • Localize the Windows installer. Update: The new NSIS-based installer is localized, the WiX-based one is not. Still need to do license localization for the NSIS one.
  • Translate man-page (we have de, en_US, nl).
  • Translate web-pages (no translations yet).
  • Translate on-line help pages (we have a few de, eo, nl, only en_US is complete).
  • Get localized screen-shots for the localized wiki pages.
  • Maybe we should have an explicit [en_US] locale, instead of relying on the fallback default. Or should that be [en], just like we have [de] instead of [de_DE]? We do already have a separate [en_GB].

Various

  • Would be nice if we could switch wall/path/moat value to "% of possible width" mode, so it would auto-adjust pixel count when we zoom.
  • Add cell-highlight code.
  • Highlight cell during context menu, or maybe during mouse-over.
  • Clean octagon nudging in ''Canvas::paintMarker()''.
  • The labels on the left have status tips now, but their spin and slider widgets do not. Add them as a copy?
  • Option to change change height/ratio automatically on shape change to correct for baseTileRatio() value.
  • Should allow user to export canvas image by dragging it to a finder.
  • Could allow "Paste" to fetch mask image from global clipboard.
  • Could extend to load multiple image masks, let user switch in GUI.
  • Need to test image mask path restore/retain.
  • Cache computed solid() value in ''CellGrid::prep''.
  • Change background paint to use cached bitmap. Instead of this we now cache the entire pre-solution/marker pixmap.
  • Placement of enter/leave points and adjustValue() looks kind of haphazard to the user, need to reconsider fundamentally.
  • The user now needs to tab twice between numeric controls, because the sliders use up a tab, without real benefit. Skip sliders in tabbing order?
  • Currently, creep is always in steps of 1. We could let the user vary the stepsize instead of the timer interval, or maybe combine these. Update: New options -creep, -steps added but not documented; no GUI slider.
  • Could add action to use maze as wallpaper. See link: "http://qtwiki.org/Set_windows_background_using_QT".
  • The slide wide/high limits are kind of arbitrary, and do not reflect any hard-coded limits in the CellGrid code. We should have a CLI option to set the limits differently, or to not limit the spin control and increase the slider limit when the spin control goes past the slider limit.
  • We could give the user more control over how the lines are drawn: mitre rules, end caps, and anti-aliasing.
  • There are some games that will allow user-defined maps as input for the game field. We could add exports in the appropriate formats.
  • As an alternative to the "creeping path" display, we could have a marker run through the maze (no line), or just a short path segment.
  • Could add a circle-shaped maze. A maze layout consisting of concentric rings seems to be popular in physical labyrinths. See ticket 3192603 http://sourceforge.net/tracker/?func=detail&aid=3192603&group id=305473&atid=1287261.
  • Showstopper: some outlines files don't work on my netbook, and A's Win7.
  • Initial default save-to directory for export dialogs should be set to ''QDesktopServices::PicturesLocation''.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.