Changes between Version 16 and Version 17 of GSoC/2015

Mar 2, 2015, 3:48:41 PM (5 years ago)

GUI plugins idea


  • GSoC/2015

    v16 v17  
    230230 * Co-mentor: ?
     232=== GUI plugin system for GRASS GIS ===
     234GRASS GIS allows to install addons/extensions from GRASS Addons using `g.extension`. This works well for GRASS modules but it is not sufficient when things needs to be integral part of wxGUI.
     236 * The main tasks are to write
     237  * a GUI which would manage and install the plugins,
     238  * mechanism which would load the installed and activated plugins and
     239  * an interface which plugins would use to communicate with GIS and integrate themselves into GUI.
     240 * GUI plugins should use the `g.extension` system in the background. The difference is that you may want to have more plugins installed but just a subset would be activated. Perhaps, GUI plugin manager can just take care of turning plugins off and on and setting for individual plugins while `g.extension` and wxGUI `g.extension` will take care of installation and related things (which should be possible in any case).
     241 * Some extensions may provide both GUI plugin and a standalone `g.gui.*` module (this is actually an ideal case).
     242 * Some GUI plugins may depend on a particular extension or even a Python package the extension installs.
     243 * Some GUI plugins may include or depend on some particular addons (group of extensions to install) or GUI toolbox (a file used to construct a menu).
     244 * Some plugins may include general files such as default configurations or images.
     245 * There is already an interface to communicate with GUI but it needs to be extended and improved. Also there should be a defined interface which plugin itself should provide (name, description, ...).
     246 * GUI plugin system should work the same for GUI plugins installed manually and installed using `g.extension`.
     247 * Several use cases should be explored and used as examples.
     248 * It would be good to consider (at least for the sake of real use case) turning some existing parts or wxGUI into plugins, e.g. vdigit, rdigit, iclass or various plots.
     249 * Bonus task is to extend `g.extension` in the way that it supports local source code (#1652) and individual extensions as source code in GitHub (might be almost possible now using Subversion).
     250 * Language requirements: Python, wxPython
     251 * Mentor: ?
     252 * Co-mentors: Vaclav Petras, Anna Petrasova
    233253== Tips for students ==