Dev Quick Start

Below are quick tips and hints on how the plumbing kinda works (not definitive and WIP).

The app starts with the pyspread.MainWindow.

  • It is also passed around to other widgets as argument for callback, values, etc.

  • On startup the main windows call a set of _init_* functions eg _init_toolbars , _init_widgets

  • App persistence is stored in the settings.Settings object.

The actions module defines a set of actions.Action objects, a convenience constructor for QAction.

  • The icons module defines a set of icons.Icon objects

  • The icon files are located in the share/icons/ and are primarily .svg (thanks Tango Icon Library project and others)

  • Toolbar item are in toolbar module

  • Menubar item are in menubar module

The spreadsheet data is stored in model.model layers:

  • The data is displayed by the grid widgets module

  • The entryline.EntryLine widget allows user editing

  • The QUndoStack is used for undo/redo and commands contains the QUndoCommands

  • The workflows module is where a lot of the logic is

  • Data is written and read from .pys files in the interfaces.pys module

  • dialogs contains most of the app dialogs

  • panels contains some dock widgets

  • widgets contains other widgets

  • lib contains all sorts of stuff and is to be continued….