Giter Site home page Giter Site logo

dummyeditor's Issues

[GeneralWindow] new/open/save/close

Rendre ces actions fonctionnelles sur GeneralWindow :

  • déclarer les slots dans le .hpp avec les bons noms pour profiter des connexions automatiques
  • implémenter les méthodes new/save/close
    • si pour faire une de ces actions cela demande une méthode complexe liée au projet et pas à l'interface -> la mettre dans le classe editor/project

CI improvements

CI with Travis and SonarCloud is now OK and working.

There is room for improvement !

  • Define a branch-system philosophy and trigger Travis build only for some branches (master and develop ?)
  • Speed up travis build, ideas (some might be bad ideas):
    • Build only dummyeditor (and future tests) and not "all". "all" include dummylib tests...
    • parallelize make (-j 2 ?)
    • parallelize sonar-scaner (2)
  • Speed up travis build, other ideas:
    • travis caching system ? => we might cache packages and tools but we must purge build folder
    • pre-compile boost ?
    • parallelize boost compilation ?

Undo/Redo actions

Use Command design pattern to implement an history of actions to allow user to undo/redo actions.

Have a fixed limit of undo-able actions. (100 ?)

Actions that should be undo-able:

  • use of pen Tool
  • use of eraser
  • cut
  • paste

Actions that we have to discuss if undo-able

  • new layer (?)
  • new map (?)
  • changing a property of a layer (?)
  • changing a property of a map (?)
  • changing a property in any other tab than "Maps"

Grid adjustments

Allow user to fully customize grid (color ?) does not seem to be useful.

But few adjustments are needed:

  • Toogle grid for chipset (right click ?)
  • Color to draw the grid should be 30% alpha, not 100%

Sprite preview

When selecting a sprite in Sprites tab, there should be a preview of first animation.
This preview should also be used in:

  • Character tab,
  • CharacterInstance dialog
  • SpriteList dialog

This may be a class inheriting from QLabel with a "setSprite(...)" method or simply a static method applying the right preview content to a QLabel&.

[upgrade-ihm] Pen, Eraser tools

[On upgraded HMI]

Pen and Eraser shoud behave like the old rectangle tool :

  • Pen : Paste the chipset selected values on the current selection.
  • Eraser: pen but set the same default value everywhere (false for blocking layers (-1, -1) for visible layer)

Zoom management

Create tools to manage zoom level of the mapGraphicScene,
including : zoom +, zoom -, reset zoom, shortcuts

[GeneralWindow] Reporter les QActions existantes aux toolbar

Dans le .ui :

  • utiliser le action editor pour créer les actions suivantes,
  • les reporter dans leur toolbars respectives :
    • toolbar_general:
      • New/Open Project -> edit to add tooltip
      • Save/Close
      • NE PAS METTRE Undo/Redo tant qu'on les implémente pas
    • toolbar_mapTools:
      • copy/paste/cut
      • pen/rect/eraser
    • toolbar_game:
      • play, test, autres ?
  • add short-cuts in the cpp

D'autres boutons ?

  • show/hide grid
  • show/hide blocking layer
  • ?

[upgrade-ihm] Copy, Paste, Cut tools

[On upgraded HMI]

Selection tool is already working and sets the m_selectionRect attribute of mapGraphicScene,

To do:

  • rename clipboard classes to have a more explicit name
  • change "getClipboard" methods : should return Blocking/VisibleClipboard instead of pointer to Clipboard (and use definied type instead "Clipboard" that we'll cast after that...).
  • Check getClipboard methods implementation
  • MapTools should have private members m_blockingClipboard and m_visibleClipboard to store those
  • Copy : test active layer type and fill the right MapTools::m_xxxxClipboard attribute with getClipboard (test for nullptr !)
  • Paste : use Clipboard methods on the right layer to do so. May : use the mouse position to define the target instead of where we copied it:
    • One click on the tool doesn't paste directly but set the user in a (new) tool mode : Paste, then on each click on the map it pastes the current clipboard if there is one.

And later:

  • Cut : just copy + call Eraser on the same rect.

Move Character Instance with drag and drop

When a character is added to a map (CharacterInstance), and the current tool is "Selection" (the cursor), we should be able to move the position of the character by drag and drop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.