Eideticom / hdl-verifgui

A useful GUI tool for managing HDL verification.
https://eideticom.com
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

Simplifying Tab Interface #14

Closed davidlenfesty closed 3 years ago

davidlenfesty commented 3 years ago

As mentioned in #13 the current method for creating a new tab is a bit hodge-podge and requires manual modification in several places.

The main intent with this PR is to create a single interface that a contributor could refer to to add some piece of functionality, rather than having to piece together the general idea from how the other tabs do it. Also by limiting the interface between a tab and the main application hopefully reduces the mental effort of understanding any individual thing. To create a new tab, you simply make a new file in pyVerifGUI/gui/tasks, with a class that has the is_tab decorator, inherits from pyVerifGUI.gui.base_tab.Tab, and implements the required functions.

These changes bring it more in line with how tasks are handled, but I still want to put more effort there in cleaning up how tasks are referred to in other places.

This PR also begins some cleanup that's necessary to address #5, as this helps move functionality out of config and into the places it belongs.

davidlenfesty commented 3 years ago

I also snuck in some task improvements to clean up the interface there and make it similar to the way tabs work.

davidlenfesty commented 3 years ago

This is turning into a general features branch now...

Added the ability to use external directories for tasks and tabs, which lets users (internal or external) develop their own plugins easily without either forking the repository or trying to "insert" files into the main repository.