Contributing

Here’s some useful info if you want to contribute.

Guidelines

  • Each tab has its own Class. If possible, inherit from AbstractTab.

  • To provide comatibility:

  • The displayed data should also be in a raw data list called rawData which is always up to date

  • prepareUI initializes all GUI elements

  • active manages the status of a tab

  • Tab specific CANData instances are called CANData

  • Please log useful information using an own logger instance

  • Use existing Toolbox methods if possible

  • Use batch database operations using raw lists (not objects) for better performance

  • Use docstrings

  • Keep the .ui files clean: Always name new GUI elements properly according to existing ones

  • Put new strings in the Strings file and reference it

I want to add a new tab, what do I have to do?

  • Create a new tab on the GUI and stick to the already existing naming conventions

  • Add a QTableView to display your data and other GUI elements

  • Update mainWindow.py using pyside-uic mainWindow.ui > mainWindow.py.

  • Add a new File and a new class which inherits from AbstractTab

  • Call the parents constructor in your __init__

  • Add the GUI elements from the .ui file to your code. You can refer to the other tabs to see how it’s done. Also, add the click handlers here.

  • Call prepareUI as last action in __init___

  • If your tab needs an interface or displays interface values: Add your tab class or instance to updateInterfaceLabels() and/or updateCANDataInstances().

  • If your tab uses an instance: Add an instance to Globals.py and create one at startup (see CANalyzat0r.py).

  • If your tab uses a static class: Call prepareUI at startup (see CANalyzat0r.py).