Coder Social home page Coder Social logo

hexsheets's People

Contributors

dependabot[bot] avatar pladams9 avatar secretgeek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hexsheets's Issues

Square tiles in background of documentation

I noticed the documentation had square tiles in the background. The enemy! The evil squares!!

documentation

So I've built a hexagonal grid.png file as a drop replacement for the square grid.png file... but don't know how to replace it in the repo (I don't know much about python, mkdocs, etc.)

please see:

image

Export document

Export options:

  • Page size
  • Scaling
  • Row/column start/stop or export selection
  • Include cell borders?

File types to support:

  • PDF
  • LaTeX
  • SVG
  • PNG/JPG/BMP

Three axes for coordinate system

Should be able to switch between two-coordinate system and three-coordinate system and/or use them interchangeably. This would affect how coordinates are displayed, and how they are referenced in formulas.

Add Save vs Save As

Save should save to current file if it exists, otherwise bring up Save As dialog

Conditional formatting

  • Format based on cell value
  • Format based on formula
  • Format range based on relative value

Cell text should not be a canvas "window" item

Broken resize preview lines

broken line

This is happening because the cell text for each cell is a label in a window. Windows are drawn above everything on a canvas.

Cell text should be changed to use a text canvas item so that it works like other canvas items. A the same time, text items should only be created for cells that have text in them. This might speed things up some (both using less items and not using full label widgets).

Label widgets and windows were used originally to allow the label to easily be cut off to a specific square. A new way will need to be worked out... possibly just reducing the number of characters in each text item based on size.

Originally posted by @pladams9 in #42 (comment)

Loose hex grid/individual cell dimensions

Instead of setting row and column sizes (which doesn't translate 100% to hex grids), treat all cells individually. Cells would be stored simply as a point representing their center, and borders would be drawn between those points.

  • The only constraint would be that an individual point could not be moved outside the hexagon formed by its neighboring six points (i.e. the neighboring centers).
  • A cell could be scaled individually be moving it's neighboring points uniformly outward or inward.
  • Fuzzy/magnet movements could be used, so that changes propagated outwards to a certain (adjustable) influence.
  • Rows, ranges, and arbitrary selections could all be adjusted the same way.

The grid would remain topologically the same, and therefore logically the same.

Add user documentation

This should likely involve a build system to create html docs from text files or markdown

Include documentation on getting started to test out this project

I'm interested to see where this goes, and would love it if the readme had a little bit of getting started guidance.

(I may not have time to tinker just yet, but i would intend to send some python users toward this project if there was a little guidance as mentioned above)

good luck, and i understand if you're not ready to encourage others in just yet!

kind regards
lb

Zoom functionality

  • Display zoom level on status bar
  • Button/slider controls [somewhere]
  • Ctrl + +/-
  • Ctrl + 0 to reset
  • Ctrl + Scroll Wheel

Pull out MVC into library

This mean packaging up view.py, event.py, abstracted versions of model.py and controller.py, as well as a new base class for windows.

Ideally, these might be then moved to their own repository if they reach a more stable state.

Expand README

Add a screenshot or two, maybe flesh out goals for the project

Add unsaved file warnings

Creating a new file, opening a file, or quitting the program with unsaved changes should prompt to save (or cancel).

Logo(s)/Favicon

We need a logo for this bad boy! Should be added to:

  • Title bar icon
  • Executable icon
  • readme.md
  • User docs front page
  • User docs favicon

Create build system

Build system should:

  • Run pyinstaller
  • Build docs
  • Bundle into ZIP?

Would need options to build on different systems

Spreadsheets should be able to change size (# of rows/columns)

This should be, in order of preference:

  • Dynamic: Similar to Excel or OpenOffice Sheets. The spreadsheet would seem infinite.
  • Automatic: Moving to the end of the sheet would add an additional row/column or rows/columns.
  • Manual: A dialog box that allows the sheet size to be set and a pair of toolbar buttons for growing/shrinking.

Keyboard controls for selecting individual cells

and should move up and down as expected.
and should move on one of the two diagonals, depending on which direction was moved previously.
If or were last used, then or would move diagonally up or down respectively. For instance, after would move up-right.
If or were last used, then the cell cursor will continue to move on the same diagonal it is currently on. For instance, hitting after moving up-right would move down-left, while doing the same thing after moving down-right would move up-left.

Start dev docs

Add:

  • TOC for file structure (including built directories)
  • Pages with more specifics for different parts of source

Improve formula bar UX

  • Remove in-cell editing
  • Double-clicking or hitting Enter opens editing mode and puts the focus in the formula bar
  • Hitting Enter in the formula bar exits editing mode and saves the formula
  • Hitting Esc in the formula bar exits editing mode and reverts to the previous formula
  • Double-clicking the sheet closes editing mode
  • Clicking in formula bar starts editing mode and activates small Save/Cancel buttons
  • Clicking the sheet during editing mode adds cell addresses to formula

Relative coordinates

Allow for relative coordinates in cell references. This could look like [+1, -2] or even mix absolute and relative like [34, -3].

3D Formatting

Add a height to cells, rendering those cells projected outward (or inward) from the sheet. This is more of a "fun feature."

Slow start time for executable

Application starts slowly. This might be due to PyInstaller extracting everything in -onefile mode. Should consider possibly changing to -onedir or simply adding a splash screen if that can be pulled up quickly enough.

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.